2025/04 18

[Python] websockets - 웹소켓 서버 및 클라이언트 개발

개요최근 WebSocket 통신을 다룰 일이 생겼다. 관련하여 Websocket 서버와 클라이언트를 구축하기 위한 Python 라이브러리인 websockets 사용 예시를 간단하게 적어두려고 한다.websockets 라이브러리는 기본적으로 Python 내장 비동기 I/O 라이브러리인 asyncio를 기반으로 한다. threading 구현을 제공하고 있어 asyncio에 익숙하지 않은 경우의 대안을 제공하기도 한다.  WebSocket이란먼저 WebSocket 개념에 대해 빠르게 정리한다.WebSocket은 클라이언트와 서버 간의 양방향 데이터 전송을 가능하게 하는 실시간 통신 프로토콜이다. 비상태 프로토콜인 HTTP와 달리 클라이언트와 서버 간의 지속적인 연결을 유지하여 즉각적인 데이터 전송을 허용한다...

Python 2025.04.10

[Codility] PassingCars

문제문제 : https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/N개의 정수로 구성된 비어 있지 않은 배열 A가 있다. 배열 A의 연속된 요소는 도로 위의 연속된 자동차를 나타내며, 배열 A에는 0 또는 1로만 구성되어 있다. 이때, 0은 동쪽으로 이동하는 차량을 나타내고 1은 서쪽으로 이동하는 차량을 나타낸다.목표는 지나가는 차를 세는 것으로, P가 동쪽으로 이동하고 Q가 서쪽으로 이동할 때 0 ≤ P 한 쌍의 차 (P, Q)가 지나간다고 한다.예로 들어 아래와 같은 배열 A가 있다고 하자. A[0] = 0 A[1] = 1 A[2] = 0 A[3] = 1 A[4] = 1지나가는 차의 쌍은 (0, 1), (0, 3), ..

[Airflow] CLI - import error 확인하기

현상Airflow에서 Dag를 개발하다 보면 어떠한 이유로 오류가 나서 Dag가 생성되지 않는 경우가 발생할 수 있다. 이번 글에서는 import error에 대한 정보를 CLI로 확인하는 방법을 적어둔다.  CLI 외 다른 방법이전에 작성했던 글이 있어 CLI를 활용하지 않고 확인하는 방법을 먼저 작성한다.참고 : 2024.11.30-[Airflow] Dag Import Error 확인하기간단하게 Airflow Web UI를 통해 확인하거나, Airflow Meta DB의 import_error 테이블을 조회하는 방식으로 확인할 수 있다.   CLI 사용CLI를 통해 사용할 때는 dags list-import-errors를 통해 확인할 수 있다.airflow dags list-import-errors참..

Apache Airflow 2025.04.08

[MySQL] GET DIAGNOSTICS

개요2025.03.24-[MySQL] Stored Procedure - HANDLER에서 SQL을 사용하며 발생하는 에러를 처리하기 위한 핸들러를 알아보았었다. 이번 글에서는 비슷하게 에러를 다루는 데 사용할 수 있는 GET DIAGNOSTICS라는 구문을 알아보려고 한다.  DIAGNOSTICSSQL문을 실행 시 진단 영역에 진단 정보를 생성하는데, 진단 정보는 SQL 실행 중 발생한 오류에 대한 정보를 포함한다. 진단 정보를 통해서 오류 코드, 경고, 영향을 받은 행 수 및 조건, 명령문에 대한 기타 진단 데이터와 같은 세부 정보에 접근할 수 있다.진단 영역은 크게 발생한 조건 수나 영향을 받은 행 수와 같은 명령문 정보와 오류 코드 및 메시지 등의 조건 정보로 구성되어 있다. 명령문이 여러 조건(c..

Database 2025.04.07

[백준] 1926 - 그림

문제문제 : https://www.acmicpc.net/problem/1926어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다.   풀이BFS 방식으로 풀어낼 수 있는 문제이다. 1. 입력값  초기화입력으로 받는 n과 m, 그리고 그림을 초기화한다.n, m = map(int, sys.stdin.readline().split())graph = [list(map(int, sys.stdin.readline().split())) for i in ran..

[Linux] curl: (60) SSL certificate problem: unable to get local issuer certificate - 인증서 검증 무시

개요업무 중 제공되는 주피터 노트북 환경에서 개발한 API에 대한 동작 테스트가 필요하다. 때문에 API를 외부에서 호출해보려고 했는데, 호출 시 다음과 같은 에러가 발생했다.원인을 확인하고 해결 방법을 적어둔다.  원인확인해 보니 curl은 기본적으로 서버의 SSL 인증서를 확인하는데, 그 인증서가 신뢰할 수 있는 인증 기관에 의해 발행되지 않았거나, 모르는 기관에서 발급한 인증서일 경우 검증 에러가 발생할 수 있다고 한다.다시 말해 curl이 서버에서 제공한 인증서를 확인할 수 없을 때 발생할 수 있다.   해결관련해서 해결 방법은 크게 두 가지가 존재한다.- curl이 신뢰하는 인증 기관 목록(CA List; Certificate Authority List)에 접속 사이트의 인증서를 발급한 기관 추..

Linux 2025.04.02

[MySQL] Stored Procedure - HANDLER

개요2025.03.06-[MySQL] Stored Procedure - 매개변수에 이어서 이번 글도 프로시저와 관련된 부분이다.Stored Procedure를 다루다보면 자연스럽게 에러 처리에 대한 요구사항도 생기기 마련이다. 이번 글에서는 Stored Procedure에서 에러를 적절하게 처리하기 위한 개념인 Handler에 대해서 알아본다.  Handler프로시저 내에서 DECLARE ~ HANDLER 구문은 하나 이상의 조건을 처리하는 핸들러를 정의할 수 있다. DECLARE handler_action HANDLER FOR condition_value [, condition_value] ... statementhandler_action: { CONTINUE | EXIT | UND..

Database 2025.04.01
1 2