WebRTC란?

채동기·2022년 11월 28일
0

websocket

목록 보기
2/2

WebRTC(Web Real-Time Communication)은 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 마음대로 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다. WebRTC를 구성하는 일련의 표준들은 플러그인이나 제 3자 소프트웨어 설치 없이 종단 간 데이터 공유와 화상 회의를 가능하게 합니다.
그리소 기술적인 특징 덕분에 WebRTC는 다른 어떤 기술보다 빠르게 음성과 영상을 전송할 수 있습니다. 마치 채팅 메시지처럼 음성과 영상을 매우 즉각적인 서비스에 적용할 수 있습니다.

WebRTC 활용 분야

WebSocket vs WebRTC

WebSocket?

서버와 클라이언트가 실시간으로 양방향 통신을 할 수 있게 해주는 Socket
일부 브라우저들은 웹소켓을 지원하지 않으므로, 모든 브라우저에서의 동작을 보장하진 않음
2022년 2월 현재는 일부 구버전 브라우저를 제외하고 모두 지원한다고 볼 수 있다.

socket.io?

웹소켓을 사용할 수 없는 브라우저인 경우, 일정 간격마다 데이터를 받아오는 HTTP polling을 사용해 실시간 통신 기능을 구현하게끔 해주는 자바스크립트 라이브러리.
socket.io !== WebSocket

WebRTC

Web Real-Time Communication의 약자로, 브라우저끼리 통신하여 중간자인 서버 없이 브라우저 간에 P2P 형태로 오디오, 영상, 데이터를 교환할 수 있게 하는 기술이다.
WebSocket과 대비되는 점은 아래와 같다.
WebRTC는 영상, 오디오, 데이터 통신이 고성능, 고품질이도록 설계되었다.
WebRTC는 브라우저간 직접 통신이므로, 훨씬 전송 속도가 빠름
WebRTC는 네트워크 지연시간이 짧다.(Latency)

다만, WebRTC만으로 제어하기 어려운 부분이 있으므로 WebSocket, 또는 Socket.io 를 사용해 신호를 주고받을 수 있는 Signaling 서버는 필요하다.
현재 Zoom, Google Meet, 매일 쓰고있는 Gather.town 에서도 이 WebRTC를 이용하여 화상회의 기능을 구현하였다.

참고

https://tech.kakaoenterprise.com/121
https://developer.mozilla.org/ko/docs/Web/API/WebRTC_API

profile
what doesn't kill you makes you stronger

0개의 댓글