Skip to main content
PlayFab은 라이브 게임을 위한 Microsoft의 백엔드 서비스(backend-as-a-service)입니다 — 이코노미, 카탈로그, 리더보드, 클라우드 스크립트, 분석, 매치메이킹 및 PlayFab Party 음성/데이터 네트워킹. XBOX services 위에 깔끔하게 계층화됩니다. XBOX services는 플레이어에게 노출되는 ID(게이머태그, 친구, 도전 과제, 상태, MPSD 세션)를 소유하고, PlayFab은 백엔드 라이브 서비스 데이터(인벤토리, 통화, 사용자 정의 사용자 데이터, 텔레메트리)를 소유합니다. PlayFab Party, Microsoft Store 인앱 구매를 위한 PlayFab 이코노미, PlayFab 리더보드 또는 기타 PlayFab 서비스를 사용하는 모든 GDK 타이틀은 두 스택 모두에 플레이어를 로그인시키고 두 ID를 연결된 상태로 유지해야 합니다.
이 페이지는 통합의 XBOX 측면에 중점을 둡니다 — 로그인된 XUser에 연결된 PlayFab 계정을 프로비저닝하는 방법과 Microsoft Store 엔타이틀먼트 흐름이 PlayFab 이코노미에 어떻게 연결되는지를 다룹니다. PlayFab 기능 전반(Game Manager, 카탈로그, 클라우드 스크립트, 매치메이킹, Party)에 대해서는 PlayFab 설명서를 참조하세요.

XBOX 및 PlayFab 사용자 계정

XBOX services 계정과 PlayFab 계정은 두 개의 별도 ID입니다:
  • XBOX services 계정 — 플레이어에게 노출됨. 플레이어의 Microsoft 계정(MSA)이 소유합니다. 게이머태그, XUID, 친구, 도전 과제, 상태를 포함합니다.
  • PlayFab 계정 — 백엔드에서 사용됨. PlayFab TitleId(PlayFab의 Game Manager에서 타이틀을 만들 때 할당되는 4–6자리 16진수 문자열) 내의 Entity ID로 식별됩니다. XBOX 타이틀 ID와 동일하지 않습니다.
GDK 타이틀에서 PlayFab 기능(Party 음성 채팅, 이코노미, 리더보드)을 사용하려면 로그인한 모든 XUser가 PlayFab 타이틀 컨텍스트에서 프로비저닝된 연결된 PlayFab 계정을 가지고 있어야 합니다. 로그인 흐름이 끝날 때까지:
  • 플레이어가 XUserAddAsync로 추가되었고 XUserHandle을 보유합니다.
  • 해당 플레이어에 대한 PlayFab 계정이 PlayFab TitleId 아래에 존재합니다(첫 로그인 시 자동으로 프로비저닝됨).
  • XBOX와 PlayFab 계정이 연결되어 있으며, 타이틀은 인증된 PlayFab REST/SDK 호출을 위한 유효한 자격 증명(Entity ID + PlayFab 토큰)을 보유합니다.
PlayFab TitleId는 XBOX 타이틀 ID와 동일하지 않습니다. 게임(또는 샤드)당 하나의 PlayFab 타이틀을 PlayFab Game Manager에서 프로비저닝하고 해당 TitleId를 빌드 구성에 하드 코딩하세요.

PlayFab에 플레이어 로그인

지원되는 두 가지 로그인 경로가 있습니다. 사용하는 PlayFab 서비스에 따라 하나를 선택하세요:

PlayFab Services SDK

모든 타이틀에 권장됨. GDK에 게이밍 확장 라이브러리(PlayFab.Services.C)로 제공됩니다. 이코노미, 리더보드, 클라우드 스크립트, 매치메이킹, 그리고 Party 이외의 기능을 사용하는 모든 타이틀에 사용됩니다.

PlayFab Party Xbox Live Helper Library

PlayFab Party가 사용하는 유일한 PlayFab 서비스이고 XBOX services가 유일한 인증 공급자인 경우에만 사용하세요. GDK 내 PlayFab Party SDK와 함께 제공됩니다.

PlayFab Services SDK (권장)

