WebRTC를 간단하게 알아보기


안녕하세요.
고코더 입니다.


오늘은 무료 API로 실시간 통을 가능하게 하는 WebRTC에 대해 알아보려고 합니다


한줄 요약


 1. 고코더가 생각하는 한줄 요약은

"웹브라우저만으로 플러그인 도움 없이 실시간으로 고품질 커뮤니케이션 기술로, 영상, 음성 및 데이터 통신을 하는 자바스크립트 API이다."



구글이 시작한 프로젝트 


 2. WebRTC 공식 홈페이지 입니다. 

접속하면 Real-time communication for the web(웹을 위한 실시간 커뮤니케이션) 이라고 정체성을 드러내는 문구가 인상적입니다. 그리고 하단에 보면 Google Developers (구글 개발팀)의 로고가 보입니다. 


 3. WebRTC 소스 저장소
 
해당 프로젝트는 홈페이지의 정체성 처럼 구글에서 만든 오픈 API입니다. Google Chrome Team을 시작으로 Mozilla, Opera 재단의 지원을 받으며 프로젝트를 진행하고 있습니다. 그리고 W3C 국제 표준화로 지정되었습니다.  BDS라이센스의 오픈 프로젝트이기에 누구나 소스를 확인하고 수정할 수 있습니다. (코드 리뷰가 가능하면) 



WebRTC가 등장한 이유


 4. 기존 서비스의 문제

스트리밍 세상이 도래했습니다. 다운로드 시대에서 연결의 시대로 변모 하였습니다. 그만큼 영상을 라이브로 즐겨보는 사람들이 많아졌다는 증거입니다. 오늘 하루에도 유투브를 얼마나 많은 분들이 보는거 보면 확실히 스트리밍 세상이 맞는거 같습니다. 


하지만 상용화된 방식중에 HTML5는 보안점이 취약한 개방형 프로토콜이고 active-x나 flash 형 도구는 사용자들부터 거부감이 들정도로 문제점이 많았습니다. 덕지 덕지 설치되는 강제 프로그램과 운영체제를 느리게 하는 불완전성까지 아직도 국내에 많은 스트리밍 업체들은 이 방식을 사용중입니다.

 5. 이를 해결한 WebRTC

WebRTC는 이러한 문제점을 해결한 API입니다. 웹 브라우저간의 API 통신이기에 프로그램 설치도 필요없고 운영체제에 부담을 주지 않아도 됩니다. 사용하기 편리하고 신뢰성 있는 프로그램은 승리하기 마련인거 같네요.



WebRTC의 문제점


 6. 크로스 브라우징 문제 

하지만 이 방식에도 단점이 있습니다. 지원하는 브라우저의 한계가 있는 크로스 브라우징 문제입니다. 각 브라우저 회사에서 이에 맞게 개발을 해야 하는 문제점이 있었지만 지금은 대부분의 브라우저들이 이를 지원합니다. 사파리와 그리고 인지도가 낮은 브라우저를 쓰는 사용자나 예전 버전 브라우저를 쓰시는 분은 사용이 불가능합니다.

 7. STUN/TURN 서버 필요

방화벽(firewall)문제가 있습니다. 같은 네트워크 상에서는 문제가 없지만 다른 네트워크상에서는 STUN/TURN 서버를 설치한 후 사용해야 합니다.


대표 API



 8. 크로스 브라우징 문제 대표 API는 3가지 입니다. 하지만 이걸로 많은 부분을 개발 가능합니다. 

GetUserMedia
- 클라이언트 사용자 컴퓨터의 카메라와 마이크 접근을 담당합니다.
RTCPeerConnection
- Peer간의 연결을 생성하여 오디오와 비디오 통신에 사용 하게 합니다. Stun 서버가 필요한 부분입니다.
RTCDataChannel
- Peer간의 데이터를 주고 받을 수 있는 Tunnel API 입니다.



마무리


쉽게 이해가 가죠!?


댓글을 달아 주세요