“구매 복원”은 무엇을 의미하나요?

마지막 업데이트 3월 9, 2026
 
Victoria Kharlan
발행일 12월 5, 2025 
마지막 업데이트 3월 9, 2026
읽는 데 4분
What Does Restore Purchase Mean

이런 상황을 상상해 보세요. 사용자가 구독을 구매하고, 기기를 변경하고, 앱을 재설치했는데 갑자기 접근 권한을 잃게 됩니다. 이는 신뢰를 잃는 가장 쉬운 방법입니다.

바로 그 때문에 “구매 복원” 버튼이 존재합니다. 선택 사항처럼 보일 수 있지만, 특히 구독 기반 앱에서는 필수 기능입니다.

이 옵션은 사용자가 이전에 구매한 콘텐츠에 대해 다시 결제하지 않고도 접근 권한을 회복할 수 있게 합니다.
신뢰, 규정 준수, 사용자 유지 측면에서 작은 버튼이지만 큰 역할을 합니다.

왜 중요한가

  • 사용자 신뢰: 한 번 결제한 사용자는 기기와 상관없이 계속해서 접근할 수 있을 것으로 기대합니다.
  • 지원 부하: 혼란스럽거나 누락된 복원 로직 = 불만 고객 + 더 많은 티켓.
  • 앱 스토어 규정 준수: Apple과 Google 모두 특정 제품 유형에 대해 복원 옵션을 포함할 것을 요구합니다.

복원할 수 있는 구매 항목

복원 가능한 구매 항목에는 다음이 포함됩니다:

  • 비소모성 아이템: 평생 이용권이나 프리미엄 기능과 같은 일회성 구매 항목.
  • 자동 갱신 구독: 여러 기기에서 동기화되는 월간/연간 요금제.
  • 비갱신형 구독: 기간제 이용권(예: 3개월 이용권).

복원 불가능:

  • 소모품은 동전, 추가 생명, 일회성 부스트 등을 말합니다. 이들은 사용 후 소모되도록 설계되었습니다.

“구매 복원” 버튼의 작동 방식

  1. UI/UX. “구매 복원” 버튼을 추가하세요 — 일반적으로 설정 메뉴나 결제 장벽 화면에 직접 배치합니다.
  2. 트리거. 탭을 눌러 복원을 트리거합니다:
    • iOS용 SKPaymentQueue.restoreCompletedTransactions()
    • BillingClient.queryPurchaseHistoryAsync() for Android
    • 또는 권한 부여를 서버 측에서 관리하는 경우 백엔드 로직
  3. 액세스 업데이트. 복원이 완료된 후 사용자의 구독 상태를 새로고침하고 콘텐츠 잠금을 해제하십시오.
  4. 도움이 되는 설명을 추가하세요. 간단한 한 줄이 혼란을 줄여줍니다: “기기 변경 또는 앱 재설치 시 이 방법을 사용하세요.”
  5. 중복을 피하십시오. 사용자가 이미 접근 권한이 있다면 버튼을 비활성화하거나 완전히 숨기십시오.
  6. 계정 로직. 로그인 기능이 있는 앱의 경우: 구독을 사용자 계정에 연결하고 백엔드를 통해 동기화하여 기기 간 복원을 간소화합니다.

iOS에서 구매 복원이 작동하는 방식

iOS에서 구매 복원은 앱 영수증을 갱신하고 사용자의 Apple ID에 연결된 제품을 다시 제공합니다. 이 과정은 백그라운드에서 조용히 실행되며, 사용자 경험은 간단하고 명확해야 합니다.

네이티브 StoreKit(StoreKit 2 이전)을 사용한 구현 방법은 다음과 같습니다:

1. 복원 프로세스 시작

복원 흐름을 트리거하려면 restoreCompletedTransactions()를 호출하십시오:

SKPaymentQueue.default().restoreCompletedTransactions()

이 코드는 StoreKit에 현재 Apple ID에 연결된 과거 구매 내역을 조회하도록 지시합니다.

2. 복원된 트랜잭션 처리

결제 대기열을 수신하고 .restored 트랜잭션 상태를 확인합니다. 그런 다음 콘텐츠 잠금을 해제하고 트랜잭션을 완료로 표시합니다:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        if transaction.transactionState == .restored {
            // Unlock access based on restored product
            unlockContent(transaction: transaction)
            SKPaymentQueue.default().finishTransaction(transaction)
        }
    }
}

finishTransaction(_:)를 호출하는 것을 잊지 마십시오. 그렇지 않으면 StoreKit이 동일한 트랜잭션을 계속 재시도할 수 있습니다.

