쿠쿠더님의 블로그

webRTC란? 본문

카테고리 없음

webRTC란?

쿠쿠더 2025. 5. 7. 17:42

여기서는 목차는없고 간단하게 webRTC에 대해서 설명할려고 합니다 전 글에서는 제가 프로젝트에서 WebRTC를 썼다 했는데 이게 빠지면 안될것 같아서 씁니다..ㅎㅎ 

 

WebRTC란 ?

실시간 통신에 있어 아주 좋은 기술입니다.

 

일단 WebRTC는 Google의 개발들에 의해서 탄생한 기술입니다. 

사용하는 유명한 서비스 : Google Meet, Discord, Zoom 있다.

 

다양한 플랫폼에서 가능한 실시간 커뮤니케이션 기술입니다. 

화상 채팅 , 음성 통화, 파일 공유 등등 이 모든걸 별도의 프로그램 없이 웹 브라우저는 물론이고, 모바일 웹, 데스크탑 앱

에서도 사용할 수 있는 오픈소스 프로젝트이며 강력한 기술입니다.

 

더욱 신기한 점은 서버 없이 P2P(Peer To Peer)로 연결되어 데이터를 주고받을 수 있다는 점.

그리고 모든 주요 브라우저에서 일반 자바스크립트 API로 제공된다는 점입니다.

 

일단 주요 개념 및 용어를 설명해 드릴겠습니다 

 

시그널링 

아까 P2P로 연결하기 위해 중계 서버가 필요하다가 언급했습니다.

이 중계서버를 통해서 서로를 찾고 연결을 시작하는 과정을 바로 시그널링이라고 합니다.

 

비유하자면 시그널링의 개념은 마치 소개팅 주선자처럼 양쪽에서 서로의 정보를 전달해 주는 역할입니다.

이 시그널링은 서버를 통해 이루어지게 되고, 어떻게 구현할지는 자유입니다.

WebSocket, Http 등 적절한 프로토콜을 개발자가 선택하면 됩니다 .

그래서 저는 SocketIo로 하드코딩하다가 Web RTC를 쓰게되었습니다.

 

2. SDP ( Session Description Protocol)

SDP는 "무엇으로 소통할지, 어떻게 소통할지"에 대한 정보를 담겨있는 양식입니다. 

 

3. ICE (Interactive Connectivity Establishment)

두 피어 간의 최적의 통신 경로를 찾기 위해 사용되는 프레임워크입니다.

NAT(NetWork Address Traslation)와 방화벽 등의 네트워크 장벽을 극복하고

직접적인 연결을 가능하게 하는 중요한 역할

- 연결 후보 수집 : 가능한 모든 연결 방법을 찾아냅니다.

- 연결성 검사 : 각 후보에 대해 실제 연결 가능 여부를 테스트합니다.

- 우선순위 결졍 : 가장 효율적인 연결 경로(지연시간이 가장 짧은 연결을 선호)를 선택합니다.

- NAT 및 방화벽 통과 : 다양한 네트워크 환경에서의 연결을 가능하게 합니다. 

 

일단은 제가 이 WebRTC를 쓴이유는 시청자에게 실시간으로 방송화면과 오디오 보고 듣게 해주고

중간에 들어가도 호스트가 틀고있는 지점과 맞게 화면과 노래가 구현이 쉽게 가능할수있어서 선택하게

되었고 제가 공부하면서 여기까지 공부를 하였던것 같습니다 .

Web RTC에 대해서는 자세히는 모르지만 이렇게 좋은 API가 있다는것 정도 혹시 똑같이 방송 웹페이지를

프로젝트를 할떄 webRTC를 쓰지면 좋을꺼 같습니다 이상 Web RTC에 대한 간결한 설명이였습니다..