Skip to main content
Economy v2는 이제 정식 출시(GA)되었습니다. 지원 및 피드백은 PlayFab 포럼을 참조하세요.
라이브 게임에서는 네트워크 오류, 시간 초과, 중복 요청이 필연적입니다. Economy v2는 중복 트랜잭션을 방지하기 위해 IdempotencyId를 제공합니다. 이 기능은 동일한 요청이 여러 번 전송되더라도 작업이 한 번만 처리되도록 보장합니다. 낙관적 동시성 제어(마지막으로 읽은 이후 인벤토리가 변경되지 않은 경우에만 쓰기가 성공하도록 보장)에 대해서는 ETag 및 동시성 제어를 참조하세요.

필수 구성 요소

작동 방식

인벤토리 쓰기 요청에 IdempotencyId를 포함하면 PlayFab은 해당 ID를 14일 동안 저장합니다. 동일한 IdempotencyId로 다른 요청이 도착하면 PlayFab은 작업을 다시 처리하지 않고 원래 요청의 결과를 반환합니다.

지원되는 API

IdempotencyId는 모든 인벤토리 쓰기 API에서 지원됩니다.

예제: 재시도가 있는 안전한 구매

이 시나리오에서 플레이어는 Laser Sword를 구매합니다. 클라이언트는 요청을 보내기 전에 고유한 IdempotencyId(예: GUID)를 생성합니다.
클라이언트가 응답을 받지 못하면(예: 네트워크 시간 초과) 동일한 IdempotencyId로 정확히 동일한 요청을 안전하게 재시도할 수 있습니다. PlayFab은 중복을 인식하고 원래 결과를 반환합니다. 플레이어는 한 번만 청구됩니다.

모범 사례

  • 논리적 작업당 고유한 ID 생성 — GUID 또는 UUID를 사용하세요. 서로 다른 작업에 동일한 ID를 재사용하지 마세요.
  • 첫 번째 시도 전에 클라이언트 측에서 ID 생성 — 이 방법은 모든 재시도가 동일한 ID를 사용하도록 보장합니다.
  • 재시도 사이에 요청 본문을 변경하지 마세요 — 동일한 IdempotencyId를 다른 요청 본문과 함께 사용하면 충돌 오류가 발생합니다.
  • ID는 14일 후에 만료됩니다 — 이후에는 새 작업에 대해 동일한 ID를 다시 사용할 수 있습니다.

Redeem API는 자동으로 멱등적입니다

마켓플레이스 상환 API(RedeemAppleAppStoreInventoryItems, RedeemGooglePlayInventoryItems, RedeemMicrosoftStoreInventoryItems, RedeemSteamInventoryItems)에는 IdempotencyId가 필요하지 않습니다. 본질적으로 멱등적입니다. 각 마켓플레이스 영수증 또는 토큰은 한 번만 상환할 수 있습니다. 동일한 영수증으로 두 번째 호출하면 성공이 반환되지만 아무것도 부여되지 않습니다.

일반적인 시나리오

참고 항목

마지막 수정일 2026년 8월 13일