피드로 돌아가기
The problem with every watch-party app ever made
Dev.toDev.to
Infrastructure

Cloudflare Tunnel 기반 CGNAT 우회 및 4K 분산 스트리밍 동기화 설계

The problem with every watch-party app ever made

Pratyush Mishra2026년 4월 13일15intermediate

Context

기존 Watch-party 앱의 중앙 집중식 커서 동기화 방식은 CDN 지연 시간과 개별 스트림 간 편차로 인한 싱크 불일치 문제 발생. 특히 CGNAT 환경의 홈 서버 접근 불가 문제와 VPS 경유 시 발생하는 고비용 및 대역폭 병목이 핵심 제약 사항으로 작용.

Technical Solution

  • 분산 미디어 레이어 설계를 통한 각 사용자 로컬 Jellyfin 인스턴스의 독립적 4K 스트리밍 구현
  • Cloudflare Tunnel 기반의 Split-tunneling 방식을 채택하여 CGNAT 환경에서도 포트 포워딩 없이 HTTPS 엔드포인트 확보
  • Socket.io 기반의 경량 Signaling Server를 구축하여 미디어 데이터 제외, 재생 상태(Play/Pause/Seek) 신호만 전송하는 구조 설계
  • Host Authority 모델을 적용하여 상태 업데이트 권한을 호스트로 제한함으로써 다중 업데이트로 인한 Feedback Loop 차단
  • WebRTC P2P 레이어를 통한 비디오 콜 및 스크린 공유 기능을 분리하여 미디어 서버 부하 제로화
  • Tailscale 가상 네트워크를 활용하여 Signaling Server의 외부 노출을 최소화한 보안 연결 구성

1. CGNAT 환경의 서비스 노출 시 VPS 리버스 프록시 대신 Cloudflare Tunnel 검토

2. 실시간 동기화 시스템 설계 시 상태 업데이트 충돌 방지를 위한 Host-based Authority 모델 적용

3. 고대역폭 데이터 전송 시 중앙 서버 경유를 배제한 P2P 또는 로컬 소스 기반 전송 구조 설계

원문 읽기