2026-01-16

WebRTC와 WebSocket: 개념 및 시그널링의 이해

오늘 실시간 통신 기술을 공부하며 정리한 WebSocket과 WebRTC의 핵심 개념, 그리고 두 기술이 어떻게 상호 보완적으로 사용되는지 정리한다.

1. WebSocket (웹소켓)

  • 개념: 클라이언트와 서버 간의 양방향 통신을 지원하는 프로토콜. HTTP와 달리 연결을 끊지 않고 계속 유지(Persistent Connection)하여 실시간 데이터 전송이 가능하다.
  • 특징:
    • TCP 기반: 데이터의 신뢰성을 보장한다.
    • Server-Client 구조: 중앙 서버를 거쳐 데이터를 주고받는다.
  • 주요 용도:
    • 실시간 채팅, 알림 서비스.
    • Signaling(시그널링): WebRTC 연결을 맺기 위한 초기 정보 교환 단계.

2. WebRTC (Web Real-Time Communication)

  • 개념: 웹 브라우저 간에 별도의 플러그인 없이 영상, 음성, 데이터를 실시간으로 전송하는 기술.
  • 특징:
    • P2P (Peer-to-Peer): 서버를 거치지 않고 클라이언트끼리 직접 데이터를 주고받아 속도가 빠르다.
    • UDP 기반: 미디어 스트리밍에 적합하며, 약간의 패킷 손실이 있어도 실시간성을 최우선으로 한다.
  • 핵심 용어:
    • SDP (Session Description Protocol): 해상도, 코덱 등 미디어 메타데이터.
    • ICE Candidate: 통신 가능한 네트워크 경로(IP, Port) 후보군.
    • STUN/TURN 서버: NAT/방화벽 환경에서 P2P 연결을 돕거나(STUN) 트래픽을 중계(TURN)하는 서버.

3. 왜 함께 사용하는가? (Signaling 과정)

WebRTC는 P2P 연결을 지향하지만, 서로의 위치(IP)를 모르는 상태에서는 연결할 수 없다. 이를 해결하기 위해 WebSocket을 중개자로 활용한다.

  1. 만남의 장소 (WebSocket): Peer A와 Peer B가 시그널링 서버(WebSocket)에 접속한다.
  2. 정보 교환: WebSocket을 통해 서로의 SDP(미디어 정보)ICE Candidate(네트워크 정보)를 주고받는다.
  3. 직접 연결 (WebRTC): 정보 교환이 완료되면, WebSocket의 도움 없이 Peer 간 직접 영상/음성 데이터를 주고받는다.

4. 요약 비교

구분 WebSocket WebRTC
통신 방식 Server ↔ Client Client ↔ Client (P2P)
기반 프로토콜 TCP UDP (주로)
주요 데이터 텍스트, JSON, 작은 바이너리 영상, 음성, 대용량 데이터
역할 연결 제어, 채팅, 시그널링 미디어 스트리밍

results matching ""

    No results matching ""