WebRTC를 이용한 서비스는 크게 3가지가 있다.
WebRTC가 제공하는 P2P 기능을 기반으로 하는 서비스로, 기존의 VoIP 기술이나 전화 서비스 등을 대체할 수 있다.
WebRTC는 낮은 지연시간을 필요로 하는 생방송 서비스에서도 많이 사용한다. 대량 접속 환경에서 WebRTC의 P2P 성격은 버려지지만, 여전히 생방송에서 요구되는 낮은 지연 시간은 보장된다.
화상회의나 비즈니스, 교육 외에 클럽하우스 서비스같은 원격 만남 관련해서 N : N 방식을 사용한다.
현 시점에서는 WebRTC 기술이 필요하지만 생각보다는 WebRTC를 응용한 서비스가 그렇게 많지 않다. WebRTC는 다른 기술에 비해 기술 자체도 어렵고, 관련 문서들이 부족한 편이다.
WebRTC는 UDP 기반의 RTP 프로토콜을 사용하고 있다. 품질을 보정하는 기술이 내장되어 있지만, 네트워크 기술에 대한 이해와 충분한 개발 경험이 없다면 WebRTC 기반의 서비스 개발에 성공했다고 안정적인 품질을 보장할 수 없다는 것을 알게된다.
모빌리티 환경의 품질은 갈 수록 중요해지고 있는데 모빌리티 환경에서 네트워크 불안정성은 상상을 초월하는 복잡한 문제다. 문제가 발생해도 재현하기 어려우며 논리적인 코드만으로는 상황을 유추하기 어려운일이 다반사다.
WebRTC가 관여하는 부분은 송출
에서 origin
에 이르는 부분과 Edge
에서 수신
에 이르는 과정만을 관여한다. 나머지는 모두 각자의 플랫폼과 각자의 방식으로 구현하거나 감안해야 하는 영역이다.
WebRTC는 클라이언트에서 미디어에 변화를 많이 주고, 서버의 경우는 미디어 전송이나 분배에 더 집중하지만, 서버도 녹화나 기본적인 수준의 미디어 처리는 필요할 때 가 많다. 그래서 조직 내에 미디어를 자유롭게 다룰 수 있는 엔지니어가 필요하고 모바일 플랫폼의 입출력 미디어 장치에 대한 경험을 가진 엔지니어도 필요하다.
WebRTC 미디어 서버는 WebRTC 기반의 미디어 스트림을 중개 및 분배하는 역할을 하는 서버다. 미디어 서버로 1 : N, N : N 방식의 서비스를 구현할 수는 있지만 문제는 서비스 오픈 이후에 있다. 트랜잭션을 미리 예측하거나 대응하기 보다는 확장성을 매우 유연하게 제어를 하고 자동화하는 방식을 고민하며 대용량 처리를 위한 적절한 아키텍처를 고민해야한다.