영상 스트리밍의 진짜 원리 - 넷플릭스와 유튜브는 어떻게 끊기지 않을까
·
nest
앞선 글에서 NestJS로 대용량 파일을 OOM 없이 내려보내는 방법을 정리했다.이번 글에서는 그 흐름을 영상 스트리밍 관점으로 확장한다. 영상 스트리밍은 단순히 큰 파일을 다운로드하는 기능이 아니다. 사용자가 보고 있는 구간만 빠르게 전달하고, 네트워크 상태에 따라 품질을 조절하고, 필요한 순간에 필요한 byte만 요청하는 구조다.1. 영상은 왜 통째로 받지 않을까2시간짜리 영상 파일이 20GB라고 해보자. 이 파일을 재생하기 전에 전부 다운로드해야 한다면 사용자는 영상을 보기까지 오래 기다려야 한다.20GB 영상 전체 다운로드 ↓다운로드 완료 대기 ↓재생 시작스트리밍 서비스는 이렇게 동작하지 않는다. 처음 재생에 필요한 앞부분만 먼저 받고, 사용자가 보는 동안 뒤쪽 데이터를 계속 받아온다.처음..