WebRTC

위키백과, 우리 모두의 백과사전.

WebRTC
원저자Justin Uberti
Peter Thatcher
발표일2011년(13년 전)(2011)
안정화 버전
1.0[1] / 2018년 5월 4일(6년 전)(2018-05-04)
저장소webrtc.googlesource.com
프로그래밍 언어C++,[2] JavaScript
라이선스BSD 라이선스
웹사이트webrtc.org

WebRTC(Web Real-Time Communication)는 웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API이다. 음성 통화, 영상 통화, P2P 파일 공유 등으로 활용될 수 있다.

애플, 구글, 마이크로소프트, 모질라 및 오페라가 지원하는 WebRTC 사양은 W3C(World Wide Web Consortium) 및 IETF(Internet Engineering Task Force)에서 게시되었다.

webrtc.org 웹사이트에 따르면, 이 프로젝트의 목적은 브라우저, 모바일 플랫폼 및 IoT 장치용으로 풍부한 고품질 RTC 애플리케이션을 개발하고 공통 프로토콜 세트를 통해 모두 통신할 수 있도록 하는 것이다.

역사[편집]

웹 브라우저 기반의 통신 방식인 WebRTC는 구글오픈 소스화한 프로젝트에서 기원하였다.[3] 그 뒤로 국제 인터넷 표준화 기구[4]프로토콜 표준화 작업을, W3C가 API 정의를 진행하였다.[5]

WebRTC의 W3C 초안[6] 작업은 진행 중이며 크롬파이어폭스 브라우저에서 먼저 구현되고 있다. API는 WHATWG[7]에릭슨.[8]의 작업에 기반하여 정의되었다.

개요[편집]

설계[편집]

WebRTC의 주요 구성 요소는 여러 자바스크립트 API를 포함하고 있다:

  • getUserMedia: 오디오와 비디오 미디어를 가져온다. (예: 장치의 카메라와 마이크로폰에 접근하여)[9]
  • RTCPeerConnection: 피어 간 오디오, 비디오 통신을 활성화한다. 신호 처리, 코덱 관리, P2P 통신, 보안, 대역폭 관리를 수행한다.[10]
  • RTCDataChannel: 피어 간 양방향 임의 데이터 통신을 허용한다. 웹소켓과 동일한 API를 사용하며 매우 낮은 레이턴시를 보인다.[11]

또, WebRTC API는 통계 함수를 포함한다:

  • getStats: 웹 애플리케이션에 WebRTC 세션에 관한 통계 집합의 검색을 허용한다. 이 통계 데이터는 별도의 W3C 문서에 기술되어 있다.[12]

지원[편집]

WebRTC는 다음의 브라우저에서 지원된다:

2013년 10월 마지막 기능 릴리스 이전의 인터넷 익스플로러에서는 지원되지 않으나,[18] 서드파티 플러그인을 사용하여 인터넷 익스플로러와 macOS용 사파리에서 WebRTC 지원을 추가할 수 있다.[19][20] WWDC 2017에서, 애플은 사파리 11에서 WebRTC를 지원할 것이라고 발표했으며,[15] 사파리 테크놀로지 프리뷰 릴리스 32에서 사용 가능하게 되었다.[21]

응용[편집]

WebRTC를 사용하면 브라우저가 파일을 서로 직접 스트리밍하여 서버 측 파일 호스팅의 필요성을 줄이거나 완전히 제거할 수 있다. 웹토렌트는 WebRTC 전송을 사용하여 브라우저에서 비트토렌트 프로토콜을 사용하여 P2P 파일 공유를 활성화한다. 일부 파일 공유 웹사이트에서는 이를 사용하여 사용자가 브라우저에서 서로에게 직접 파일을 보낼 수 있도록 허용한다. 하지만 이렇게 하려면 업로더가 파일이 다운로드될 때까지 탭을 열어 두어야 한다. 마이크로소프트 소유 Peer5와 같은 일부 CDN은 클라이언트의 대역폭을 사용하여 연결된 다른 피어에 미디어를 업로드하여 각 피어가 에지 서버 역할을 할 수 있도록 한다.

처음에는 웹 브라우저용으로 개발되었지만 WebRTC에는 모바일 플랫폼 및 IoT 장치를 포함한 비 브라우저 장치용 애플리케이션이 있다. 예를 들어 클라우드 전화 또는 웹 전화라고도 하는 브라우저 기반 VoIP 전화 통신이 포함된다. 이를 통해 웹 브라우저 내에서 전화를 걸고 받을 수 있으며 소프트폰을 다운로드하고 설치해야 하는 요구 사항을 대체한다.

참조[편집]

  1. “WebRTC 1.0: Real-time Communication Between Browsers”. 《World Wide Web Consortium》. 2018년 9월 27일. 2019년 4월 7일에 원본 문서에서 보존된 문서. 2019년 3월 25일에 확인함. 
  2. “Src/webrtc - Git at Google”. 
  3. “Google release of WebRTC source code from Harald Alvestrand on 2011-05-31 (public-webrtc@w3.org from May 2011)”. Lists.w3.org. 2012년 9월 12일에 확인함. 
  4. http://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
  5. “WebRTC 1.0: Real-time Communication Between Browsers”. W3.org. 2012년 9월 12일에 확인함. 
  6. “WebRTC 1.0: Real-time Communication Between Browsers”. Dev.w3.org. 2012년 9월 12일에 확인함. 
  7. “Introduction — HTML Standard”. Whatwg.org. 2012년 9월 12일에 확인함. 
  8. “Beyond HTML5: Peer-to-Peer Conversational Video | Ericsson Labs”. Labs.ericsson.com. 2012년 10월 29일에 원본 문서에서 보존된 문서. 2012년 9월 12일에 확인함. 
  9. “Media Capture and Streams: getUserMedia”. W3C. 2013년 9월 3일. 2014년 1월 15일에 확인함. 
  10. “WebRTC: RTCPeerConnection Interface”. W3C. 2013년 9월 10일. 2014년 1월 15일에 확인함. 
  11. “WebRTC: RTCDataChannel”. W3C. 2013년 9월 10일. 2014년 1월 15일에 확인함. 
  12. “Identifiers for WebRTC's Statistics API”. W3C. 2014년 9월 29일. 
  13. “ORTC API is now available in Microsoft Edge”. Microsoft. 2015년 9월 18일. 
  14. Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  15. “Safari 11.0”. Apple Inc. 2017년 11월 14일에 원본 문서에서 보존된 문서. 2017년 6월 6일에 확인함. 
  16. Opera News. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
  17. Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  18. “Internet Explorer Web Platform Status and Roadmap”. Microsoft. 2015년 5월 4일에 원본 문서에서 보존된 문서. 2014년 9월 7일에 확인함. 
  19. “Priologic Releases First Open Source WebRTC Plugin for Internet Explorer”. 2014년 6월 10일. 2014년 6월 26일에 원본 문서에서 보존된 문서. 
  20. Wilcox, Charles (2014년 5월 12일). “Temasys Plugin Supports webRTC in Internet Explorer and Apple Safari, on Desktops” (보도 자료). Temasys Communications Pte Ltd. PRWeb. 
  21. “Safari Technology Preview Release Notes”. 2017년 6월 12일에 확인함. 

외부 링크[편집]