정보처리기사 기출 핵심 [44] 웹소켓과 실시간 통신 기술 완전 정복

실시간 통신의 필요성

채팅, 실시간 알림, 온라인 게임, 주식 시세 등 즉시성이 요구되는 기능에는 전통적인 HTTP 요청-응답 방식이 비효율적입니다. 정보처리기사 시험에서는 WebSocket, SSE, Long Polling, Socket.IO의 특성과 적합한 사용 시나리오가 핵심 출제 범위입니다.

실시간 통신 방식 비교

  • Short Polling: 주기적으로 서버에 HTTP 요청. 단순하지만 불필요한 요청 다수. 실시간성 낮음
  • Long Polling: 서버가 응답을 보류하다가 새 데이터 발생 시 응답. HTTP 연결 재사용. 지연 없지만 연결 관리 복잡
  • SSE(Server-Sent Events): 서버 → 클라이언트 단방향 스트리밍. HTTP 기반. 자동 재연결. 텍스트 전용. EventSource API
  • WebSocket: 양방향 전이중 통신. HTTP 업그레이드로 시작. 낮은 오버헤드. 바이너리 지원

WebSocket 동작 원리

WebSocket은 HTTP 핸드셰이크로 연결을 시작해 TCP 소켓으로 업그레이드합니다.

  • 핸드셰이크: HTTP GET 요청 + Upgrade: websocket + Sec-WebSocket-Key 헤더
  • 101 Switching Protocols: 서버 응답으로 WebSocket 연결 수립
  • 프레임(Frame): WebSocket 데이터 전송 단위. 텍스트/바이너리/Ping/Pong/Close 프레임
  • ws:// vs wss://(TLS 암호화): 포트 80/443 사용. 방화벽 친화적

Socket.IO

WebSocket 위에 추가 기능을 제공하는 Node.js 라이브러리입니다.

  • 네임스페이스(Namespace): 하나의 연결에서 논리적으로 분리된 채널
  • 룸(Room): 네임스페이스 내 그룹. 특정 사용자 그룹에게 메시지 전송
  • 폴백(Fallback): WebSocket 미지원 시 Long Polling으로 자동 전환
  • 이벤트 기반: emit(전송), on(수신)으로 커스텀 이벤트 처리

WebRTC(Web Real-Time Communication)

브라우저 간 피어-투-피어(P2P) 실시간 오디오/비디오/데이터 통신 API입니다.

  • ICE(Interactive Connectivity Establishment): P2P 연결 경로 탐색
  • STUN 서버: 공인 IP 확인. NAT 통과
  • TURN 서버: P2P 불가 시 릴레이 서버
  • SDP(Session Description Protocol): 미디어 능력 교환 프로토콜

정보처리기사 기출 핵심 정리

  • WebSocket = 양방향 전이중, HTTP 업그레이드(101), ws://wss://
  • SSE = 서버→클라이언트 단방향, 텍스트 전용, 자동 재연결
  • Long Polling = 서버가 응답 보류, 데이터 발생 시 응답
  • Socket.IO = WebSocket + Fallback, 룸/네임스페이스
  • WebRTC = P2P 미디어 통신, STUN(IP확인)/TURN(릴레이)

Leave a Comment