재생 실패와 복구
결정 기록사용자가 회차를 선택했을 때 첫 프레임 도달, 오류 설명, 재시도와 문의 연결을 어떻게 보장할 것인가?
상황과 시작 조건
- 전제
- 사용 가능한 작품·회차를 선택해 본편 플레이어로 진입한 상태
- 행동
- Watch Ep. 1, 회차 목록, History 또는 유료 회차에서 재생 요청
앱에서 확인한 안내
화면 미러링에서는 저작권 보호로 검은 화면을 표시한다고 안내한다. 실제 기기 재생·AirPlay·Chromecast는 별도 검증 대상이다.
앱 내 문구 확인 · 실제 집행은 미검증우리 서비스 제안
네트워크 등 복구 가능한 오류에는 제한된 재시도를 제공한다. 미러링 보호 제한은 이유와 지원되는 재생 경로를 안내하고, 오류 화면에는 닫기·다시 시도·가능한 이어보기·회차 문맥이 포함된 문의를 제공한다.
관찰한 검은 화면은 FAQ의 미러링 보호 안내와 일치하지만 해당 세션의 내부 원인을 독립적으로 확인한 것은 아니다.
관찰과 근거
직접 관찰
- For You의 미리보기 영상은 움직이는 영상으로 확인됐고 Watch Ep. 1 진입점이 함께 제공됐다.
- 게스트의 피드 1화·회차 목록 1화·유료 96화와 회원의 History 1화·유료 96화에서 미러링 화면이 검게 유지됐다.
- 회원 History 진입 후 중앙을 탭해도 재생 컨트롤이 보이지 않았고, 앱 재실행 뒤 계정·출석·잔액 상태는 유지됐다.
앱 내 안내 · 집행 미검증
- FAQ는 플레이어 설정에서 자막을 선택하고 앱 언어를 우선하되 없으면 영어를 사용하며, 작품마다 지원 언어가 다르고 음성은 원어만 제공된다고 안내한다.
- FAQ는 재생 문제에 네트워크 확인, 앱 또는 회차 재진입, 최신 버전 확인, 작품명·회차를 포함한 문의 순서로 대응하도록 안내한다. 실제 복구 성공은 검증하지 않았다.
- FAQ는 단일 회차 반복 재생·라이트 모드·오프라인 다운로드·더빙은 현재 미제공이고 처음부터 보기와 배속은 지원한다고 안내한다. 실제 플레이어 컨트롤은 조작하지 못했다.
- FAQ는 저작권 보호 때문에 화면 미러링에서 검은 화면이 표시되며, iPhone AirPlay와 Android Chromecast를 통한 TV 시청은 플레이어 버튼으로 지원한다고 안내한다. 내부 보호 방식과 실제 캐스팅은 검증하지 않았다.
- FAQ는 선호 장르 설정에 따라 Home·Recommended에서 작품이 숨겨져도 검색으로 찾을 수 있고, 라이선스에 따라 접속 지역별 가용성이 달라진다고 안내한다.
관찰 범위는 조사 기록을 기준으로 합니다. 앱 안내는 실제 집행·스토어 공식 정책·법적 효력을 별도로 검증한 결과가 아닙니다.
미확인
- 관찰한 검은 화면은 FAQ의 미러링 보호 안내와 일치하지만 해당 세션의 내부 원인을 독립적으로 확인한 것은 아니다.
- 실제 iPhone 화면의 본편 재생 품질과 AirPlay·Chromecast 동작은 확인하지 못했다.
- 처음부터 보기·배속 지원 안내는 확인했지만 실제 조작은 검증하지 않았고, 로딩 표시·오류 코드·자동 재시도·다음 화 자동 재생·자막·화질·회전·클립 동작도 확인되지 않았다.
- 첫 프레임 이전 실패와 재생 중 실패에 서로 다른 복구 경로가 있는지는 확인되지 않았다.
대안 비교 · 우리 서비스의 선택지 3개
아래는 우리 서비스에 적용할 대안입니다. 다른 앱의 정책을 비교한 결과가 아닙니다.
| 선택지 | 장점 | 비용·제약 |
|---|---|---|
| 단일 오류 화면 | 구현이 빠르고 모든 실패에 동일한 다시 시도를 제공할 수 있다. | 권한·네트워크·에셋·기기 문제를 구분하지 못해 복구율과 고객지원 효율이 낮다. |
| 복구 가능한 원인별 상태 | 첫 프레임 전후, 네트워크, 권한, 콘텐츠 오류에 맞는 재시도·복원·문의를 제공할 수 있다. | 오류 분류와 상태 전이가 복잡하고 백엔드·플레이어·분석 이벤트의 공통 규격이 필요하다. |
| 자동 복구 우선 | 일시적 네트워크 오류에서 사용자 개입 없이 재생을 이어갈 수 있다. | 무한 재시도, 데이터 사용 증가, 긴 무응답 상태가 생길 수 있어 횟수·시간 제한이 필요하다. |
제안의 근거 · 해석
여러 진입점의 검은 상태는 FAQ에 공개된 미러링 보호 안내와 일치한다. 다만 실제 기기 재생과 캐스팅은 미검증이므로 첫 프레임 도달을 성공 기준으로 두고 보호 제한, 재생 실패 단계, 복구 결과를 구분해야 한다.
효과는 검증 전 가설입니다. 고객·출시 지역·개발 여건에 맞춰 검토해야 합니다.
정해야 할 정책 값
- 첫 프레임 제한 시간
- 자동 재시도 횟수와 간격
- 오류 분류와 사용자 문구
- 이어보기 저장 주기
- 백그라운드·회전 처리
- 권한 오류와 콘텐츠 오류의 담당 조직
- 문의에 전달할 재생 진단 정보
예외 처리와 출시 QA
| 예외 조건 | 제안 처리 |
|---|---|
| 첫 프레임 전에 네트워크 연결이 끊김 | 짧은 횟수만 자동 재시도하고 실패 시 네트워크 안내·다시 시도·닫기를 표시한다. 재시도마다 새 재생을 중복 생성하지 않는다. |
| 재생 중 연결이 끊기거나 앱이 백그라운드로 이동함 | 마지막 확정 위치를 주기적으로 저장하고 복귀 시 이어보기와 처음부터 보기를 제공한다. |
| 권한은 있으나 콘텐츠 에셋 또는 지역 권리가 유효하지 않음 | 결제 유도 대신 이용 불가 사유와 지원 경로를 보여주고 운영 알림을 생성한다. |
| 사용자가 같은 재생 버튼을 연속으로 탭함 | 요청 ID로 중복 실행을 합치고 하나의 플레이어 세션과 하나의 오류 상태만 유지한다. |
| 저작권 보호가 적용된 영상을 화면 미러링으로 재생하려 함 | 무한 재시도 대신 보호 제한을 설명하고 지원되는 기기 내 재생 또는 공식 캐스팅 경로를 안내한다. |
검증 조건 · 미실행
- Given
- 무료 회차와 유효한 스트리밍 URL이 있는 상태
- When
- 사용자가 재생을 요청함
- Then
- 로딩과 첫 프레임을 별도 상태로 기록하고 제한 시간 안에 재생 또는 복구 가능한 오류 화면으로 전환하는 것이 기획 완료 기준이다.
- Given
- 재생 40% 지점에서 네트워크가 끊긴 상태
- When
- 연결을 복구하고 플레이어로 돌아옴
- Then
- 중복 재생 세션 없이 마지막 확정 위치에서 이어보기를 제공하는 것이 기획 완료 기준이다.
- Given
- 동일 오류가 제한 횟수의 재시도 후에도 지속되는 상태
- When
- 사용자가 문의를 선택함
- Then
- 작품·회차·앱 버전·오류 분류가 확인 가능한 형태로 문의에 연결되고 개인정보가 본문에 자동 노출되지 않는 것이 기획 완료 기준이다.
검증할 지표 · 실제 값 미보유
- play_requested 대비 first_frame 도달률
- 첫 프레임 도달 시간
- playback_error 단계별 발생률
- 자동·수동 재시도 후 복구율
- 재생 오류 후 문의 전환율
- 결제 또는 해제 후 재생 실패율
흐름도
발견에서 본편 진입까지: 확인된 경로와 남은 공백
초록은 관측된 화면과 행동, 금색은 앱 FAQ 안내, 점선은 결과를 확인하지 못한 구간이다. S106의 미러링 저작권 보호 안내는 관찰한 검은 화면과 일치하지만 해당 실행의 내부 인과를 독립 검증한 것은 아니다. 직접 기기 재생 품질도 확인하지 않았다. History 기록이 생겼다는 사실만으로 영상 재생 성공을 확정할 수 없다.
범위: 관찰 + 안내 + 미확인 · 근거
플레이어 상태 전이와 복구 경로
NovelaPlay의 실제 플레이어 구현은 확인하지 못했다. 아래는 우리 MVP에서 검증할 상태와 복구 행동이다.
범위: 우리 서비스 제안