WebRTC란 무엇인가요?
Published: 2024-03-05 21:16:53

### WebRTC 정의

[WebRTC](https://webrtc.org/)는 웹 실시간 통신의 약자로, 웹 브라우저와 같은 두 엔드포인트 간 또는 앱 내에서 JavaScript API를 사용하여 데이터, 오디오 및 비디오에 대한 실시간 P2P 통신을 제공하는 오픈 소스 프로젝트입니다. 이 기술은 처음 시작된 이래로 네트워크 통과, 향상된 데이터 스트리밍, 대역폭 기능 등 상당한 발전과 개선을 거듭해 왔습니다. 강력한 기능 덕분에 WebRTC는 e-러닝, [원격 의료](https://www.pubnub.com/solutions/digital-health/), [실시간 협업 도구](https://www.pubnub.com/solutions/multiuser-collaboration/) 등 다양한 분야에서 널리 채택되어 현재 시장에서 그 입지를 굳히고 있습니다.

### WebRTC의 역사

WebRTC는 2011년에 Google에서 처음 출시되었으며, 시간이 지남에 따라 Apple, Microsoft, Mozilla, Opera와 같은 주요 기업의 지원을 받았습니다. Google Chrome, Safari, Mozilla Firefox, Edge 등의 모바일 및 데스크톱 브라우저와 호환되므로 개발자는 추가 플러그인 없이도 브라우저 기반 애플리케이션이나 모바일 애플리케이션에 직접 통신 기능을 통합할 수 있습니다.

최근 몇 년 동안 인터넷 연결의 발전과 실시간 커뮤니케이션 앱에 대한 수요로 인해 WebRTC 채택이 급증하고 있습니다. 지속적인 발전은 기업, 독립 기여자 및 표준 단체를 포함한 기술 커뮤니티의 협력적인 노력의 증거입니다.

### 일반적인 WebRTC 사용 사례

WebRTC는 실시간 음성 및 영상 통화와 채팅부터 P2P 파일 공유에 이르기까지 다양한 사용 사례를 지원합니다. 기술의 발전으로 의료, 라이브 스트리밍 플랫폼, 화상 회의 등으로 WebRTC의 적용 범위가 더욱 확대되었습니다:

-   브라우저 내/앱 내 고객 지원 채팅은 이제 화면 공유 및 실시간 주석과 같은 기능으로 더욱 향상되었습니다.
    
-   원격 의료 애플리케이션은 의사-환자 간 화상/음성 통화를 용이하게 하여 화상 커뮤니케이션을 돕고, 이제 고화질 스트림을 지원하며, 건강 기록을 공유하기 위한 안전한 데이터 채널을 제공합니다.
    
-   P2P 파일 공유는 이제 대용량 파일과 빠른 전송 속도를 처리할 수 있습니다.
    
-   실시간 게임 및 라이브 스트리밍 플랫폼, WebRTC의 저지연 스트리밍 기능.
    
-   라이브 비디오 및 오디오 회의, 문서 편집 등의 기능을 갖춘 협업 도구.
    

![](https://www.pubnub.com/cdn/3prze68gbwl1/6RGxRNvHpjDnS55Yackzm8/5c5d8953204d4735a8e1c9ba5fc23859/PeertoPeer.jpg)

### WebRTC는 어떻게 작동하나요?

WebRTC는 세션 설명 프로토콜(SDP)과 같은 시그널링 프로토콜을 통해 두 브라우저를 RTCPeerConnection을 통해 연결하는 방식으로 작동합니다. 다양한 네트워크 시나리오에서 연결을 처리하기 위해 STUN(NAT용 세션 트래버스 유틸리티) 및 TURN(NAT 주변 릴레이를 이용한 트래버스) 프로토콜과 같은 네트워크 트래버스 절차가 WebRTC의 작동 메커니즘에 통합되었습니다. 여기에는 방화벽이나 NAT를 통해서도 직접 연결을 설정하고, 공인 IP 주소를 결정하고, 필요한 경우 TURN 서버를 사용하여 데이터를 릴레이하는 것이 포함됩니다.

### RTCPeerConnection을 통한 WebRTC 사용

WebRTC는 피어투피어 연결을 설정하기 위한 RTCPeerConnection 인터페이스를 제공합니다. RTCPeerConnection을 사용하면 신호 처리, 코덱 처리, P2P 통신, 보안 및 대역폭 관리를 처리하여 지연 시간이 짧은 고품질 음성 및 영상 통화 연결을 설정할 수 있습니다. 개발자가 통화 성능을 모니터링하고 최적화하는 데 도움이 되도록 연결에 대한 통계 데이터를 가져오는 getStats()와 같은 추가 메서드가 도입되었습니다.

### RTCDataChannel 및 MediaStream을 통한 WebRTC 사용 방법

WebRTC는 RTCPeerConnection의 구성 요소인 RTCDataChannel을 통해 데이터를 교환할 수 있습니다. RTCDataChannel API를 사용하면 피어 간에 임의의 데이터를 양방향으로 통신할 수 있습니다. 이는 스트림 제어 전송 프로토콜(SCTP)을 사용하여 안정적이고 안전한 데이터 전송을 제공하며, 직접 파일 공유와 실시간 게이밍의 사용 사례를 열어줍니다. getUserMedia라고도 하는 MediaStream API는 사용자 동의 하에 로컬 카메라와 마이크에 액세스할 수 있게 해줍니다. 최근 업데이트를 통해 비디오 해상도, 프레임 속도 및 오디오 품질을 조정하는 등 미디어 스트림을 보다 세밀하게 제어할 수 있습니다.

**PubNub 및 WebRTC를 사용하여 애플리케이션을 구축하는 방법**
-----------------------------------------

![](https://www.pubnub.com/cdn/3prze68gbwl1/4QbGEgmhK9dXPOVj0XHIiv/4a6775807145a9efcd70e83e638a2f30/WebRTC-Diagram.png)

처음에는 브라우저 A에서 브라우저 B로 SDP를 전송할 방법이 필요합니다. PubNub 네트워크를 이러한 앱의 시그널링 서버로 사용할 수 있습니다. 프레즌스 및 저장/재생과 같은 기능도 이러한 앱을 향상시키는 데 사용할 수 있습니다.

WebRTC 프로토콜이나 앱을 통해 다른 사용자에게 전화를 걸 때, 발신자는 수신자가 현재 온라인 상태인지 오프라인 상태인지, 어떤 기기를 사용하고 있는지, 전화를 받을 수 있는지 등을 알아야 합니다.

프레즌스는 이러한 모든 정보를 제공하고 연결 가능한 사용자를 표시할 수 있게 해줍니다. 이는 사용자가 연결할 수 없는 다른 사용자에게 연결을 시도하는 것을 방지하기 위한 시그널링에 필수적인 기능입니다.

### WebRTC 프로토콜 및 문자 메시지에 대한 참고 사항

WebRTC 프로토콜은 저장 기능을 제공하지 않으므로 어떤 메시지가 전송되었는지에 대한 기록이 없습니다. 특히, 텍스트 채팅의 경우 사용자는 이전 채팅 대화의 기록을 기대합니다. PubNub의 [저장/재생](https://www.pubnub.com/blog/getting-started-swift-pubnub-storage-playback-presence/) 기능을 통해 사용자는 원하는 기간 동안의 과거 대화 내역을 볼 수 있습니다.

기본적으로 PubNub은 다음을 제공합니다:

-   SDP 시그널링
    
-   [현재 상태](https://www.pubnub.com/how-to/admin-portal-presence/)
    
-   채팅 메시지 저장
    

WebRTC와 웹소켓 비교
--------------

[웹소켓](https://www.pubnub.com/blog/what-are-websockets/) 은 클라이언트와 서버 간에 TCP 기반의 전이중 통신 프로토콜을 제공합니다. 반대로 WebRTC는 UDP를 통한 피어투피어 교환을 지원하여 실시간 비디오 및 오디오 데이터 스트림을 허용합니다. 실시간 애플리케이션에 대한 수요가 증가함에 따라 WebRTC와 웹소켓의 구분이 더욱 중요해졌고, 많은 개발자가 두 기술의 고유한 강점을 활용하고 있습니다.

**WebRTC로 오디오 및 비디오를 사용하는 방법**
------------------------------

WebRTC를 사용하면 모든 웹사이트에 비디오 및 음성 커뮤니케이션을 쉽게 구현할 수 있습니다. 이를 통해 웹사이트에 고급 수준의 상호 작용을 추가하여 사용자가 사이트 운영자 또는 서로 간에 상황에 맞게 실시간으로 소통할 수 있습니다. 이러한 기능은 사용자가 전화를 걸거나 플러그인을 다운로드하거나 웹사이트를 떠나야 하는 현재의 제한적인 기능보다 더 바람직합니다. 예를 들어, 금융 기관 웹사이트는 사용자가 자동화된 상담원과 끝없이 통화하기 위해 휴대폰을 사용하도록 강요하는 대신 금융 담당자와 신속하게 통화할 수 있도록 WebRTC 커뮤니케이션 앱을 쉽게 삽입할 수 있습니다.

음성과 영상이 포함된 WebRTC의 또 다른 예로는 웹 브라우저에서만 사용할 수 있는 Skype와 유사한 영상 채팅 애플리케이션이 있습니다. 즉, 최종 사용자는 소프트웨어나 플러그인을 설치할 필요 없이 브라우저와 브라우저 간에 비디오, 오디오, 텍스트 채팅을 통해 서로 쉽게 연결할 수 있습니다. 우리가 구축한 [WebRTC.co, 자바스크립트 영상 채팅 애플리케이션](https://www.pubnub.com/blog/integrating-video-calling-in-chat-with-webrtc-and-pubnub/) 전적으로 [WebRTC와 PubNub](https://github.com/stephenlb/webrtc-sdk).

![](https://www.pubnub.com/cdn/3prze68gbwl1/3hU9HWjdkEj3Y15NfmostG/aa805363e6a0d2afe4b1d365e1625201/WebRTCSkype.png)

**WebRTC의 미래는 어떻게 될까요?**
------------------------

주요 브라우저 업체들의 지원과 모바일 및 데스크톱 API를 최신 상태로 유지하기 위한 노력으로, 데이트, [게임](https://www.pubnub.com/solutions/gaming/), 의료 등의 서비스를 위한 비디오 채팅을 지원하는 도구로 소비자를 플랫폼에 계속 머물게 하려는 앱이 점점 더 많아질 것입니다.

#### 내용

[WebRTC](#h-0)[정의웹RTC의 역사일반적인](#h-1)[웹RTC 사용 사례웹RTC는 어떻게](#h-2)[작동하나요?](#h-3)[RTC를 통한 웹RTC 사용피어](#h-4)[연결RTC를 통한 웹RTC 사용 방법데이터 채널 및 미디어스트림](#h-5)[PubNub 및 웹RTC를 사용하여 애플리케이션을 구축하는](#h-6)[방법웹RTC 프로토콜 및 문자 메시지에 대한](#h-7)[참고사항웹RTC와 웹소켓웹RTC로 오디오 및 비디오를 사용하는](#h-9)[방법웹RTC의 미래는 무엇인가요?](#h-10)

펍넙이 어떻게 도와드릴까요?
===============

이 문서는 원래 [PubNub.com에](https://www.pubnub.com/blog/what-is-webrtc/) 게시되었습니다.

저희 플랫폼은 개발자가 웹 앱, 모바일 앱 및 IoT 디바이스를 위한 실시간 인터랙티브를 구축, 제공 및 관리할 수 있도록 지원합니다.

저희 플랫폼의 기반은 업계에서 가장 크고 확장성이 뛰어난 실시간 에지 메시징 네트워크입니다. 전 세계 15개 이상의 PoP가 월간 8억 명의 활성 사용자를 지원하고 99.999%의 안정성을 제공하므로 중단, 동시 접속자 수 제한 또는 트래픽 폭증으로 인한 지연 문제를 걱정할 필요가 없습니다.

PubNub 체험하기
-----------

[라이브 투어를](https://www.pubnub.com/tour/introduction/) 통해 5분 이내에 모든 PubNub 기반 앱의 필수 개념을 이해하세요.

설정하기
----

PubNub [계정에](https://admin.pubnub.com/signup/) 가입하여 PubNub 키에 무료로 즉시 액세스하세요.

시작하기
----

사용 사례나 [SDK에](https://www.pubnub.com/docs) 관계없이 [PubNub 문서를](https://www.pubnub.com/docs) 통해 바로 시작하고 실행할 수 있습니다.