Skip to main content
기본적으로 대부분의 PlayFab SDK는 플레이어 로그인 결과를 캐시합니다. 이 캐싱은 단일 플레이어 로그인을 예상하는 가장 일반적인 시나리오에서 편리합니다. 여러 동시 플레이어를 지원하는 게임이나 플레이어의 인증 자료와 서버 자격 증명을 모두 관리하는 서버에서는 이러한 캐싱이 방해가 될 수 있습니다. 이러한 시나리오를 지원하기 위해 PlayFab SDK에는 정적 API 클래스와 인스턴스 API 클래스가 모두 포함되어 있습니다.

정적 API 클래스와 인스턴스 API 클래스 비교

PlayFab의 대부분의 예제와 샘플 코드는 정적 API 클래스를 사용하여 작성됩니다. 예를 들어 Unity에서 __PlayFabClientAPI__에 대한 참조를 볼 수 있습니다. 이러한 정적 클래스는 SDK 내부의 정적 상태에 쓰고 읽습니다. 정적 상태에 의존하기 때문에 동일한 게임 클라이언트 내에서 여러 플레이어를 다룰 때 이러한 클래스를 사용하기 어렵습니다. 인스턴스 API 클래스는 개발자 측에서의 관리 및 추적 요구 사항이 증가하는 대신 이러한 문제를 피합니다. 여러 동시 PlayFab 로그인을 지원해야 하는 경우 인스턴스 API 클래스를 사용하는 것을 권장합니다. Unity SDK에서 __PlayFabClientInstanceAPI__는 __PlayFabClientAPI__의 인스턴스 버전입니다. 다른 모든 API 클래스도 유사한 명명 패턴을 따릅니다. API 클래스의 인스턴스 버전을 사용할 때는 메서드를 호출하기 전에 클래스의 인스턴스를 생성해야 합니다. 인스턴스를 생성하려면 몇 가지 추가 컨텍스트를 지정해야 합니다. 대부분의 클래스에서 필요한 추가 컨텍스트는 플레이어의 인증 컨텍스트뿐입니다. Unity에서 이 컨텍스트는 __PlayFabAuthenticationContext__입니다. 일부 클래스에는 로그인 호출이 포함되어 있습니다. 이러한 호출의 경우 아직 플레이어의 인증 컨텍스트가 없을 수 있습니다. 그런 경우에는 타이틀 ID와 같은 기본 설정만 제공하면 됩니다. 이러한 설정은 PlayFabApiSettings 객체를 통해 전달됩니다.

인스턴스 API 클래스 사용

적절한 인증 컨텍스트 또는 API 설정 객체로 생성된 인스턴스 API 클래스가 있으면 정적 클래스와 유사하게 사용할 수 있습니다. 모든 요청 및 응답 객체는 동일합니다. 유일한 차이점은 인스턴스의 수명을 추적하고 PlayFab의 잠재적 호출자에게 적절한 인스턴스가 제공되도록 하는 책임이 사용자에게 있다는 점입니다. 여러 플레이어를 다룰 때는 플레이어당 하나씩 여러 API 클래스 인스턴스가 필요합니다. 이러한 인스턴스를 소유자로서 플레이어 객체 뒤에 캡슐화하여 관리하는 것이 종종 가장 쉽지만, 이는 사용자에게 달려 있습니다. 플레이어를 로그인하는 인스턴스 클래스(예: PlayFabClientInstanceAPI)는 해당 플레이어의 인증 컨텍스트를 API 클래스 인스턴스 내에 생성하고 캐시합니다. 이 기능을 사용하면 필요한 추가 클래스를 생성할 때 인증 컨텍스트를 쉽게 참조할 수 있습니다.

Unity 예제

이 샘플 코드는 여러 플레이어가 게임에 로그인하고 별도의 클래스 인스턴스에서 독립적인 상태를 추적하는 방법을 보여줍니다. 이 예제에서 API 클래스와 기본 기능은 단순한 PlayFabPlayer 객체 뒤에 캡슐화됩니다. 게임이 시작되면 두 명의 플레이어를 로그인시키고 각 플레이어에 대해 PlayFab에 저장된 데이터를 가져옵니다.

Unreal 예제

이 코드 샘플은 자체 PlayFab 로그인 컨텍스트를 포함하는 Unreal의 액터를 보여줍니다. ALoginActor 클래스 내에서 PlayFab API 인스턴스 클래스를 캡슐화하는 방법을 보여줍니다. 여러 ALoginActor 인스턴스를 맵에 추가하고 자체 CustomId를 부여하여 독립적으로 PlayFab 작업을 수행할 수 있습니다. LoginActor.h:
LoginActor.cpp:

서버 인증

인스턴스 API 클래스가 게임 클라이언트에서 여러 플레이어를 처리할 수 있게 해주는 방식과 유사하게, 서버에서 타이틀 및 플레이어 인증 조합을 처리하거나 여러 타이틀을 동시에 처리할 수 있게 해줍니다. 기본 패턴은 거의 동일합니다. 서버 로그인을 처리할 API 클래스를 인스턴스화하고, 해당 인스턴스에 적절한 PlayFabApiSettings 객체를 제공한 다음, 인증 API를 호출합니다. 서버에서는 일반적으로 이 API가 __PlayFabAuthenticationInstanceAPI.GetEntityToken__입니다. 플레이어 로그인과 마찬가지로 GetEntityToken 호출의 결과는 API 클래스 인스턴스에 캐시되며, authenticationContext 인스턴스 속성을 통해 참조하여 더 많은 API 클래스 인스턴스를 생성할 수 있습니다.
마지막 수정일 2026년 8월 13일