유저의 쾌적한 쇼츠 시청을 위해
프론트엔드
유저의 쾌적한 쇼츠 시청을 위해
두줄요약
TVING 쇼츠 플레이어의 메모리 관리와 전환 지연 문제를 단일 플레이어 구조와 프리로드로 개선했습니다. VST를 낮추고 저사양 단말과 불안정한 네트워크에서도 더 부드러운 시청 경험을 확보했습니다.
문제 상황
- 쇼츠 플레이어가 전체 화면 세로형 UI와 다양한 탐색 동선을 동시에 만족해야 하는 핵심 기능으로 확장됨
- MVP의 다중 플레이어 구조에서 저사양 단말 OOM, 디코더 초기화 실패, SurfaceView 렌더링 복잡도 발생
- 단일 플레이어 구조에서도 다음 영상 준비가 어려워 VST 지연과 체감 버벅임이 남음
해결 방법
- 플레이어를 하나만 유지하고 Surface만 교체하는 단일 인스턴스 구조로 전환
- 첫 프레임 이미지를 미리 받아 inflate하여 전환 시점의 끊김 최소화
- 현재 영상 주변 아이템을 Rank 기반으로 프리로드해 네트워크 요청과 버퍼링을 사전 처리
성능/운영 포인트
- 탭 이탈 시 pause가 아닌 release로 디코더·Surface·Buffer 자원 즉시 정리
- VST를 핵심 지표로 관리하며 프리로드 적용 후 평균 지연을 크게 감소
- DRM, 불안정 네트워크, 일부 단말의 잔여 지연까지 추가 최적화 과제로 관리