로그인 후 기록
결정 기록게스트가 저장·시청을 시작한 뒤 Google 로그인을 완료하거나 취소했을 때 원래 과업과 기록을 어떻게 이어갈 것인가?
상황과 시작 조건
- 전제
- 게스트가 저장, 시청 기록 또는 이어보기 위치를 보유하고 로그인 제안이나 계정 연결을 만난 상태
- 행동
- Google 로그인 시작, 인증 취소·실패·완료, 로그인 후 앱 복귀
앱에서 확인한 안내
Google·Apple은 같은 이메일이어도 별개 계정이다. 비회원 구매 코인은 로그인 후 Add 팝업으로 이전한다고 안내한다.
앱 내 문구 확인 · 실제 집행은 미검증우리 서비스 제안
저장은 합집합, 시청 위치는 회차별 더 많이 진행한 값을 기본으로 하되 최근 명시적 초기화를 보존한다. 구매·해제 권한은 서버·스토어 장부에서 취소·환불·만료와 계정 귀속을 재검증한 결과로 연결한다.
로그인 취소·인증 실패 후 사용자가 원래 보던 화면과 행동으로 정확히 복귀하는지는 확인하지 못했다.
관찰과 근거
직접 관찰
- 게스트 상태에서 저장과 시청 기록이 앱 재실행 후에도 같은 기기에 남았다.
- My List의 로그인 제안에는 Later가 있어 가입을 미루고 기존 흐름으로 돌아갈 수 있었다.
- Google 로그인 완료 후 같은 기기에서 기존 두 작품의 시청 기록이 유지됐고, 재실행 후 로그인 세션도 유지됐다.
- 인증은 iOS 시스템 안내, Google 계정 선택, 이름·프로필 사진·이메일 제공 안내, 앱 복귀 순으로 진행됐다.
앱 내 안내 · 집행 미검증
- 로그인 화면은 로그인 동작에 이용약관과 개인정보처리방침 동의를 연결해 안내한다.
- 개인정보처리방침 화면은 Google 로그인 필수 수집 항목으로 이메일·이름·프로필 이미지를 안내한다.
- FAQ는 비회원 구매 후 기존 계정으로 로그인하면 Add 팝업으로 구매 코인을 옮길 수 있고, Google과 Apple은 이메일이 같아도 별개 계정으로 관리된다고 안내한다. 실제 이전은 수행하지 않았다.
- FAQ는 가입 때 사용한 Google 또는 Apple 계정으로 로그인하면 코인과 해제 회차가 유지되고 여러 기기에서 같은 계정을 사용할 수 있다고 안내한다. 실제 타 기기 복원과 동시 재생은 검증하지 않았다.
관찰 범위는 조사 기록을 기준으로 합니다. 앱 안내는 실제 집행·스토어 공식 정책·법적 효력을 별도로 검증한 결과가 아닙니다.
미확인
- 로그인 취소·인증 실패 후 사용자가 원래 보던 화면과 행동으로 정확히 복귀하는지는 확인하지 못했다.
- 게스트 기록과 기존 계정 기록이 충돌할 때의 병합 우선순위는 확인되지 않았다.
- 동일 UID가 유지된 화면만으로 서버 계정 병합 방식이나 신규·기존 회원 여부를 확정할 수 없다.
- FAQ는 비회원 구매 이전과 기존 공급자 계정 복구를 안내하지만 실제 이전·복원·앱 재설치 후 회복은 검증하지 않았다.
- 게스트 시청 기록과 기존 회원 기록의 병합, 공급자가 다른 두 계정 사이의 이전 동작은 검증하지 않았다.
대안 비교 · 우리 서비스의 선택지 3개
아래는 우리 서비스에 적용할 대안입니다. 다른 앱의 정책을 비교한 결과가 아닙니다.
| 선택지 | 장점 | 비용·제약 |
|---|---|---|
| 로그인 계정 우선 | 구현과 설명이 단순하고 여러 기기에서 하나의 기준을 유지하기 쉽다. | 게스트의 최신 시청 위치·저장·로컬 권한이 사라질 수 있고 로그인 전 행동의 가치가 낮아진다. |
| 항목별 자동 병합 | 저장은 합집합으로 보존하고, 시청 위치는 진행률·갱신 시각으로 조정하며, 구매·해제 권한은 서버·스토어 장부를 기준으로 유효성을 재확인할 수 있다. | 충돌 규칙·감사 장부·되돌리기 설계가 필요하며 잘못된 병합을 찾기 어렵다. |
| 충돌 시 사용자 선택 | 중요한 기록을 사용자가 직접 선택할 수 있어 예기치 않은 덮어쓰기를 줄인다. | 로그인 직후 복잡한 질문이 생기고 사용자가 기록 차이를 이해해야 한다. |
제안의 근거 · 해석
NovelaPlay에서는 같은 기기의 게스트 기록 유지가 관찰됐지만 충돌 상황은 확인되지 않았다. 우리 서비스는 로그인 때문에 시청·저장 과업이 끊기지 않게 하면서 금전 권한은 별도 불변 장부로 다루는 편이 안전하다.
효과는 검증 전 가설입니다. 고객·출시 지역·개발 여건에 맞춰 검토해야 합니다.
정해야 할 정책 값
- 로그인 제안 노출 시점
- 인증 취소·실패·완료별 복귀 화면
- 저장 병합 규칙
- 시청 위치 충돌 규칙
- 구매·해제 권한 병합 규칙
- 게스트 데이터 보존 기간
- 병합 감사 로그와 되돌리기 정책
예외 처리와 출시 QA
| 예외 조건 | 제안 처리 |
|---|---|
| 사용자가 Google 인증을 취소하거나 인증 오류가 발생함 | 게스트 세션과 작성 중 행동을 유지하고 원래 화면으로 복귀시킨다. 취소와 실패를 구분해 실패에만 다시 시도와 다른 로그인 수단을 제공한다. |
| 같은 회차에 게스트와 계정의 서로 다른 시청 위치가 있음 | 더 많이 진행한 위치를 기본으로 제안하되 완료 후 다시 보기처럼 사용자가 명시적으로 초기화한 기록은 별도 이벤트로 보존한다. |
| 게스트와 계정에 동일 작품의 중복 저장 또는 동일 구매 권한이 있음 | 저장은 작품 ID로 중복을 제거한다. 구매·해제 권한은 거래 장부의 유효성과 계정 귀속을 재검증하고 취소·환불·만료를 반영한다. 중복 지급·차감을 막고 검증 결과를 기록한다. |
| 네트워크 단절로 인증 완료 여부가 앱에 늦게 전달됨 | 인증 요청 ID로 상태를 재조회하고 완료 전까지 게스트 데이터를 삭제하지 않는다. 동일 완료 통지는 한 번만 병합한다. |
검증 조건 · 미실행
- Given
- 게스트가 작품 A를 저장하고 1화를 40% 본 상태
- When
- Google 로그인을 완료함
- Then
- 로그인 후 작품 A의 저장과 40% 위치가 유지되고 원래 화면으로 돌아가는 것이 기획 완료 기준이다.
- Given
- 게스트와 기존 계정에 같은 회차의 서로 다른 진행 위치가 있는 상태
- When
- 계정을 연결함
- Then
- 정의된 충돌 규칙이 한 번만 적용되고 병합 전 값과 선택 결과가 장부에 남는 것이 기획 완료 기준이다.
- Given
- 로그인 도중 사용자가 취소하거나 네트워크 오류가 발생한 상태
- When
- 앱으로 복귀함
- Then
- 게스트 기록이 유지되고 취소에는 조용한 복귀, 오류에는 재시도 경로를 제공하는 것이 기획 완료 기준이다.
검증할 지표 · 실제 값 미보유
- auth_started 대비 auth_completed·auth_cancelled·auth_failed
- 로그인 후 원래 과업 재개율
- 병합 후 기록 유실 신고율
- 중복 저장·중복 권한 발생률
- 로그인 후 첫 재생 도달 시간
흐름도
Google 로그인 화면 전환
이미 로그인된 Google 세션을 이용한 이번 경로다. 화살표는 사용자에게 보인 화면 전환이며, 인증 프로토콜이나 서버 통신을 재구성한 것이 아니다.
범위: 직접 실행 · 근거
게스트 기록을 계정에 연결하는 제안
관찰한 것은 같은 기기에서의 기록 유지다. 기존 계정과의 충돌 병합·구매 권한 처리는 아래 기준으로 추가 설계한다.
범위: 우리 서비스 제안