WebRTC의 주요 개념을 쉽게 설명하자면
- Peer-to-Peer 연결: 두 디바이스가 서버 없이 직접 통신할 수 있게 해준다. 음성, 영상, 데이터 등을 주고받을 수 있다.
- ICE (Interactive Connectivity Establishment): 최적의 경로를 찾기 위한 프로토콜이다. 디바이스가 서로 연결될 수 있도록 공유 가능한 네트워크 경로를 탐색한다.
- SDP (Session Description Protocol): 두 디바이스가 어떤 미디어를 주고받을지 약속하는 정보다. 연결 세부 정보(코덱, 포트 등)를 담고 있다.
- Signaling (시그널링): 서로 연결하기 전에 SDP와 ICE 정보를 교환하는 단계다. WebRTC는 시그널링 서버를 통해 이 데이터를 주고받는다.
- STUN/TURN 서버: 네트워크 환경에 따라 직접 연결이 어려울 때 사용하는 서버다. STUN 서버는 외부 IP를 확인하고, TURN 서버는 중계 역할을 한다.
나는 웹 소켓 서버를 구현하기 어려워 파이어베이스를 사용한다.
Firebase는 WebRTC에서 시그널링 서버 역할을 할 수 있다. WebRTC 연결을 위해 디바이스 간에 SDP와 ICE 후보자 정보를 주고받아야 하는데, 이를 처리하는 것이 시그널링 서버의 역할이다.Firebase의 Firestore나 Realtime Database를 사용해 WebRTC 연결에 필요한 시그널링 데이터(SDP와 ICE 정보)를 주고받을 수 있다. 이로써 두 디바이스가 직접 연결할 수 있게 도와주는 것이다.
WebRTC에서 시그널링 서버로 더 적합한 옵션은 WebSocket 서버나 Socket.io 서버다. WebSocket은 양방향 실시간 통신을 가능하게 해주며, WebRTC에서 필요한 SDP와 ICE 후보자 정보를 빠르게 주고받기에 적합하다.
Firebase는 편리하지만 실시간 업데이트 속도 면에서 WebSocket 서버보다 느릴 수 있다. WebRTC는 빠른 시그널링을 요구하기 때문에 WebSocket 기반 서버가 더 적합할 수 있다.
'CS > 짤막지식' 카테고리의 다른 글
2. 자료구조 / 알고리즘 - 코드 (1) | 2024.10.28 |
---|---|
WebRTC with ChatGPT (2) | 2024.10.02 |
restful API vs websocket (0) | 2024.09.25 |
2. webRTC의 SDP, ICE, 시그널링에 대해서 (0) | 2024.09.20 |
변수 쓸 때 숫자는 Int, Double로 다양하게 받으면서, 왜 문자는 String으로 퉁치죠? (0) | 2024.07.30 |