반응형

 

WebRTC와 WebSocket은 둘 다 브라우저 간 실시간 데이터 전송을 가능하게 해주지만, 목적과 동작 방식이 다르다.

 

https://www.apizee.com/what-is-webrtc.php


WebRTC란?

  • Web Real-Time Communication의 약자
  • 브라우저 간 P2P(Peer-to-Peer) 실시간 오디오, 비디오, 데이터 스트리밍을 위한 프로토콜
  • 별도의 플러그인 설치 없이 브라우저에서 바로 사용 가능
  • 주로 영상 통화, 음성 통화, 실시간 화상회의 서비스 등에 활용

주요 특징

  • P2P 직접 연결 (네트워크 상황에 따라 STUN/TURN 서버 필요)
  • 오디오/비디오 스트림 전송에 최적화
  • 데이터채널 기능을 통해 텍스트/바이너리 데이터 전송 가능

WebSocket이란?

  • 브라우저와 서버 간 풀 이중(Full Duplex) 통신을 위한 프로토콜
  • 단방향인 HTTP와 달리 서버와 클라이언트가 서로 자유롭게 데이터 송수신 가능
  • 게임, 채팅, 실시간 알림, 주식 시세표 같은 서비스에 활용

주요 특징

  • TCP 기반의 지속적인 연결 유지
  • 서버에서 클라이언트로 실시간 Push 가능
  • 데이터 전송은 텍스트와 바이너리 형태

WebRTC vs WebSocket 비교

항목 WebRTC WebSocket
통신 방식 P2P (브라우저-브라우저) 클라이언트-서버
주요 용도 실시간 오디오/비디오/데이터 스트리밍 채팅, 알림, 실시간 데이터 전송
서버 의존성 최소화 가능 (P2P 연결) 필수 (항상 서버 거쳐야 함)
데이터 전송 텍스트, 바이너리, 오디오, 비디오 스트림 텍스트, 바이너리
설정 복잡도 복잡 (NAT Traversal, STUN/TURN 필요 가능) 상대적으로 간단
보안 기본적으로 DTLS-SRTP 암호화 지원 TLS(보통 wss 프로토콜)로 암호화 가능

 


언제 어떤 걸 쓸까?

  • 영상/음성 통화, 화면 공유, 실시간 영상 서비스 → WebRTC
  • 실시간 채팅, 게임 서버, 실시간 알림 서비스 → WebSocket

사실 두 기술을 조합해서 사용하는 경우도 많다. 예를 들어 WebRTC로 P2P 영상통화를 하면서, WebSocket으로 연결 초기 설정(Signaling) 메시지를 주고받는 식.

 


정리

WebRTC는 브라우저끼리 직접 오디오, 비디오, 데이터 스트림을 주고받을 때,
WebSocket은 서버와 클라이언트 간 양방향 텍스트/데이터 전송이 필요할 때 사용하는 것이 적합

서로 대체하는 기술이라기보다는, 목적에 따라 쓰임새가 달라서 상황에 맞게 적절히 선택하는 게 중요

반응형

+ Recent posts