> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 플레이어 데이터 빠른 시작

> PlayFab 플레이어 데이터 빠른 시작에서는 클라이언트 및 서버 SDK를 통해 사용자 지정 플레이어 키-값 필드를 단계별로 생성, 읽기, 업데이트하는 방법을 안내합니다.

# 빠른 시작: 플레이어 데이터 설정 및 가져오기

<Note>
  PlayFab API에서 함수 이름은 **UserData**라는 용어를 사용합니다. **Game Manager**에서 이 개념은 **Player Data**로 설명됩니다. 두 용어는 동일하며 서로 교체하여 사용할 수 있습니다.
</Note>

PlayFab 플레이어 데이터 사용을 시작해 보세요. 이 빠른 시작에서는 Unity의 C#과 PlayFab CloudScript를 사용하여 플레이어 데이터를 설정하고 검색하는 방법을 안내합니다.

플레이어 데이터는 개별 플레이어 또는 플레이어 그룹(공유 데이터)에 적용되는 정보이며 PlayFab에서 키/값 쌍(KVP)으로 저장됩니다. 이 문서에서는 어떤 프로세스나 컨텍스트에서도 안전하게 호출할 수 있는 클라이언트 API 호출을 다룹니다. 또한 사용자가 제어하는 전용 서버 프로세스 또는 세심하게 보안된 CloudScript 호출에서 *만* 수행해야 하는 서버 API 호출도 다룹니다. 서버 API에는 개발 비밀 키가 필요합니다. 이 키는 클라이언트에 제공하거나 클라이언트와 함께 게시해서는 안 됩니다.

## 요구 사항