3. 오류를 적절히 처리하기

복원은 유효하지 않은 영수증, 네트워크 문제, 또는 Apple ID에 적격한 구매가 없는 경우 실패할 수 있습니다. 사용자에게 명확한 피드백을 표시하고 디버깅을 위해 오류를 로깅하세요.

Adapty SDK를 사용 중이신가요? 영수증 검증 및 예외적인 경우까지 포함해 모든 작업을 단일 메서드 호출로 처리해 드립니다.

Android에서 구매 복원이 작동하는 방식

Android에서 구매 복원이란 Google Play를 통해 사용자의 구매 내역을 확인하고, 비소모성 제품이나 활성 구독을 다시 활성화하는 것을 의미합니다. iOS와 같은 내장 “복원” 버튼이 없으므로 billing API를 통해 직접 처리해야 합니다.

Google Play Billing Library를 사용한 구현 방법은 다음과 같습니다:

1. 구매 내역 조회

queryPurchaseHistoryAsync()를 사용하여 사용자의 과거 구매 내역을 가져옵니다:

billingClient.queryPurchaseHistoryAsync(
    BillingClient.SkuType.SUBS
) { billingResult, purchaseHistoryList ->
    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchaseHistoryList != null) {
        for (purchase in purchaseHistoryList) {
            // Restore subscription access
            restoreEntitlement(purchase)
        }
    }
}

BillingClient.SkuType.INAPP을 전달하여 인앱 구매를 조회할 수도 있습니다.

2. 검증 및 잠금 해제

구매 내역을 가져온 후 영수증을 검증하고(이상적으로는 서버 측에서), 그에 따라 접근 권한을 부여하세요. 스푸핑을 방지하기 위해 서명 데이터를 반드시 확인하세요.

Adapty는 구매 검증, 사용자 접근 권한 로직, 크로스 플랫폼 동기화를 기본으로 제공합니다.

3. UX 고려 사항

Android 사용자는 “구매 복원” 버튼을 기대하지 않으므로 다음과 같이 할 수 있습니다:

  • 로그인 또는 앱 실행 시 자동으로 복원 기능 실행
  • 또는 투명성을 위해 설정에 눈에 띄지 않는 옵션을 제공할 수 있습니다

어떤 방식이든 복원 로직이 백그라운드에서 조용히 실행되고, 접근 권한이 복원되면 UI가 업데이트되도록 하세요.

마무리

“구매 복원” 버튼은 단순해 보일 수 있지만, 구독 여정에서 매우 중요한 역할을 합니다.

  • 신뢰를 구축합니다.
  • 이탈률을 줄여줍니다.
  • 규정 준수를 유지할 수 있게 해줍니다.

눈에 잘 띄게 만드세요. 제대로 작동하게 만드세요. 그리고 이해하기 쉽게 만드세요.

자주 묻는 질문

앱에서 구매 항목에 접근하는 유일한 방법으로 로그인을 사용하는 경우, 해당 버튼은 기술적으로 필수 요소가 아닐 수 있습니다. 하지만 Apple은 여전히 이를 권장하며, 이는 지원 요청을 줄이는 데 도움이 됩니다.

아니요. 유효한 과거 구매 내역만 재활성화되며, 추가 요금은 발생하지 않습니다.

아니요. 일반적으로 사용자가 수동으로 실행합니다. 하지만 Adapty나 자체 백엔드를 사용하면 앱 시작 시 구매 내역을 자동으로 동기화하여 접근 권한이 항상 최신 상태로 유지되도록 할 수 있습니다.

iOS에서는 — 예, 동일한 Apple ID를 사용할 경우 가능합니다. Android에서는 구매 내역을 지속적인 사용자 계정에 연결하기 위해 로그인을 권장합니다.

아니요. “구매 복원” 기능은 원래 구매를 진행한 계정에서만 작동합니다.

iOS에서 제품이 가족 공유를 지원하고 활성화된 경우, 가족 구성원 누구나 구매를 복원할 수 있습니다. 동작 방식은 App Store 설정과 제품 유형에 따라 달라집니다.

다음과 같은 친절한 메시지를 표시합니다: “귀하의 계정에서 이전 구매 내역을 찾을 수 없습니다.” 이는 혼란을 방지하고 프로세스가 예상대로 실행되었음을 확인합니다.
Victoria Kharlan
Lessons I wish I had. Now yours.
Default

이 페이지에서

Adapty와 함께 첫 번째 페이월을 만들 준비가 되셨나요?
코드 없이 돈을 벌 수 있는 페이월을 만드세요
무료로 시작하기