DateP

PurchaseScreen 및 RestorePurchases 해결 정리

Solo.dev 2025. 4. 8. 01:48
PurchaseScreen 및 RestorePurchases 요구사항 정리

✨ PurchaseScreen 및 RestorePurchases 요구사항 정리

요구사항 개요

아래는 DateP 애플리케이션의 구독 관련 기능을 개선하기 위한 세 가지 요구사항입니다.

  • 모달 타이틀 조정 및 스타일 관리.
  • restorePurchases 에러 복구.
  • 구독 성공 후 네비게이션 처리.

1. 모달 타이틀 조정

문제

모달 타이틀이 ScrollView 내부에 있어 아래쪽에 위치, 사용자 경험 저하.

해결 목표

  • ScrollView 밖으로 빼서 상단에 고정.
  • style.tspurchasemodalTitle 정의.
  • footerCardmarginTopheight * 0.045로 관리.

수정 내용

타이틀을 ScrollView 밖으로 이동하고, style.tspurchasemodalTitle을 정의하며, footerCardContainermarginTopheight * 0.045로 조정.

설명: 타이틀을 ScrollView 밖으로 이동하고, footerCardContainermarginTop을 조정하여 UI 개선.

2. restorePurchases 에러 복구

문제

'❌ restorePurchases error:', [Error: purchase is not suitable to be purchased] 발생.

분석: finishTransaction이 불필요하게 포함되어 발생한 오류 가능성.

해결 목표

  • finishTransaction 제거.
  • getAvailablePurchases로 구매 확인 후 복구.
  • startPurchase에서 developerPayload: plan으로 플랜 반영.

수정 내용

finishTransaction을 제거하고, getAvailablePurchases로 구매 내역 확인 후 복원. startPurchase에서 developerPayload: plan으로 플랜 설정.

설명: finishTransaction 제거로 에러 방지, acknowledgePurchaseAndroid로 구매 상태 보완, 플랜은 developerPayload로 결정.

3. 구독 성공 후 네비게이션

문제

구독 완료 후 메인 화면 이동 기능 미구현.

해결 목표

  • PurchaseScreen.tsxgoToHomeScreen 정의.
  • 구독 성공 후 버튼 클릭 시 (tabs)로 이동.

수정 내용

PurchaseScreen.tsxgoToHomeScreen을 정의하고, 구독 및 복원 성공 시 "OK" 버튼으로 (tabs)로 이동.

설명: goToHomeScreen으로 모달 닫고 (tabs)로 이동, 성공 시 "OK" 버튼으로 트리거.

내일 할 일

다음 작업을 계획 중입니다.

4. 영수증 검증 서버 분리 검토

문제

현재 클라이언트에서 영수증 검증 처리 중, 서버로 분리할지 고민.

해결 목표

  • 보안 위해 서버로 이동 권장 (Firebase Functions 사용 가능).

설명: 클라이언트 검증은 보안 취약점이 있을 수 있으므로, Firebase Functions로 서버 검증 구현 검토.

5. Alert 다국어 적용

문제

Alert 메시지가 한국어로 고정되어 글로벌 사용자 대응 부족.

해결 목표

  • translations[language]로 다국어화.

설명: Alert 메시지를 translations 객체에서 가져와 언어별로 동적 적용.

6. Firebase Functions - 장소 검색 수식어 문제

문제

수식어(좋은, 인기 있는 등)에 따라 장소 개수 편차 (1개~20개) 발생.

해결 목표

  • 최소 10개 보장하도록 수식어 테스트 및 필터링 로직 개선.

설명: Firebase Functions 검색 로직을 수정해 일관된 결과(최소 10개) 반환하도록 조정.