WebSocket vs WEBRTC 개념정리

 WebSocket

 보통 실시간으로 데이터를 전송해야하는 기능( ex :스트리밍서비스, 채팅 서비스)을 구현하기 위해서는

WebSocket을 통해서 기능을 구현한다.

 

그런데 이러한 WebSocket은 서버의 성능이 중요하다는 문제점이 존재한다.

특히 WebSocket에서는 서버의 메모리 성능이 매우 중요해지는데  모든 통신을 추적하기 때문이다.

 

서비스를 사용하는 유저가 많으면 많을 수록 더욱더 높은 메모리를 요구하게 되고

메시지를 받으면 다른 유저에게도 해당 메시지를 리얼타임으로 포워딩해야하기 때문에 

서버에 수많은 커넥션이 오고 있다면  딜레이가 발생할 수 있다.

 

이러한 문제점을 해결하기 위해서 등장한 개념이 바로 WEBRTC이다.

 

WEBRTC

WEBRTC(WebRealTimeCommunication)는 브라우저를 서버에 연결하는 것이 아니라 브라우저끼리 연결한다는 개념이다.

따라서 A유저가 메시지를 보내면 이는 서버를 통해서 전달되는 것이 아니라 B유저의 클라이언트로 전달하는 개념이다. 

즉 P2P 커뮤니케이션인 것이다.

 

당연히 텍스트뿐만아니라 영상, 오디오 등 거의 모든 데이터를 리얼타임으로 전송할 수 있다.

당연히 서버를 이용하는 것보다 빠르다.

 

하지만 WEBRTC에도 한계점은 존재하는데  만약에 구현하고자 하는 서비스가 예를 들면 실시간 음성채팅 서비스 한 방에에 1천명의 유저가 있다면 하나의 브라우저가 999개 데이터를 다운받고  업로드해야하는 문제점이 존재한다.

 

즉 기존 P2P 방식과 마찬가지로 확장성의 제약이 존재한다.