WebRTC 와 WebSocket의 차이 알아보기

개발 · 2025. 3. 28.

요즘 회사에서 새로운 웹 에디터를 개발하려고 준비중이다.

관련 기술을 학습해야하는 시간이 왔는데 웹 에디터에 동시 편집을 지원하기 위한 대표적인 프로토콜 방법인

WebRTCWebSocket에 대해서 장/단점을 비교하고 동작방식에 대해서 알아보려고 한다.

 

WebRTC (Web Real-Time Communication)란?

WebRTC(Web Real-Time Communication)는 브라우저 간(P2P) 직접 실시간 데이터 통신을 가능하게 하는 기술

주로 오디오/비디오 스트리밍, 실시간 파일 전송 등에 사용

  • 기본 개념: P2P 연결을 통해 클라이언트끼리 직접 데이터를 교환함.
  • 특징:
    • 낮은 지연시간 (Low Latency) → 서버를 거치지 않고 직접 통신
    • 오디오/비디오 스트리밍 지원 → 실시간 화상 채팅, 라이브 스트리밍 가능
    • P2P 연결 → 다자간 연결 시 SFU/MCU 서버 필요
    • STUN/TURN 서버 필요 → 방화벽/NAT 문제 해결

사용 예시: Google Meet, Discord 음성 채팅, WebTorrent (P2P 파일 공유)

WebSocket이란?

WebSocket은 서버와 클라이언트 간의 지속적인 양방향 통신을 지원하는 프로토콜

  • 기본 개념: 클라이언트와 서버가 한 번 연결을 맺으면, 이후에는 HTTP 요청 없이 데이터를 주고받을 수 있음.
  • 특징:
    • 양방향(Bidirectional) 통신 → 서버와 클라이언트가 실시간으로 데이터 교환 가능
    • 낮은 오버헤드 → HTTP보다 네트워크 부담이 적음
    • 다중 사용자 연결 가능 → 서버가 모든 클라이언트와 지속적 연결 유지
    • 서버 중심 아키텍처 → 서버가 데이터를 관리하고 동기화

사용 예시: Slack, WhatsApp Web, 주식 거래 시스템 (Binance, Upbit), Google Docs 실시간 동기화

 

WebRTC vs WebSocket 차이점

  WebRTC (P2P 기반) WebSocket (서버 기반)
주요 사용 사례 실시간 미디어 스트리밍, 파일 공유, P2P 게임 실시간 채팅, 문서 편집, 주식 데이터
통신 방식 클라이언트 간 P2P 직접 연결 (Signaling 필요) 클라이언트-서버 지속적 연결 유지
지연 시간 낮음 (서버 없이 직접 연결) 중간 (서버 경유, 로드밸런싱 가능)
확장성 SFU/MCU 서버 필요 (다자간 연결 시) 서버 부하 관리 필요 (로드밸런싱)
데이터 유형 오디오/비디오 스트리밍, 대용량 데이터 텍스트 메시지, 작은 데이터 패킷

 

WebRTC 와 WebSocket의 동작 방식

WebRTC 와 WebSocket의 동작 방식
WebRTC와 WebSocket의 동작 방식

 

 

WebRTC는 P2P 통신을 바탕으로 클라리언트 간 직접 연결을 통해 데이터를 교환하며 중앙 서버가 없어도 사용이 가능하다. 직접 연결하기 때문에 서버의 지연 시간이 없는 것이 장점이지만 서버의 연결 관리를 하는 것이 복잡하다. 또한 참여자가 많아 질 경우 서버의 피어 간 연결을 관리하는 것이 어렵다.

 

WebSocket은 클라이언트 <-> 서버 통신 구조로 서버가 모든 연결을 중앙 집중식으로 관리하므로 안정적이고 다수의 클라이언트를 관리하기에 유리한 것이 장점이지만 모든 트래픽이 서버를 거치므로 서버에 과부하가 생길 수 있고 중앙 서버를 경유하므로 네트워크 상황에 따라 지연이 생길 수 있다.

 

아직까지는 어떤 프로토콜을 사용할 지 정하지는 않았지만 두 프로토콜 가운데 하나를 선택하자면 나는 WebSocket을 사용하고 싶다. 실시간 채팅 및 문서 편집 같은 주요 사용사례가 있고 중간 서버를 두어서 관리할 수 있도록 처리하는게

최적화에도 좋을 것 같기 때문이다.

 

WebRTC와 WebSocket에 대한 의견이 있다면 언제든지 댓글로 공유해주시면 감사하겠습니다.