PlayFab Services SDK는 GDK와 함께 제공되며 PFAuthenticationLoginWithXUserAsync를 노출합니다. 이 함수는 XUserHandle을 받아 한 번의 호출로 플레이어를 PlayFab에 로그인시킵니다. 첫 실행 시 연결된 PlayFab 계정을 자동으로 프로비저닝하려면 createAccount = TRUE로 설정하세요. 설정
  1. GDK를 설치합니다.
  2. PlayFab.Services.C 게이밍 확장 라이브러리를 프로젝트에 추가합니다:
    • Visual Studio에서 프로젝트를 열고 → 프로젝트속성을 선택합니다.
    • 구성 속성Gaming Desktop일반에서 Gaming Extension Libraries를 열고 PlayFab.Services.C를 추가합니다.
권장 로그인 흐름
  1. XUserAddAsync로 플레이어를 XBOX 계정에 로그인시키고 반환된 XUserHandle을 보관합니다.
  2. PFAuthenticationLoginWithXUserAsync를 호출합니다:
    • XUserHandleuser 매개변수로 전달합니다.
    • 첫 로그인 시 PlayFab이 연결된 계정을 자동으로 프로비저닝하도록 createAccount = TRUE로 설정합니다.
  3. 결과로 얻은 PlayFab 자격 증명(Entity ID + PlayFab 토큰)을 세션 동안 유지하고, 이후의 모든 PlayFab 호출에 사용합니다.
전체 안내는 GDK용 PlayFab Services SDK 빠른 시작을 참조하세요.

PlayFab Party XBOX Live Helper Library

PlayFab Party가 타이틀이 사용하는 유일한 PlayFab 서비스라면 PlayFab Services SDK를 건너뛰고 GDK의 PlayFab Party SDK와 함께 번들로 제공되는 Party XBOX Live Helper Library를 통해 로그인할 수 있습니다. 흐름
  1. XUserAddAsync로 플레이어를 XBOX에 로그인시킵니다.
  2. 채팅이 처음 시작될 때 XUserGetId로 XUID를 검색합니다.
  3. XUID로 PartyXblManager::CreateLocalChatUser를 호출하여 **PartyXblLocalChatUser**를 생성합니다.
  4. 해당 사용자 객체로 PartyXblManager::LoginToPlayFab를 호출합니다.
    • GDK(콘솔 및 PC)와 XDK에서는 헬퍼 라이브러리가 내부적으로 필요한 XBOX services 토큰을 가져와 XBOX 자격 증명으로 플레이어를 PlayFab에 로그인시키고, 첫 로그인 시 PlayFab 계정을 자동으로 생성합니다. 이 방법으로 생성된 계정에는 이메일이나 사용자 이름이 첨부되어 있지 않습니다.
    • GDK/XDK가 아닌 타이틀(예: GDK 없는 PC Win32)에서는 대신 PartyXblTokenAndSignatureRequestedStateChange를 받습니다. XBOX services 토큰을 직접 가져와 PartyXblManager::CompleteGetTokenAndSignatureRequest를 통해 다시 전달합니다.
  5. 성공 시 PlayFab Entity ID와 토큰을 담은 PartyXblLoginToPlayFabCompletedStateChange를 받습니다.
원격 사용자의 경우 PartyXblManager::CreateRemoteChatUser를 사용하세요 — 원격 사용자 흐름에는 인증이나 토큰 교환이 필요하지 않습니다.

XUser는 ID 브리지입니다

다운스트림의 모든 것 — PlayFab 로그인, MPSD 세션 쓰기 토큰, S2S 호출, 엔타이틀먼트 쿼리 — 은 XUserAddAsync에서 반환된 XUserHandle로 시작됩니다. PlayFab 통합에 중요한 두 개의 API가 있습니다: 더 넓은 로그인 모델(MSA, XSTS 토큰, 샌드박스 범위 지정)에 대해서는 XBOX services ID를 참조하세요.

크로스 플랫폼 타이틀

PlayFab은 많은 플랫폼 인증 공급자를 지원합니다. iOS, Android, Steam, PlayStation에서 동일한 타이틀을 출시할 때, 모든 플레이어를 XUser를 통해 라우팅하려고 시도하지 마세요 — 플랫폼의 기본 PlayFab 인증 공급자를 사용하세요:
  • iOS — Apple ID (LoginWithApple).
  • Android — Google Play Games (LoginWithGoogleAccount).
  • SteamLoginWithSteam.
  • XBOX / GDK PCPFAuthenticationLoginWithXUserAsync (이 페이지).
