본문으로 건너뛰기

Q. 스트리밍 서비스 개발 시 TCP와 UDP 중 어떤 걸 선택할 것인가요?

🧑🏻‍💻 Answer.


✅ UDP의 Broadcasting 방식 선택

  • 영상 스트리밍 서비스에서는 불특정 다수가 동일한 영상을 보는 상황이 많기 때문에, 불특정 다수에게 데이터를 전송할 필요가 있습니다.

  • 이때 데이터를 순차적으로 전송할 필요가 없으므로 세션 접속 및 해제 단계 없는 UDP 프로토콜을 사용하는 것이 좋습니다. 이를 통해 시간 손실 및 부하 발생을 방지하여 더 원활한 스트리밍 서비스를 제공할 수 있습니다.

✅ 재전송의 여부 고려하기

  • TCP의 경우, 데이터가 일부 손실되면 재전송이 되어 영상 시청에 잦은 로딩 및 재시작을 야기할 수 있습니다.

  • 하지만 UDP의 경우, 데이터가 일부 손실되더라도 데이터 전송이 가능하며, 사용자가 필요시 새로고침을 할 수 있도록 하여 UX를 향상할 수 있습니다.

✅ 지속성과 속도 고려하기

  • 고화질로 영상을 전송하여 사용자가 기다리게 하는 것 보다 로딩 속도를 높여 빠르게 영상을 보여주는 것이 사용자의 이용 지속성을 높일 수 있다고 생각합니다.

  • TCP는 연결형 프로토콜로 신뢰성을 보장하지만 그만큼 속도가 느려진다는 단점이 있고, UDP는 비연결형 프로토콜이기 때문에 신뢰성 있는 데이터의 전송을 보장하지는 못하지만 그만큼 속도가 빠르고 네트워크 부하가 적다는 장점이 있습니다. 그렇기 때문에 영상 스트리밍 서비스에는 신뢰성보다는 지속성과 속도가 더 중요한 UDP를 사용할 것입니다.

✅ 무조건 UDP가 정답은 아니다.

  • 하지만 세부적인 서비스 요구사항에 따라 TCP를 사용하거나, 순차적 데이터 전송을 보장하는 RUDP 방식을 사용할 수 있다고 생각합니다.