사전 지식

시그널링 서버란?

WebRTC 연결을 위해 피어 간에 SDP와 ICE 같은 연결 협상 정보를 전달하는 중개 서버다.

미디어나 데이터는 처리하지 않고, 연결을 성립시키는 데 필요한 메타데이터만 전달한다.

웹소켓이란?

클라이언트와 서버 간에 지속적인 양방향 통신을 가능하게 하는 통신 프로토콜이다.

실시간 이벤트 전달이 가능해 시그널링 서버의 통신 수단으로 주로 사용된다.

WebRTC란?

브라우저나 앱 간에 실시간 오디오, 비디오, 데이터 통신을 가능하게 하는 기술 표준이다.

실제 통신은 P2P로 이루어지며, 연결을 위해 시그널링 서버가 필요하다.

WebSocket도 프로토콜, WebRTC도 프로토콜인데 각각 어디서 사용되는가?

WebSocket은 클라이언트 ↔ 서버 간 메시지 전달에 사용된다.

WebRTC는 클라이언트 ↔ 클라이언트(P2P) 간 실시간 통신에 사용된다.

SDP란?

두 피어가 어떤 방식으로 통신할지 정의한 연결 설정 정보다.

WebRTC에서는 offer와 answer 형태로 교환된다.

ICE란?

피어 간에 실제로 통신 가능한 네트워크 경로를 찾기 위한 메커니즘이다.

ICE candidate를 교환해 NAT 환경에서도 연결 가능한 경로를 탐색한다.