블로그
-
I/O 멀티플렉싱 비교: select·poll·epoll·kqueue·IOCP와 C10K 문제
Blocking I/O의 한계에서 출발해 select, poll, epoll, kqueue, IOCP의 동작 방식과 차이를 코드와 시간 복잡도로 설명하고, C10K 문제를 어떻게 풀었는지 다룹니다.
-
FFmpeg 실전 가이드 | 동영상/오디오 처리
FFmpeg 명령 구조와 코덱·비트레이트·프레임레이트 기초부터 H.264·H.265 인코딩, 해상도 변경, 오디오 추출, 썸네일과 GIF 생성, 자르기와 병합을 예제로 다룹니다. HLS·RTMP 스트리밍, 워터마크 필터, ffprobe, Python·Node.js·Go 라이브러리 연동도 포함합니다.
-
TCP 연결 상태 11가지: TIME_WAIT·CLOSE_WAIT가 쌓이는 이유와 netstat·ss 디버깅
TCP 11가지 연결 상태(LISTEN, SYN_SENT, ESTABLISHED, FIN_WAIT, TIME_WAIT 등)의 동작 원리와 상태 전이, netstat·ss로 상태를 확인하고 TIME_WAIT·CLOSE_WAIT 문제를 디버깅하는 방법을 정리합니다.
-
GStreamer 실전 가이드 | 파이프라인·C/Python·gst-launch로 멀티미디어 다루기
GStreamer 1.x로 재생·인코딩·스트리밍 파이프라인을 구성하는 방법을 정리합니다. Element·Pad·Caps 개념, gst-launch-1.0, C API, Python gi 예제, Bus 메시지·GST_DEBUG까지.
-
Cloudflare Pages 배포: GitHub 연동, Wrangler CLI, Pages Functions와 Vercel·Netlify 비교
Cloudflare Pages 배포를 GitHub 연동·Wrangler·Functions부터 정리하고, Pages와 Workers 정적 자산 중 무엇을 고를지, _redirects 개수 한도와 _headers 병합, apex 도메인 조건, 파일 수 제한 같은 운영 함정까지 다룹니다.
-
Core Dump로 크래시 원인 찾기: 생성 설정, GDB 분석, 프로덕션 수집 자동화
Core Dump 생성 설정과 GDB 분석, Segmentation Fault 디버깅을 정리합니다. Ubuntu apport·systemd-coredump가 코어를 가져가는 위치, Docker·Kubernetes에서 core_pattern이 호스트 전역인 문제, debuginfod와 분리 심볼, 코어에 남는 비밀 정보까지 프로덕션 기준으로 다룹니다.
-
C++ 대용량 이미지 처리: OpenCV Mat 참조 카운팅, 필터·변환, SIMD, 멀티스레드 파이프라인
썸네일을 만들다 메모리가 터지거나 회전 후 이미지가 잘리는 문제를 OpenCV로 해결하는 방법을 다룹니다. cv::Mat 참조 카운팅과 스트리밍 로드, 블러·샤프닝·Canny 필터, 리사이즈와 회전, 색공간과 EXIF 방향 처리, SIMD·멀티스레드 파이프라인을 설명합니다.
-
C++ 멀티채널 알림 서비스: 이메일·SMS·FCM 푸시·WebSocket·Webhook 통합과 재시도·DLQ
WebSocket 실시간 알림, FCM 푸시, SMTP 이메일, SMS, Webhook을 하나의 알림 서비스로 통합하는 방법을 정리합니다. 채널별 재시도·백오프·DLQ, FCM 토큰 만료 처리, 이메일 rate limiting 같은 실전 트러블슈팅을 다룹니다.
-
C++ Rate Limiter 구현: 토큰 버킷 vs 슬라이딩 윈도우 vs 고정 윈도우, Redis 분산 제한
C++로 API Rate Limiter를 구현하는 방법. 토큰 버킷(버스트 허용), 슬라이딩 윈도우(정확성), 고정 윈도우 알고리즘 비교, 스레드 안전한 키별 제한과 메모리 정리, Redis Lua 스크립트를 이용한 분산 제한을 다룹니다.
-
RTMP·RTSP·HLS·DASH·CMAF·WebRTC 비교: 스트리밍 프로토콜별 지연과 용도
RTMP·SRT·RTSP·HLS·DASH·CMAF·WebRTC의 동작 원리와 지연이 생기는 지점, LL-HLS의 실제 요구사항, 키프레임 정렬 같은 라이브 구축 함정과 용도별 선택 기준을 정리합니다.