블로그
-
Go context로 타임아웃·취소 처리하기: WithTimeout, WithCancel, HTTP 서버 종료
Go의 context.WithTimeout으로 DB와 외부 API 호출에 상한을 걸고, WithCancel로 한 단계가 실패하면 나머지 워커를 멈추고, HTTP 서버에서 요청 컨텍스트와 Shutdown 컨텍스트를 따로 쓰는 방법을 코드로 보여줍니다. 세 API의 선택 기준도 다룹니다.
-
C++ TLS 통신: OpenSSL과 Asio 연동, 인증서 관리, mTLS, 흔한 SSL 에러
TLS 핸드셰이크 흐름을 짚은 뒤 Asio의 ssl::stream과 순수 OpenSSL로 각각 에코 서버·클라이언트를 구현합니다. 자체 서명·CA 인증서 생성, mTLS 클라이언트 인증 설정, 인증서 만료·호스트명 불일치·체인 누락 같은 SSL 에러 대처도 다룹니다.
-
AV1 비디오 코덱 차세대 표준 | 로열티 프리·SVT-AV1·FFmpeg 실전
AOMedia의 로열티 프리 코덱 AV1이 VP9·HEVC 대비 무엇이 다른지, 슈퍼블록·CDEF·필름 그레인 합성 같은 도구와 libaom·SVT-AV1·rav1e 인코더 선택, FFmpeg CRF·preset·2-pass 명령, 하드웨어 디코딩 지원과 폴백 설계를 정리합니다.
-
H.264(AVC) 실무: 프로파일·레벨 계산, NAL 구조, FFmpeg 인코딩과 재생 안 되는 파일 고치기
H.264(AVC)의 압축 원리, 프로파일·레벨(MBPS 계산), NAL·SPS·PPS와 Annex B·AVCC 차이, libx264 CRF·preset과 NVENC 설정, HLS용 키프레임 정렬, faststart, 브라우저에서 재생 안 되는 High 4:4:4·10비트 문제까지 실무 중심으로 정리합니다.
-
UDP 프로토콜 실전 활용 | 저지연·DNS·게임·스트리밍과 QUIC 연결
연결 없이 데이터그램을 보내는 UDP의 헤더와 체크섬 구조, DNS·RTP·게임·statsd에서 UDP를 택하는 이유와 반례, QUIC이 UDP 위에서 연결 ID와 TLS 1.3으로 신뢰성을 구현하는 방식을 소켓 예제와 함께 설명합니다.
-
WebRTC 프로토콜 실시간 통신 | 시그널링·ICE·STUN/TURN·DTLS·SRTP 실전
WebRTC 연결이 SDP 시그널링, ICE 후보 수집, STUN·TURN을 통한 NAT 통과, DTLS 핸드셰이크, SRTP 미디어 암호화 순서로 성립하는 과정을 브라우저 JavaScript와 Python aiortc 예제로 설명합니다.
-
SSH 프로토콜 보안 원격 접속 | 공개키·ProxyJump·포트 포워딩·OpenSSH 실전
SSH의 키 교환·호스트 검증·사용자 인증 흐름을 짚고, Ed25519 키와 ~/.ssh/config, ProxyJump와 에이전트 포워딩의 차이, 로컬·원격 포트 포워딩, SCP/SFTP, Permission denied·호스트 키 변경·ssh-rsa 거부 같은 오류 대응을 OpenSSH 기준으로 정리합니다.
-
WebM 컨테이너 웹 표준 | VP9·AV1·Opus·HTML5·FFmpeg 입문
WebM이 Matroska에서 허용 코덱을 VP8·VP9·AV1과 Vorbis·Opus로 좁힌 이유를 설명하고, HTML5 video 태그용 인코딩, 다중 품질 출력과 배치 처리, 스트리밍 최적화를 위한 FFmpeg 명령을 입문자 눈높이에서 다룹니다.
-
알고리즘 최적화 실전 사례 | 코딩테스트 시간 초과(TLE) 해결기
중복 제거, 구간 합, 최단 경로, 부분합, 문자열 매칭의 TLE 코드를 복잡도 관점에서 고친 사례와 Big-O·상각 분석, 공간-시간 트레이드오프, 캐시·분기 예측까지 정리합니다.
-
C++ 포인터 처음 배우기: &와 * 연산자, swap·배열 순회, 초보자가 하는 첫 실수
변수는 집, 주소는 집 주소라는 비유로 &와 * 연산자가 하는 일을 그림과 함께 설명하고, swap 함수와 배열 순회로 포인터를 직접 써 봅니다. 초기화하지 않은 포인터, 댕글링 포인터, new 후 delete 누락 같은 첫 실수도 짚습니다.