각 플랫폼 로그인은 자체 PlayFab 계정을 프로비저닝하고 동일한 PlayFab 타이틀에 연결합니다. 동일한 PlayFab 계정으로 여러 플랫폼을 이동하는 플레이어는 연결된 ID가 PlayFab 내에서 병합됩니다. 전체 매트릭스에 대해서는 플랫폼별 PlayFab 인증을 참조하세요.

PlayFab 이코노미를 통한 Microsoft Store 인앱 구매

Microsoft Store를 통해 인앱 아이템을 판매하는 GDK 타이틀의 경우, PlayFab은 이코노미 백엔드 역할을 하고 Microsoft Store가 실제 트랜잭션을 처리합니다. PlayFab은 엔타이틀먼트 메서드를 사용하여 Microsoft Store 구매를 플레이어의 PlayFab 인벤토리에 조정합니다 — 플레이어가 먼저 XBOX 계정에 로그인되어 있어야 합니다.

흐름

  1. 플레이어가 XBOX(XUserAddAsync)와 PlayFab(PFAuthenticationLoginWithXUserAsync)에 로그인됩니다.
  2. 플레이어가 기기에서 Microsoft Store를 통해 아이템을 구매합니다.
  3. 타이틀이 구매를 PlayFab에 알립니다.
  4. PlayFab이 XBOX 토큰으로 ConsumeMicrosoftStoreEntitlements를 호출하여 플레이어의 PlayFab 인벤토리를 동기화하고 새로운 아이템을 부여합니다.
GDK 타이틀에서는 Microsoft Store PlayFab 애드온과 ConsumeMicrosoftStoreEntitlements를 사용하세요. 레거시 XBOX 애드온 / ConsumeXboxEntitlements는 사용하지 마세요(해당 경로는 XDK 타이틀 전용). Universal Windows Platform 애드온은 사용 중단되었습니다.

Partner Center 사전 요구 사항

  • XBOX Creators Program 또는 관리 파트너에 등록됨.
  • XBOX 비즈니스 파트너 정보와 동일한 게시자 GUID(aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee)로 Partner Center에 게시자 ID가 구성됨.
  • XBOX services를 사용하기 위한 컨셉 승인.
Partner Center에서 게임 설정 → XBOX services 아래에서 전체 XBOX services 기능 세트 사용(컨셉 승인 필요) 또는 XBOX Creators Program 사용 중 하나를 선택한 다음, 타이틀 아래에서 애드온을 만드세요.
PlayFab의 Microsoft Store 애드온은 Partner Center에서 스토어 관리 소모품을 지원하지 않습니다. 개발자 관리 소모품(또는 내구재)만 생성하세요.

Partner Center와 PlayFab에서 일치하는 항목 만들기

Partner Center의 제품 ID와 PlayFab의 아이템 ID는 엔타이틀먼트 동기화가 작동하려면 정확히 일치해야 합니다.
  1. Partner Center → 애드온새 소모품(개발자 관리) 만들기(또는 내구재)를 선택합니다. 고유한 제품 ID(예: MyItem_001)를 입력합니다.
  2. PlayFab Game ManagerEngageEconomyNew item을 선택합니다. Item ID에 동일한 문자열(MyItem_001)을 입력합니다. Partner Center와 일치하도록 Consumable 또는 Durable로 표시하고 저장합니다.

용어 참조

카탈로그 및 스토어 — 전역적으로 하나의 Item ID

PlayFab을 사용하면 타이틀당 여러 카탈로그를 정의할 수 있으며 각 카탈로그 내에서 아이템을 스토어로 그룹화할 수 있습니다. Microsoft Store 엔타이틀먼트 동기화가 작동하려면 각 Product ID가 PlayFab 타이틀의 모든 카탈로그 버전에서 정확히 하나의 Item ID와 일치해야 합니다.
동일한 Item ID가 둘 이상의 카탈로그에 나타나면 엔타이틀먼트 소비가 실패합니다. 주어진 PlayFab 타이틀의 모든 카탈로그에서 아이템 ID를 전역적으로 고유하게 유지하세요.
잘못됨 — 카탈로그 간에 동일한 ID 재사용: 올바름 — SKU당 하나의 Item ID, 스토어 간에 자유롭게 재사용: 카탈로그 내의 스토어는 그런 다음 이러한 고유한 아이템의 임의의 하위 집합을 자유롭게 번들할 수 있습니다:

참고 항목

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