멀티미디어
WebRTC
다른 이름: Web Real-Time Communication , RTC
정의
Web Real-Time Communication. W3C/IETF 표준 실시간 P2P 통신 프레임워크. 브라우저 간 비디오/오디오/데이터 전송. ICE, STUN, TURN으로 NAT 통과. SDP로 미디어 협상. 0.1~0.5초 초저지연. Zoom, Discord, Google Meet 핵심 기술
상세 설명
기술 스펙
- MediaStream API: getUserMedia()로 카메라/마이크 접근
- RTCPeerConnection: P2P 미디어 스트림 전송
- RTCDataChannel: 임의 데이터 P2P 전송
- ICE(Interactive Connectivity Establishment): NAT 통과 후보 수집
- STUN(Session Traversal Utilities for NAT): 공인 IP 확인
- TURN(Traversal Using Relays around NAT): 릴레이 서버 경유
- SDP(Session Description Protocol): 미디어 파라미터 교환
- 코덱: VP8/VP9/AV1(비디오), Opus/G.711(오디오)
실무 활용
- Google Meet, Zoom, Microsoft Teams: 화상회의
- Discord, Twitch: VoIP 음성채팅
- Facebook Messenger, WhatsApp: 영상통화
- Cloudflare Stream Live: 초저지연 라이브 스트리밍
장점
- 초저지연: 0.1~0.5초 (P2P 직접 연결 시)
- 브라우저 네이티브: 플러그인 없이 <video> + JS API
- P2P: 서버 대역폭 절감 (TURN 사용 시 제외)
- 표준화: W3C + IETF (RFC 8825~8854)
단점 및 제약
- 확장성 부족: P2P는 1:1~소규모만 실용적 (대규모는 SFU/MCU 필요)
- NAT 통과 실패: 10~20% 연결 실패 (TURN 폴백 필수)
- 높은 복잡도: ICE, SDP, Signaling 서버 구현 어려움
- CDN 캐싱 불가: 실시간 전송으로 캐싱 의미 없음
호환성
Chrome 23+, Firefox 22+, Safari 11+, Edge 79+, Android Chrome, iOS Safari 11+
표준 정보
표준화 기구: W3C (API), IETF (프로토콜 RFC 8825~8854)
출시 연도: 2011년