* [PlayFab 개발자 계정](https://developer.playfab.com).
* 설치된 Unity 편집기 사본. 개인용 Unity 또는 전문가용 Unity+를 Unity Hub를 통해 설치하려면 [Download Unity](https://unity3d.com/get-unity/download)를 참조하세요.

<Note>
  PlayFab Unity3D SDK는 Unity 편집기 버전 5.3(2015년 12월 릴리스) 이상을 지원합니다.
</Note>

* Unity 프로젝트는 다음이 될 수 있습니다.
  * 새로 만든 프로젝트. 자세한 내용은 [Starting Unity for the first time](https://docs.unity3d.com/550/Documentation/Manual/GettingStarted.html)을 참조하세요.
  * 가이드 튜토리얼 프로젝트. 자세한 내용은 [Getting Started with Unity](https://learn.unity.com/)를 참조하세요.
  * 기존 프로젝트.
* PlayFab Unity3D SDK.

PlayFab Unity3D SDK 설정에 대한 정보는 [빠른 시작: Unity의 C#용 PlayFab 클라이언트 라이브러리](/services/playfab/sdks/unity3d/quickstart) 문서를 참조하세요. 이 문서는 PlayFab 계정이 있고 Unity3D SDK가 올바르게 구성되어 있는지 확인합니다.

## 코드 예제에 대해

이 문서의 C# 샘플은 Unity SDK용으로 작성되었습니다. Unity SDK는 비동기 작업을 처리하기 위해 이벤트 기반 모델을 사용합니다. C# SDK를 사용하여 샘플 코드를 실행하려면 async Task 모델을 사용하도록 코드를 수정해야 합니다. 수정해야 하는 메서드는 서명의 메서드 이름에 Async가 추가되어 있습니다. 예를 들어, Unity SDK의 SetObject는 C# SDK에서 SetObjectAsync가 됩니다. 자세한 내용은 [async 및 await를 사용한 비동기 프로그래밍](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/)을 참조하세요.

기존 Unity 프로젝트를 사용할 수 있지만, 이 빠른 시작에서는 [빠른 시작: Unity의 C#용 PlayFab 클라이언트 라이브러리](/services/playfab/sdks/unity3d/quickstart)를 완료할 때 생성된 샘플을 사용하고 있다고 가정합니다.

## Game Manager의 플레이어 데이터

다음 단계를 수행하여 항상 Game Manager를 통해 플레이어 데이터를 가져오고 설정할 수 있습니다.

* **Game Manager**를 엽니다. Game Manager가 익숙하지 않다면 [Game Manager 빠른 시작](/services/playfab/live-service-management/gamemanager/quickstart)을 참조하세요.
* **Players** 탭을 선택합니다.
* **플레이어** 이름을 선택하여 **Players Account** 탭에 액세스합니다.
* **Player Data** 탭을 선택하여 데이터를 확인합니다.

## 플레이어 데이터를 설정하고 검색하는 메서드 추가

1. Unity 편집기에서 샘플 프로젝트를 엽니다.

2. **Project** 창에서 **Assets** > **Scripts**를 열고 PlayFabLogin 스크립트를 엽니다.

3. Visual Studio에서 using 문에 다음을 추가합니다.

   `using System.Collections.Generic;`

4. 플레이어 데이터를 설정하려면 `PlayFabLogin` 클래스에 `SetUserData` 메서드를 추가합니다. `SetUserData`는 [UpdateUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserdata) 메서드를 사용하여 로그인한 플레이어의 플레이어 데이터를 만들거나 업데이트합니다.

   이 메서드는 KVP `Ancestor`를 값 `Arthur`로, `Successor`를 값 `Fred`로 만듭니다(키-값 쌍(KVP)이 이미 있으면 업데이트).

   ```csharp theme={null}
   void SetUserData() {
       PlayFabClientAPI.UpdateUserData(new UpdateUserDataRequest() {
           Data = new Dictionary<string, string>() {
               {"Ancestor", "Arthur"},
               {"Successor", "Fred"}
           }
       },
       result => Debug.Log("Successfully updated user data"),
       error => {
           Debug.Log("Got error setting user data Ancestor to Arthur");
           Debug.Log(error.GenerateErrorReport());
       });
   }
   ```

5. 플레이어 데이터를 가져오려면 `PlayFabLogin` 클래스에 `GetUserData` 메서드를 추가합니다. `SetUserData`는 [GetUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserdata) 메서드를 사용하여 지정된 플레이어의 플레이어 데이터를 검색합니다.

   ```csharp theme={null}
   void GetUserData(string myPlayFabId) {
       PlayFabClientAPI.GetUserData(new GetUserDataRequest() {
           PlayFabId = myPlayFabId,
           Keys = null
       }, result => {
           Debug.Log("Got user data:");
           if (result.Data == null || !result.Data.ContainsKey("Ancestor")) Debug.Log("No Ancestor");
           else Debug.Log("Ancestor: "+result.Data["Ancestor"].Value);
       }, (error) => {
           Debug.Log("Got error retrieving user data:");
           Debug.Log(error.GenerateErrorReport());
       });
   }
   ```

6. `OnLoginSuccess` 메서드에서 `SetUserData`와 `GetUserData`를 호출합니다.

   ```csharp theme={null}
   private void OnLoginSuccess(LoginResult result) {
       Debug.Log("Congratulations, you made your first successful API call!");
       SetUserData();
       GetUserData(result.PlayFabId);
   }
   ```

7. 파일을 저장합니다.

## 샘플 실행

Unity 편집기에서 재생 버튼을 선택합니다. 성공하면 호출 결과가 콘솔 창에 표시됩니다.

## 참고 항목

* [내부 플레이어 데이터를 설정하는 방법](/services/playfab/player-progression/player-data/how-to-set-internal-player-data)
* [내부 플레이어 데이터를 가져오는 방법](/services/playfab/player-progression/player-data/how-to-get-internal-player-data)
* [읽기 전용 플레이어 데이터를 설정하는 방법](/services/playfab/player-progression/player-data/how-to-set-read-only-player-data)
* [읽기 전용 플레이어 데이터를 가져오는 방법](/services/playfab/player-progression/player-data/how-to-get-read-only-player-data)
* [CloudScript에서 읽기 전용 또는 내부 플레이어 데이터를 수정하는 방법](/services/playfab/player-progression/player-data/how-to-modify-read-only-internal-player-data)
* [타이틀 데이터 빠른 시작](/services/playfab/live-service-management/game-configuration/titledata/quickstart)
* [게시자 데이터 사용](/services/playfab/live-service-management/game-configuration/titledata/using-publisher-data)
* [CloudScript 빠른 시작](/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart)


## Related topics

- [PlayFab 플레이어 진행도 문서](/ko/services/playfab/player-progression/index.md)
- [CloudScript를 통해 읽기 전용 또는 내부 플레이어 데이터 수정](/ko/services/playfab/player-progression/player-data/how-to-modify-read-only-internal-player-data.md)
- [XBOX 플레이어 데이터 개요](/ko/services/xbox-services/player-data/live-playerdata-overview.md)
- [플레이어 사용자 지정 속성 빠른 시작](/ko/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
- [플레이어 데이터](/ko/services/xbox-services/player-data/index.md)
