# 볼링 매니저 구독 및 인앱 결제 QA 체크리스트

## 1. 구독 기능 테스트

### 1.1 구독 정보 조회
- [ ] 앱 시작 시 현재 구독 정보 로드 확인
- [ ] 구독이 없는 경우 기본(무료) 플랜 표시 확인
- [ ] 구독 상세 정보 표시 확인 (플랜 유형, 시작일, 만료일, 자동 갱신 상태 등)

### 1.2 구독 플랜 목록
- [ ] 사용 가능한 모든 구독 플랜 표시 확인
- [ ] 각 플랜의 가격, 기능, 제한 사항 등 정확히 표시 확인
- [ ] 월간/연간 요금제 전환 기능 확인

### 1.3 구독 상태별 기능 제한
- [ ] 무료 플랜 사용자의 기능 제한 확인
- [ ] 기본 플랜 사용자의 기능 접근 확인
- [ ] 프리미엄 플랜 사용자의 기능 접근 확인
- [ ] 프로 플랜 사용자의 기능 접근 확인
- [ ] 제한된 기능 접근 시 업그레이드 안내 대화상자 표시 확인

### 1.4 회원 및 이벤트 제한
- [ ] 플랜별 최대 회원 수 제한 확인
- [ ] 플랜별 최대 이벤트 수 제한 확인
- [ ] 제한 초과 시 적절한 안내 메시지 표시 확인

## 2. 인앱 결제 테스트

### 2.1 구독 구매
- [ ] 각 플랜별 구독 구매 버튼 작동 확인
- [ ] 인앱 결제 다이얼로그 표시 확인
- [ ] 결제 진행 중 로딩 표시 확인
- [ ] 결제 성공 시 구독 정보 업데이트 확인
- [ ] 결제 실패 시 적절한 오류 메시지 표시 확인

### 2.2 구독 복원
- [ ] 구독 복원 버튼 작동 확인
- [ ] 복원 진행 중 로딩 표시 확인
- [ ] 복원 성공 시 구독 정보 업데이트 확인
- [ ] 복원할 구독이 없는 경우 적절한 메시지 표시 확인

### 2.3 플랜 변경
- [ ] 현재 구독에서 다른 플랜으로 변경 기능 확인
- [ ] 업그레이드/다운그레이드 시 적절한 안내 메시지 표시 확인
- [ ] 플랜 변경 후 구독 정보 업데이트 확인

### 2.4 자동 갱신 설정
- [ ] 자동 갱신 설정 변경 기능 확인
- [ ] 설정 변경 후 상태 업데이트 확인

## 3. 백엔드 API 테스트

### 3.1 구독 관련 API
- [ ] `/subscriptions/current` - 현재 구독 정보 조회 API 테스트
- [ ] `/subscriptions/plans` - 구독 플랜 목록 조회 API 테스트
- [ ] `/subscriptions/subscribe` - 구독 생성 API 테스트
- [ ] `/subscriptions/change-with-features` - 플랜 변경 API 테스트

### 3.2 인앱 결제 검증 API
- [ ] `/subscriptions/verify-receipt` - 영수증 검증 API 테스트
  - [ ] iOS 영수증 검증 테스트
  - [ ] Android 영수증 검증 테스트
  - [ ] 잘못된 영수증 데이터 처리 테스트

## 4. 샌드박스 테스트

### 4.1 iOS 샌드박스 테스트
- [ ] App Store Connect에서 샌드박스 테스터 계정 설정
- [ ] 샌드박스 환경에서 구독 구매 테스트
- [ ] 샌드박스 환경에서 구독 복원 테스트
- [ ] 샌드박스 환경에서 플랜 변경 테스트

### 4.2 Android 샌드박스 테스트
- [ ] Google Play Console에서 테스트 트랙 설정
- [ ] 테스트 환경에서 구독 구매 테스트
- [ ] 테스트 환경에서 구독 복원 테스트
- [ ] 테스트 환경에서 플랜 변경 테스트

## 5. 오류 처리 테스트

### 5.1 네트워크 오류
- [ ] 오프라인 상태에서 구독 관련 기능 동작 확인
- [ ] 네트워크 재연결 시 상태 복구 확인

### 5.2 서버 오류
- [ ] 서버 응답 오류 시 적절한 메시지 표시 확인
- [ ] 재시도 메커니즘 확인

### 5.3 결제 오류
- [ ] 결제 취소 시 적절한 처리 확인
- [ ] 잘못된 결제 정보 입력 시 오류 처리 확인

## 6. UI/UX 테스트

### 6.1 구독 화면 UI
- [ ] 구독 화면의 레이아웃 및 디자인 확인
- [ ] 다양한 화면 크기에서의 반응형 디자인 확인
- [ ] 다크 모드 지원 확인

### 6.2 사용자 피드백
- [ ] 로딩 상태 표시 확인
- [ ] 오류 메시지 명확성 확인
- [ ] 성공 메시지 표시 확인

## 7. 보안 테스트

### 7.1 영수증 검증
- [ ] 위조된 영수증 거부 확인
- [ ] 만료된 영수증 처리 확인

### 7.2 인증 및 권한
- [ ] 인증되지 않은 사용자의 구독 API 접근 차단 확인
- [ ] 권한이 없는 사용자의 관리자 기능 접근 차단 확인

## 8. 통합 테스트

### 8.1 전체 구독 흐름
- [ ] 구독 생성 → 플랜 변경 → 자동 갱신 설정 → 구독 취소의 전체 흐름 테스트

### 8.2 다중 기기 동기화
- [ ] 여러 기기에서 동일한 계정으로 로그인 시 구독 정보 동기화 확인

## 9. 배포 준비

### 9.1 스토어 설정
- [ ] App Store 인앱 결제 상품 설정 확인
- [ ] Google Play 구독 상품 설정 확인
- [ ] 스토어 스크린샷 및 설명에 구독 정보 포함 확인

### 9.2 법적 요구사항
- [ ] 개인정보 처리방침에 구독 관련 내용 포함 확인
- [ ] 이용 약관에 구독 조건 포함 확인
- [ ] 환불 정책 명시 확인
