블로그
-
C++ I/O 병목 줄이기: cin·mmap·io_uring 성능 비교
같은 로직인데 C++만 시간 초과가 나는 이유를 sync_with_stdio, cin.tie, endl의 버퍼 플러시로 설명하고 getchar 직접 파싱과 출력 버퍼링까지 단계별로 최적화합니다. 대용량 파일용 mmap과 liburing 기반 io_uring 예제도 다룹니다.
-
C++ 멀티 컴파일러 전략과 CI/CD 파이프라인 구축 | 실무 가이드
내 PC에서는 되는데 다른 환경에서 깨지는 빌드를 막기 위해 GCC, Clang, MSVC를 함께 쓰는 전략을 다룹니다. 경고를 에러로 올리는 옵션, 컴파일러 감지 매크로와 플랫폼 차이 처리, GitHub Actions 빌드 매트릭스와 CMake Presets 구성까지 예제로 보여줍니다.
-
WebRTC 레퍼런스 — PeerConnection·ICE·STUN·TURN·시그널링·SFU
W3C WebRTC API, SDP·ICE, STUN·Coturn, WebSocket 시그널링, Perfect Negotiation, Simulcast·SVC, 혼잡 제어·FEC, SFU(mediasoup·Janus·Jitsi) 운영까지 실무 기준으로 정리한 참조 문서입니다.
-
C++ 실시간 모니터링 대시보드: Grafana·Prometheus 통합
새벽에 API가 멈췄는데 로그로는 원인을 못 찾을 때를 가정해, C++ 서버에 Counter·Gauge·Histogram 레지스트리를 직접 만들어 /metrics로 노출하고 Prometheus·Grafana 패널과 알람 규칙을 붙입니다. 카디널리티 폭증과 버킷 설정 실수도 다룹니다.
-
임베디드 C++ 최적화: 플래시 크기, RAM 정적 할당, 전력 소모, 실시간성(WCET)
64KB 플래시에 펌웨어가 안 들어가고, 스택이 넘치고, 배터리가 하루를 못 가는 상황을 다룹니다. LTO와 printf 제거로 플래시 줄이기, 정적 할당과 풀 allocator, 슬립 모드와 DMA, ISR 최소화와 WCET 예측을 C++ 관점에서 설명합니다.
-
C++ 컴파일러 비교 | GCC vs Clang vs MSVC, 어떤 걸 써야 할까?
전처리, 구문 분석, 최적화, 코드 생성 단계를 직접 실습하며 같은 코드가 컴파일러마다 다르게 빌드되는 이유를 살펴보고, GCC의 -O2와 -O3 선택, Clang의 친절한 에러 메시지와 정적 분석, MSVC의 특징을 비교해 프로젝트에 맞는 컴파일러를 고릅니다.
-
MPEG-DASH 레퍼런스 — MPD(ISO 23009-1)·세그먼트·CENC/DRM·플레이어
ISO/IEC 23009-1 MPD(Period, AdaptationSet, SegmentTemplate)와 FFmpeg·Shaka Packager, CENC, dash.js·Shaka·ExoPlayer·AVPlayer까지 MPEG-DASH 실무·플레이어 가이드.
-
HLS(HTTP Live Streaming) 레퍼런스 — M3U8·ABR·암호화·LL-HLS
RFC 8216 기반 HLS 스펙(M3U8, EXT-X, TS/fMP4, 바이트 레인지)과 FFmpeg·ABR·AES-128·FairPlay·CDN, LL-HLS·hls.js·Safari까지 실무에 바로 쓰는 기술 가이드입니다.
-
RTMP(Real-Time Messaging Protocol) 레퍼런스 — 핸드셰이크·청크·Nginx·FFmpeg·OBS
RTMP의 앱 수준 핸드셰이크와 청크 스트림, AMF0 명령 메시지 구조를 짚고, Nginx-RTMP 설정, FFmpeg·OBS 송출, Node.js 서버 구성을 예제로 다룹니다. RTMPS·RTMPT의 차이와 연결 실패·지연·방화벽 문제를 점검하는 순서도 정리했습니다.
-
RTSP(Real Time Streaming Protocol) 레퍼런스 — RFC 2326·7826·SDP·RTP·IP 카메라
RFC 2326/7826 RTSP·SDP·RTP/RTCP, IP카메라·ONVIF·Digest, FFmpeg·GStreamer, NAT·방화벽, 버퍼·GOP·멀티스트림까지 실시간 수신·릴레이·녹화를 설계하는 가이드입니다.