{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name = WebRTC
| logo = WebRTC Logo.svg
| released = {{시작 날짜와 나이|df=yes|2011}}
| latest release version = 1.0<ref>{{웹 인용|title=WebRTC 1.0: Real-time Communication Between Browsers|url=https://www.w3.org/TR/webrtc/|website=World Wide Web Consortium|accessdate=25 March 2019|date=27 September 2018|보존url=https://web.archive.org/web/20190407011412/http://www.w3.org/TR/webrtc/|보존날짜=2019-04-07|url-status=dead}}</ref>
| latest release date = {{시작 날짜와 나이|2018|05|04}}
| repo = {{URL|webrtc.googlesource.com}}
| programming language = [[C++]],<ref>{{웹 인용| url=https://webrtc.googlesource.com/src/webrtc/ | title=Src/webrtc - Git at Google}}</ref> [[JavaScript]]
| genre = 
| author = Justin Uberti<br/>Peter Thatcher
| license = [[BSD 라이선스]]
| website = {{URL|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는 [[구글]]이 [[오픈 소스]]화한 프로젝트에서 기원하였다.<ref>{{웹 인용|url=http://lists.w3.org/Archives/Public/public-webrtc/2011May/0022.html |제목=Google release of WebRTC source code from Harald Alvestrand on 2011-05-31 (public-webrtc@w3.org from May 2011) |publisher=Lists.w3.org |date= |accessdate=2012-09-12}}</ref> 그 뒤로 [[국제 인터넷 표준화 기구]]<ref>http://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt</ref>가 [[프로토콜]] 표준화 작업을, [[W3C]]가 API 정의를 진행하였다.<ref>{{웹 인용|url=http://www.w3.org/TR/webrtc/ |제목=WebRTC 1.0: Real-time Communication Between Browsers |publisher=W3.org |date= |accessdate=2012-09-12}}</ref>

WebRTC의 W3C 초안<ref>{{웹 인용|url=http://dev.w3.org/2011/webrtc/editor/webrtc.html |제목=WebRTC 1.0: Real-time Communication Between Browsers |publisher=Dev.w3.org |date= |accessdate=2012-09-12}}</ref> 작업은 진행 중이며 [[구글 크롬|크롬]]과 [[파이어폭스]] 브라우저에서 먼저 구현되고 있다. API는 [[WHATWG]]<ref>{{웹 인용|url=http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#history-1 |제목=Introduction — HTML Standard |publisher=Whatwg.org |date= |accessdate=2012-09-12}}</ref>과 [[에릭슨]].<ref>{{웹 인용 |url=https://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer-conversational-video |제목=Beyond HTML5: Peer-to-Peer Conversational Video &#124; Ericsson Labs |publisher=Labs.ericsson.com |date= |accessdate=2012-09-12 |보존url=https://web.archive.org/web/20121029214512/http://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer-conversational-video |보존날짜=2012-10-29 |url-status=dead }}</ref>의 작업에 기반하여 정의되었다.

== 개요 ==
=== 설계 ===
WebRTC의 주요 구성 요소는 여러 [[자바스크립트]] [[API]]를 포함하고 있다:
* <code>getUserMedia</code>: 오디오와 비디오 미디어를 가져온다. (예: 장치의 카메라와 마이크로폰에 접근하여)<ref name="getusermedia">{{웹 인용|url=http://www.w3.org/TR/mediacapture-streams/#dom-navigator-getusermedia |title=Media Capture and Streams: getUserMedia |publisher=W3C |date=2013-09-03 |accessdate=2014-01-15}}</ref>
* <code>RTCPeerConnection</code>: 피어 간 오디오, 비디오 통신을 활성화한다. [[신호 처리]], [[코덱]] 관리, P2P 통신, 보안, [[대역폭]] 관리를 수행한다.<ref name="rtcpeerconnection">{{웹 인용|url=http://www.w3.org/TR/webrtc/#rtcpeerconnection-interface |title=WebRTC: RTCPeerConnection Interface |publisher=W3C |date=2013-09-10 |accessdate=2014-01-15}}</ref>
* <code>RTCDataChannel</code>: 피어 간 양방향 임의 데이터 통신을 허용한다. [[웹소켓]]과 동일한 API를 사용하며 매우 낮은 [[네트워크 레이턴시|레이턴시]]를 보인다.<ref name="rtcdatachannel">{{웹 인용|url=http://www.w3.org/TR/webrtc/#rtcdatachannel |title=WebRTC: RTCDataChannel |publisher=W3C |date=2013-09-10 |accessdate=2014-01-15}}</ref>

또, WebRTC API는 통계 함수를 포함한다:
* <code>getStats</code>: 웹 애플리케이션에 WebRTC 세션에 관한 통계 집합의 검색을 허용한다. 이 통계 데이터는 별도의 W3C 문서에 기술되어 있다.<ref name="stats">{{웹 인용|url=https://w3c.github.io/webrtc-stats/webrtc-stats.html| title= Identifiers for WebRTC's Statistics API |publisher=W3C |date=2014-09-29 }}</ref>

=== 지원 ===
WebRTC는 다음의 브라우저에서 지원된다:
* 데스크톱 PC
** [[마이크로소프트 엣지]] 12+<ref name="edge">{{웹 인용| url=https://blogs.windows.com/msedgedev/2015/09/18/ortc-api-is-now-available-in-microsoft-edge/ | title=ORTC API is now available in Microsoft Edge | publisher=Microsoft | date=2015-09-18 }}</ref>
** [[구글 크롬]] 28+
** [[모질라 파이어폭스]] 22+<ref name="Firefox22">[https://www.mozilla.org/en-US/firefox/22.0/releasenotes/ Firefox Notes - Desktop]. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.</ref>
** [[사파리 (웹 브라우저)|Safari]] 11+<ref name="Safari11">{{웹 인용 | url=https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html | title=Safari 11.0 | publisher=Apple Inc. | accessdate=6 June 2017 | archive-date=2017-11-14 | archive-url=https://web.archive.org/web/20171114193322/https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html | url-status=dead }}</ref>
** [[오페라 (웹 브라우저)|Opera]] 18+<ref name="opera-18">[http://blogs.opera.com/news/2013/11/opera-18/ Opera News]. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.</ref>
** [[비발디 (웹 브라우저)|Vivaldi]] 1.9+
** 네이버 웨일
* [[안드로이드 (운영 체제)|안드로이드]]
** Google Chrome 28+ (버전 29부터 기본으로 활성화됨)
** Mozilla Firefox 24+<ref name="Firefox24">[https://www.mozilla.org/en-US/mobile/24.0/releasenotes/ Firefox Notes - Desktop]. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.</ref>
** Opera Mobile 12+
* [[크롬 OS]]
* [[파이어폭스 OS]]
* [[블랙베리 10]]
* [[IOS 11]]
**MobileSafari/WebKit
* [[타이젠]] 3.0

2013년 10월 마지막 기능 릴리스 이전의 [[인터넷 익스플로러]]에서는 지원되지 않으나,<ref name="IE">{{웹 인용| url=https://status.modern.ie/webrtcwebrtcv10api?term=WebRTC |url-status=dead |archiveurl=https://web.archive.org/web/20150504092553/https://status.modern.ie/webrtcwebrtcv10api?term=WebRTC |archivedate=2015-05-04 | title=Internet Explorer Web Platform Status and Roadmap | publisher=Microsoft | accessdate=7 September 2014}}</ref> 서드파티 플러그인을 사용하여 인터넷 익스플로러와 macOS용 사파리에서 WebRTC 지원을 추가할 수 있다.<ref name="Priologic">{{웹 인용|url=http://www.easyrtc.com/news/?a=37af688dfd72da30a2ccfd839a9a3d24 |url-status=dead |archiveurl=https://web.archive.org/web/20140626033329/http://easyrtc.com/news/?a=37af688dfd72da30a2ccfd839a9a3d24 |archivedate=2014-06-26 |title=Priologic Releases First Open Source WebRTC Plugin for Internet Explorer |date=2014-06-10}}</ref><ref name="Temasys">{{보도자료 인용|url=http://www.prweb.com/releases/2014/05/prweb11844308.htm |title=Temasys Plugin Supports webRTC in Internet Explorer and Apple Safari, on Desktops |date=2014-05-12 |first=Charles |last=Wilcox |publisher=Temasys Communications Pte Ltd |agency=[[PRWeb]]}}</ref> [[애플 세계 개발자 회의|WWDC]] 2017에서, 애플은 사파리 11에서 WebRTC를 지원할 것이라고 발표했으며,<ref name="Safari11"/> 사파리 테크놀로지 프리뷰 릴리스 32에서 사용 가능하게 되었다.<ref name="Safari-TP">{{웹 인용|title=Safari Technology Preview Release Notes|url=https://developer.apple.com/safari/technology-preview/release-notes/|accessdate=12 June 2017}}</ref>

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

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

== 각주 ==
{{각주}}

== 외부 링크 ==
{{위키공용분류}}
* {{언어링크|en}} {{공식 웹사이트}}
* {{언어링크|en}} [http://www.w3.org/2011/04/webrtc/ W3C Web Real-Time Communications Working Group]
* {{언어링크|en}} [http://tools.ietf.org/wg/rtcweb/ IETF Real-Time Communication in WEB-browsers (rtcweb) Working Group]

{{웹 브라우저}}
{{웹 인터페이스}}

{{전거 통제}}

[[분류:웹 개발]]
[[분류:BSD 라이선스 소프트웨어]]
[[분류:P2P]]