코인·지갑
결정 기록유료·보너스 코인의 잔액, 만료일과 차감 순서를 어디에서 설명할까?
상황과 시작 조건
- 전제
- 로그인 사용자가 코인 잔액이 부족하거나, 지갑에서 사용·충전 내역과 자동 회차 구매 설정을 확인하는 상태
- 행동
- My Wallet 진입, Usage History·Top-up History 선택, Charge Coins 진입, Auto-purchased episodes 설정 확인
앱에서 확인한 안내
충전 이력은 Coins와 Bonus Coins를 나누며, 충전 상품의 보너스는 30일 유효로 안내한다. 멤버십 이용 중에도 보너스 만료는 계속된다.
앱 내 문구 확인 · 실제 집행은 미검증우리 서비스 제안
지갑 상단에는 총 사용 가능 코인을 보여 주되 유료 코인과 보너스 코인을 별도 행으로 나누고, 보너스마다 가장 가까운 만료일을 표시한다. 차감은 만료가 가까운 보너스를 우선하는 등 하나의 규칙으로 고정해 구매 확인 화면과 이력에 같은 순서로 설명한다. 자동 회차 구매는 기본 OFF로 두고 작품·회차 가격, 사용할 잔액, 일별 상한을 확인한 뒤 켜게 하며 모든 차감을 거래 ID로 중복 요청을 한 번만 처리한다.
Wallet 자동 구매 OFF와 회차 구매 시트 체크 상태의 관계는 미확인이다. Vigloo의 전체 계정 기본값이나 과금 오류로 단정할 수 없다.
관찰과 근거
직접 관찰
- My Wallet은 사용 이력, 충전 이력, 멤버십 이력을 분리하고 Auto-purchased episodes 스위치를 같은 화면에 배치했다. 조사 계정에서 스위치는 OFF였고 변경하지 않았다.
- 사용 이력은 No Coins used 빈 상태였고, 충전 이력은 Coins와 Bonus Coins 탭을 분리했다. 유료 코인 빈 상태에는 Charge Coins, 보너스 빈 상태에는 Go get your bonus 진입점을 제공했다.
- 충전 화면은 보유 코인 0을 표시하고 유료 코인과 추가 보너스를 한 묶음으로 제시했다. 첫 구매 상품은 100+400코인 1,400원, 다른 관찰 상품은 500+25 6,600원부터 3000+1500 42,000원까지였다.
- 코인 구매, 자동 회차 구매 활성화, 코인 차감은 실행하지 않았으므로 결제 성공 뒤 잔액 분리와 실제 차감 순서는 관찰하지 못했다.
앱 내 안내 · 집행 미검증
- 앱 내부 충전 안내는 충전 상품에 포함된 보너스 코인의 유효기간을 30일로 표시하고, 이벤트·보너스 코인은 멤버십 이용 중에도 만료될 수 있다고 안내한다.
- 앱 내부 안내는 구매한 코인과 멤버십이 Vigloo에서만 유효하며, 접근 문제가 생기면 Restore In-app Purchase로 복원할 수 있다고 설명한다. 실제 복원은 실행하지 않았다.
관찰 범위는 조사 기록을 기준으로 합니다. 앱 안내는 실제 집행·스토어 공식 정책·법적 효력을 별도로 검증한 결과가 아닙니다.
미확인
- Wallet 자동 구매 OFF와 회차 구매 시트 체크 상태의 관계는 미확인이다. Vigloo의 전체 계정 기본값이나 과금 오류로 단정할 수 없다.
- 유료 코인과 보너스 코인을 함께 보유할 때 어떤 잔액을 먼저 차감하는지 확인하지 못했다.
- Auto-purchased episodes를 켤 때 확인 단계, 회차당 가격 변경 고지, 잔액 부족·중복 탭·네트워크 실패 처리는 확인하지 못했다.
- 첫 구매 보너스의 계정·기기·결제수단별 자격, 재설치·환불·결제 취소 뒤 회수 방식은 확인하지 못했다.
- 구매한 코인의 유효기간과 작품별 해제 회차의 이용기한은 관찰 화면만으로 확정하지 못했다.
- Restore In-app Purchase가 코인 잔액, 멤버십, 해제 회차 중 무엇을 복원하는지 실행하지 않아 확인하지 못했다.
대안 비교 · 우리 서비스의 선택지 4개
아래는 우리 서비스에 적용할 대안입니다. 다른 앱의 정책을 비교한 결과가 아닙니다.
| 선택지 | 장점 | 비용·제약 |
|---|---|---|
| 통합 잔액만 표시 | 사용자는 결제 가능 여부를 빠르게 이해하고 화면이 단순하다. | 유료·보너스 잔액의 만료와 환불 가능 범위, 차감 순서를 예측하기 어렵다. |
| 유료·보너스 잔액을 분리 표시 | 각 잔액의 출처·만료일·차감 내역을 설명하기 쉽고 소멸 전 사용을 도울 수 있다. | 지갑과 결제 확인 화면의 정보량이 늘고 두 잔액을 합쳐 결제하는 규칙이 필요하다. |
| 회차별 확인 후 구매 | 가격과 사용할 잔액을 구매 전에 확인해 의도하지 않은 차감을 줄인다. | 연속 시청 때 반복 확인이 생겨 재생 흐름이 느려진다. |
| 자동 구매 + 상한 설정 | 연속 시청을 유지하면서 작품별·일별 한도와 잔액 부족 기준으로 위험을 제한할 수 있다. | 가격 변경, 동시 기기, 네트워크 재시도에 대한 중복 요청을 한 번만 처리와 명확한 해제 경로가 필요하다. |
제안의 근거 · 해석
충전 상품은 유료·보너스를 묶어 팔지만 이력은 두 통화를 분리한다. Wallet 자동 구매는 OFF였고 회차 구매창은 체크 상태였다. 두 제어의 범위와 동기화는 미확인이다. 우리 서비스는 구매 직전·지갑·내역에서 잔액, 만료, 자동 구매 동의를 일관되게 설명할 필요가 있다.
효과는 검증 전 가설입니다. 고객·출시 지역·개발 여건에 맞춰 검토해야 합니다.
정해야 할 정책 값
- 유료·보너스 잔액 표시 방식
- 보너스 만료 기준 시각
- 잔액 차감 우선순위
- 자동 구매 기본값·범위·상한
- 가격 변경 재동의 조건
- 스토어 영수증 검증·복원 범위
- 코인 거래 중복 판별 기준와 감사 이력
예외 처리와 출시 QA
| 예외 조건 | 제안 처리 |
|---|---|
| 보너스 코인이 결제 도중 또는 회차 재생 전에 만료됨 | 서버 기준 시각으로 결제 가능 잔액을 다시 계산하고, 차감 전 금액이 달라졌다면 자동 진행하지 말고 변경된 잔액과 부족분을 다시 확인시킨다. |
| 사용자가 자동 구매를 켠 뒤 회차 가격이 변경됨 | 기존 동의를 새 가격에 재사용하지 않는다. 가격·상한 변경을 고지하고 재동의 전까지 자동 구매를 일시 중지한다. |
| 네트워크 재시도나 여러 기기에서 같은 회차 구매가 동시에 요청됨 | 계정·작품·회차·요청 ID를 기준으로 한 번만 차감하고, 중복 요청에는 기존 거래와 해제 권한을 반환한다. |
| 스토어 결제는 완료됐지만 앱 잔액 반영이 지연됨 | 영수증 검증 상태를 결제 중·완료·실패로 구분하고 재검증과 복원 경로를 제공한다. 확인 전 임의로 코인을 중복 지급하지 않는다. |
검증 조건 · 미실행
- Given
- 유료 100코인과 7일 뒤 만료되는 보너스 50코인을 가진 사용자
- When
- 30코인 회차를 구매함
- Then
- 정의된 차감 순서대로 한 번만 차감되고, 남은 유료·보너스 잔액과 보너스 만료일이 구매 전후 화면과 이력에서 일치한다.
- Given
- 자동 회차 구매가 OFF인 사용자
- When
- 처음 자동 구매를 켬
- Then
- 대상 범위·회차당 가격·차감 순서·상한을 확인하기 전에는 설정이 활성화되지 않는다.
- Given
- 스토어 결제 완료 응답이 지연되거나 앱이 종료된 상태
- When
- 같은 상품을 다시 시도하거나 Restore In-app Purchase를 실행함
- Then
- 동일 영수증으로 코인이 중복 지급되지 않고 사용자는 검증 상태와 다음 행동을 확인할 수 있다.
검증할 지표 · 실제 값 미보유
- 충전 화면 진입 대비 결제 완료율
- 보너스 만료 전 사용률
- 잔액·만료 관련 문의율
- 자동 구매 활성화·해제율
- 중복 차감·중복 지급 탐지 건수
- 결제 완료 후 잔액 반영 지연 시간
흐름도
지갑·충전·만료의 경계
구매 시 지급과 실제 차감 순서는 확인하지 않았다. 보너스 기간은 획득 경로에 따라 다르게 안내된다. 실선은 관찰한 이동, 점선은 안내 또는 실행하지 않은 단계다.
범위: 관찰 · 안내 · 미확인 · 근거