결정 기록을 불러오는 중…
분석 자료를 불러오는 중…
결정 기록을 불러오는 중…
선택한 대안, 이유, 담당자와 재검토 조건을 저장합니다.
이전 기록 가져오기는 현재 앱과 같은 주소에 저장된 브라우저 기록에만 접근합니다.
저장된 결정 기록을 불러오는 중입니다.
정책 값: 스토어 상품 ID와 지급 코인 매핑 · 서버 영수증 검증 기준 · 거래 멱등 키 · 지연 완료·보류 제한 시간 · 첫 구매 자격 기준 · 복원 대상과 진입점 · 결제 실패 코드와 사용자 문구 · 장부·지갑 원자성
근거:
시나리오와 대안 다시 보기 ↗# SC03 · 코인 충전 결과를 한 번만 지급하기 - 결정 질문: 스토어 결제가 완료·취소·실패·지연되거나 완료 통지가 반복될 때 코인 지급과 복원을 어떻게 일관되게 처리할 것인가? - 전제 조건: 사용자가 충전 상품과 실제 통화 가격을 확인하고 구매를 시작한 상태 - 상태: 미결정 - 선택한 대안: 미기입 - 담당자: 미정 - 결정 날짜: 미정 - 선택 이유·조건: 미기입 - 기각 대안·이유: 미기입 - 가정·미해결 질문·수치 기준: 미기입 - 재검토 조건: 미기입 - 근거 ID: S08, S50, S51, S52, S53, S71, S90, S92, S95, S98, S99 / N01·N02 ## 관찰 - 게스트와 로그인 회원 모두 첫 구매 혜택 1종과 일반 5종, 총 6개 원화 상품을 같은 가격으로 확인했다. (S08, S53) - 로그인 직후 지갑은 유료 0·무료 0이었고, 구매 전 충전 이력과 사용 이력은 비어 있었다. (S50, S51, S52) - 조사에서는 상품을 선택해 스토어 결제창으로 진입하거나 결제·취소·실패·복원을 수행하지 않았다. (S53) ## 앱 내 안내 — 집행 미검증 - FAQ는 코인 팩이 App Store 또는 Google Play 인앱결제로 판매되고 사용 가능한 결제 수단은 국가와 스토어에 따라 다르다고 안내한다. (S71) - FAQ는 코인이 결제 당시 로그인한 계정에 지급되고, 비회원 구매는 기존 계정 로그인 뒤 Add 팝업으로 옮기며, 확인이 필요한 결제는 스토어 완료 후 앱 재진입 시 지급된다고 안내한다. Canceled·Failed는 미완료로 설명하며 실제 집행은 검증하지 않았다. (S90) - FAQ는 구매 코인과 구매 보너스 코인에 만료가 없다고 안내한다. 실제 구매·장기 보유는 검증하지 않았다. (S92) - FAQ는 코인 상품을 반복 구독이 아닌 일회성 구매로 설명하고, 현재 월 이용권·구독 상품은 제공하지 않으며 코인으로 개별 회차만 해제한다고 안내한다. (S95, S98) - FAQ는 가입에 사용한 Google 또는 Apple 계정으로 로그인하면 코인과 해제 회차가 유지된다고 안내한다. 실제 타 기기 복원은 수행하지 않았다. (S99) ## 확인되지 않은 부분 - 스토어 결제창, 결제 완료 화면, 영수증 검증, 코인 지급 시점은 확인되지 않았다. - FAQ의 Canceled·Failed·확인 필요 결제·앱 재진입 지급 안내가 실제 상태별 화면과 장부에서 어떻게 집행되는지는 검증하지 않았다. - FAQ는 계정 재로그인 시 코인 유지를 안내하지만 앱 종료 뒤 완료된 거래와 타 기기 복원은 실제로 수행하지 않았다. - 첫 구매 혜택의 계정·스토어·기기별 자격 판정과 중복 방지 규칙은 확인되지 않았다. - 스토어 완료 통지가 반복됐을 때 중복 지급을 막는지는 확인되지 않았다. ## 검토 대안 - 클라이언트 즉시 지급 — 장점: 결제 직후 잔액 반영이 빠르고 초기 구현이 단순하다. / 비용: 위변조·중복 통지·지연 완료·환불 연계에 취약하고 여러 기기의 장부 일관성을 보장하기 어렵다. - 서버 영수증 확인 후 지급 — 장점: 스토어 거래 ID를 기준으로 한 번만 지급하고 지연 완료와 복원을 같은 장부로 처리할 수 있다. / 비용: 확인 지연 중 대기 상태가 필요하고 서버·스토어 장애 대응이 복잡하다. - 혼합형 임시 잔액 — 장점: 사용자에게 빠른 피드백을 주면서 서버 확인을 기다릴 수 있다. / 비용: 임시 잔액 회수와 사용 제한이 복잡하고 오해와 고객지원 비용이 커질 수 있다. ## 보고서 제안 — 미확정 잠정 제안: 서버가 스토어 거래 ID와 상품 구성을 확인한 뒤 불변 거래 장부에 한 번만 기록하고 코인을 지급한다. 확인 중에는 지급 예정 상태를 보여주고 앱 재실행·지연 완료·복원을 같은 거래 조회로 수렴시킨다. ## 출시 QA — 미실행 - SC03-Q01 | Given: 유효한 상품과 새 스토어 거래 ID가 있는 상태 | When: 서버 영수증 확인이 성공함 | Then: 장부 기록과 코인 지급이 함께 한 번만 반영되고 지갑과 충전 이력에 같은 거래가 보이는 것이 기획 완료 기준이다. - SC03-Q02 | Given: 동일한 완료 통지가 세 번 도착한 상태 | When: 구매 처리기가 모두 처리함 | Then: 한 건의 지급과 한 건의 충전 이력만 생성되는 것이 기획 완료 기준이다. - SC03-Q03 | Given: 스토어 완료 후 앱이 종료되고 서버 확인이 지연된 상태 | When: 사용자가 앱을 다시 열거나 복원을 요청함 | Then: 처리 중 상태를 거쳐 누락 지급이 복구되고 추가 결제 없이 결과를 확인할 수 있는 것이 기획 완료 기준이다. - SC03-Q04 | Given: 결제 취소 또는 실패 상태 | When: 앱이 결과를 수신함 | Then: 잔액이 변하지 않고 취소·실패에 맞는 다음 행동이 표시되는 것이 기획 완료 기준이다.