민혁이의 IT스토리

[WebRTC] - SFU 알아보기 본문

web

[WebRTC] - SFU 알아보기

FE_Minhyuk 2025. 12. 22. 20:13

WebRTC란 무엇인가?

웹 브라우저나 모바일 앱 간에 중간 서버를 거치지 않고 실시간으로 비디오, 오디오, 데이터를 직접 주고받을 수 있게 해주는 오픈소스 기술입니다.

 

WebRTC의 핵심 특징 

 

  • P2P (Peer-to-Peer): 클라이언트와 클라이언트가 직접 연결되어 데이터를 주고받습니다. 서버를 거치지 않으므로 지연 시간이 극도로 짧다.
  • UDP 기반: 데이터의 무결성보다 속도가 중요한 실시간 스트리밍에 최적화된 UDP 프로토콜을 주로 사용한다.
  • 표준화: 구글, 애플, 마이크로소프트 등 주요 브라우저 엔진이 모두 지원한다.

 

WebRTC은  3가지 방식이 있다.

 

  1. Mesh 방식 (P2P) : 각 사용자가 다른 모든 사용자에게 직접 데이터를 보내는 방식이다.
    • 장점: 서버 비용이 거의 없고 보안이 뛰어나다.
    • 단점: 참여자가 늘어날수록 사용자의 PC 부하와 네트워크 업로드 대역폭 부담이 급격히 증가합니다. (보통 3~4명이 한계)
  2. MCU (Multipoint Control Unit) 방식 : 중앙 서버가 모든 사용자의 영상/음성을 받아서 하나의 스트림으로 합친 뒤 다시 내려주는 방식
    • 장점: 클라이언트는 스트림을 하나만 받으면 되므로 부하가 매우 적다.
    • 단점: 서버가 영상을 합성(Encoding)해야 하므로 서버 비용이 매우 비싸고 지연 시간이 발생한다.
  3. SFU (Selective Forwarding Unit) 방식: 최근 가장 많이 사용되는 방식으로, 서버가 데이터를 받아서 필요한 곳에 뿌려주는 배대지(배송대행지) 역할을 한다.

 

 

결론 : SFU 방식을 사용하자

 

 

 

SFU(Selective Forwarding Unit) 방식의 집중 탐구

SFU 방식은 Mesh의 높은 클라이언트 부하 문제와 MCU의 높은 서버 비용 문제를 동시에 해결한 절충안입니다.

핵심 특징

  1. 라우팅(Routing) 역할: 서버는 영상을 합성하지 않고, 들어온 미디어 패킷을 그대로 다른 참여자들에게 전달만 합니다.
  2. 업로드는 한 번, 다운로드는 여러 번: 나는 서버에 내 영상 하나만 올리면 됩니다. 대신 다른 사람들의 영상은 각각 따로 내려받습니다.
  3. 유연한 제어: 서버가 "지금 말하는 사람의 영상만 고화질로 보내줘"와 같이 선별적인 전송이 가능합니다.

 

 

 

SFU의 장단점

다른 방식인 Mesh(P2P)나 MCU(Mixing)**와 비교했을 때 SFU가 갖는 확실한 강점이 있습니다.

구분 장점 단점
효율성 클라이언트의 상향(Upload) 대역폭과 CPU 부하가 크게 줄어듭니다. 참여자가 늘어날수록 클라이언트의 하향(Download) 부하가 증가합니다.
확장성 서버가 복잡한 연산(Mixing)을 하지 않아 MCU보다 훨씬 많은 인원을 수용합니다. 서버 비용이 P2P 방식보다는 발생합니다.
유연성 각 사용자마다 화면 레이아웃을 다르게 구성할 수 있습니다. 서버 단에서 네트워크 패킷을 정교하게 제어하는 기술이 필요합니다.