네트워크 프로그래밍과 프로토콜
TCP의 연결 상태와 혼잡 제어, UDP, HTTP 버전별 차이, TLS, SSH, WebSocket·SSE까지 프로토콜 동작을 실제 명령으로 확인하면서 정리합니다. TIME_WAIT·CLOSE_WAIT가 쌓이는 이유처럼 운영 중에 마주치는 문제도 포함합니다.
구현 쪽에서는 C++ 소켓 기초, 메시지 경계와 직렬화, TLS 연동, Boost.Asio의 io_context·strand·post/dispatch·핸들러 수명과 데드락 디버깅을 다룹니다.
처음 읽기 좋은 글
- TCP 동작 원리: 3-way handshake, 흐름·혼잡 제어(CUBIC·BBR)와 소켓 디버깅
- TCP 연결 상태 11가지: TIME_WAIT·CLOSE_WAIT가 쌓이는 이유와 netstat·ss 디버깅
- Boost.Asio 입문: io_context, 비동기 타이머·읽기·쓰기, 핸들러 수명과 work_guard
전체 글 31편
각 글에 표시된 난이도를 기준으로 초급, 중급, 고급 순으로 나눴습니다. 처음이라면 위쪽부터 읽고, 이미 아는 단계는 건너뛰어도 됩니다.
초급 (2편)
중급 (14편)
- Boost.Asio 입문: io_context, 비동기 타이머·읽기·쓰기, 핸들러 수명과 work_guard
- C++ 네트워크 에러 처리: errno 해석, 타임아웃, 지수 백오프 재시도, 서킷 브레이커, EINTR
- C++ 소켓 프로그래밍: TCP/UDP 구현, SO_REUSEADDR 같은 소켓 옵션, select·poll·epoll 비교
- C++ WebSocket 심화 | Boost.Beast·Ping/Pong·재연결·운영
- CORS 에러 해결: 'No Access-Control-Allow-Origin' 원인과 프리플라이트·credentials 설정
- HTTP 프로토콜: HTTP/1.1·HTTP/2·HTTP/3 차이, 연결 관리, 캐싱, 보안 실전
- MQTT 프로토콜과 발행-구독 메시징 모델 이해하기
- Socket.IO 실시간 통신: Room과 Broadcasting, Namespace, 인증, React 연동, Redis Adapter
- SSH 프로토콜 보안 원격 접속 | 공개키·ProxyJump·포트 포워딩·OpenSSH 실전
- TCP 연결 상태 11가지: TIME_WAIT·CLOSE_WAIT가 쌓이는 이유와 netstat·ss 디버깅
- TCP 위에 프로토콜 설계하기: 메시지 경계, 길이 프리픽스, 바이너리 직렬화, 엔디안과 버전 관리
- TCP vs UDP 전송 프로토콜 비교 | 신뢰성·지연·QUIC까지 선택 가이드
- WebSocket 실시간 통신: RFC 6455 업그레이드와 프레임, Socket.io 채팅, Redis 확장, 프로덕션 디버깅
- WebSocket vs SSE vs 롱 폴링 | 실시간 통신 방식 비교
고급 (8편)
- C++ 네트워크 성능 최적화 | TCP 튜닝·제로카피·커널 바이패스 [#51-7]
- C++ Asio 데드락 디버깅 | 비동기 콜백 실전
- C++ Boost.Asio 고급 패턴 | 커스텀 서비스·타이머·시그널 [#52-1]
- C++ TLS 통신: OpenSSL과 Asio 연동, 인증서 관리, mTLS, 흔한 SSL 에러
- TCP 동작 원리: 3-way handshake, 흐름·혼잡 제어(CUBIC·BBR)와 소켓 디버깅
- TLS 프로토콜 심화 가이드 | 핸드셰이크·암호 스위트·TLS 1.3 키 유도
- UDP 프로토콜 실전 활용 | 저지연·DNS·게임·스트리밍과 QUIC 연결
- WebRTC 프로토콜 실시간 통신 | 시그널링·ICE·STUN/TURN·DTLS·SRTP 실전
난이도 표시가 없는 글 (7편)
- C++ 멀티스레드 Asio의 딜레마 | Data Race와 Mutex의 한계 [#2]
- C++ 핸들러 메모리 최적화 | 동적 할당 오버헤드 제거 [#5]
- C++ Asio Composed Operation | 비동기 함수 설계 [#7]
- C++ Asio post, dispatch, defer | 실행 큐 정밀 제어 [#4]
- C++ Boost.Asio io_context 이벤트 루프 | 동작 원리 정리 [#1]
- C++ Strand | 락(Lock) 없는 동시성 제어 [#3]
- I/O 멀티플렉싱 비교: select·poll·epoll·kqueue·IOCP와 C10K 문제