WebRTC

곽태민·2023년 3월 24일
0

WebRTC


💡 **WebRTC**는 서버를 최대한 거치지 않고 P2P로 브라우저나 단말 간 데이터를 주고 받는 웹 표준이다.

WebRTC 특징

  • WebRTC는 웹에서 사용할 수 있는 유일한 P2P 기술이다.
    • 각각 기기가 Server의 도움없이 연결하기 위해서 연결을 도와주는 Server(Signaling)가 필요하며, P2P 연결이 불가능한 상황을 대비한 Relay Server(TURN)가 필요하다.
  • WebRTC는 UDP가반의 스트리밍 기술이다.
    • HTTP/3 이전까지는 거의 유일한 UDP 기반의 웹 표준이었지만 P2P와 UDP 기반의 여러 프로토콜 덕택에 WebRTC를 이용한 스트리밍은 현존하는 기술 중 Latncy가 가장 짧은 것 중 하나가 됐다.

WebRTC 활용 분야

WebRTC를 이용한 서비스는 크게 3가지가 있다.

  • 1 : 1 = 원격 의료, 드론 ,로봇 및 원격 상담 등
  • 1 : N = 라이브 커머스, 라이브 팟캐스트 등
  • N : N = 라이브 게임, 원격 공연, 다자 통화 서비스 등

1 : 1 방식

WebRTC가 제공하는 P2P 기능을 기반으로 하는 서비스로, 기존의 VoIP 기술이나 전화 서비스 등을 대체할 수 있다.

1 : N 방식

WebRTC는 낮은 지연시간을 필요로 하는 생방송 서비스에서도 많이 사용한다. 대량 접속 환경에서 WebRTC의 P2P 성격은 버려지지만, 여전히 생방송에서 요구되는 낮은 지연 시간은 보장된다.

N : N 회의형 서비스

화상회의나 비즈니스, 교육 외에 클럽하우스 서비스같은 원격 만남 관련해서 N : N 방식을 사용한다.


WebRTC 기술의 어려움

현 시점에서는 WebRTC 기술이 필요하지만 생각보다는 WebRTC를 응용한 서비스가 그렇게 많지 않다. WebRTC는 다른 기술에 비해 기술 자체도 어렵고, 관련 문서들이 부족한 편이다.

1. 네트워크 환경에 따른 품질의 불확실성

WebRTC는 UDP 기반의 RTP 프로토콜을 사용하고 있다. 품질을 보정하는 기술이 내장되어 있지만, 네트워크 기술에 대한 이해와 충분한 개발 경험이 없다면 WebRTC 기반의 서비스 개발에 성공했다고 안정적인 품질을 보장할 수 없다는 것을 알게된다.

모빌리티 환경의 품질은 갈 수록 중요해지고 있는데 모빌리티 환경에서 네트워크 불안정성은 상상을 초월하는 복잡한 문제다. 문제가 발생해도 재현하기 어려우며 논리적인 코드만으로는 상황을 유추하기 어려운일이 다반사다.

2. 고난이도의 미디어처리 영역

WebRTC가 관여하는 부분은 송출에서 origin에 이르는 부분과 Edge에서 수신에 이르는 과정만을 관여한다. 나머지는 모두 각자의 플랫폼과 각자의 방식으로 구현하거나 감안해야 하는 영역이다.

WebRTC는 클라이언트에서 미디어에 변화를 많이 주고, 서버의 경우는 미디어 전송이나 분배에 더 집중하지만, 서버도 녹화나 기본적인 수준의 미디어 처리는 필요할 때 가 많다. 그래서 조직 내에 미디어를 자유롭게 다룰 수 있는 엔지니어가 필요하고 모바일 플랫폼의 입출력 미디어 장치에 대한 경험을 가진 엔지니어도 필요하다.

3. 대용량 처리 및 클라우드

WebRTC 미디어 서버는 WebRTC 기반의 미디어 스트림을 중개 및 분배하는 역할을 하는 서버다. 미디어 서버로 1 : N, N : N 방식의 서비스를 구현할 수는 있지만 문제는 서비스 오픈 이후에 있다. 트랜잭션을 미리 예측하거나 대응하기 보다는 확장성을 매우 유연하게 제어를 하고 자동화하는 방식을 고민하며 대용량 처리를 위한 적절한 아키텍처를 고민해야한다.

profile
Node.js 백엔드 개발자입니다!

0개의 댓글