> ## 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 GDPR - 플레이어 데이터 삭제

> DeleteMasterPlayerAccount를 사용하여 계정을 제거하거나 계정을 유지하면서 데이터를 지우는 등, GDPR 준수를 위해 PlayFab 플레이어 데이터를 삭제하는 방법입니다.

# 플레이어 데이터 삭제

이 문서에서는 PlayFab에서 플레이어의 데이터를 삭제하는 두 가지 주요 방법을 설명합니다. [전체 플레이어 계정을 삭제](#delete-a-player-account)하거나 [계정을 삭제하지 않고 데이터만 삭제](#delete-account-data-without-deleting-the-account)할 수 있습니다.

## 플레이어 계정 삭제

<Warning>
  Master Player 계정을 삭제하면 PlayFab에서 플레이어와 관련된 모든 데이터가 삭제되며 게임에서 플레이어를 삭제하는 것과 같습니다. DeleteMasterPlayerAccount API에는 플레이어와 관련된 데이터를 선택적으로 삭제하는 메커니즘이 없습니다. 데이터를 삭제하고 플레이어 계정을 유지하는 옵션은 Deleting Event Data와 Deleting Custom Data를 참조하세요.
</Warning>

Master Player 계정과 그 데이터를 삭제하는 것은 모든 SDK에서 사용할 수 있는 [DeleteMasterPlayerAccount](https://learn.microsoft.com/en-us/rest/api/playfab/admin/account-management/delete-master-player-account) Admin API를 사용하여 수행할 수 있습니다. [모든 데이터를 찾아야 합니다](/services/playfab/data-analytics/privacy-compliance/playfab-gdpr-deleting-and-exporting-player-data)를 읽어보세요.

플레이어를 삭제하는 요청을 하면 PlayFab은 대기열 처리 에이전트에 요청을 보내기 전에 핵심 시스템에서 플레이어의 개인 정보를 신속하게 제거합니다. 처리 에이전트는 보조 시스템과 하위 처리자에서 플레이어에 대한 남은 정보를 제거하는 작업을 수행합니다.

이 API는 즉시 반환되며 `JobReceiptId`를 제공합니다. 기록을 위해 이를 저장해야 합니다. JobReceiptId는 PlayFab이 플레이어를 삭제하는 요청을 수신했다는 검증입니다.

삭제가 완료되면 타이틀에 구성된 알림 이메일 주소로 이메일이 전송됩니다. 여기에는 처음에 API가 반환한 것과 동일한 `JobReceiptId`가 포함됩니다. 작업 완료는 PlayStream 이벤트도 트리거합니다.

Webhook 기능을 사용하면 원하는 엔드포인트에서 이러한 이벤트를 수신하도록 등록하고 필요에 따라 처리할 수 있습니다. 이벤트에는 `JobReceiptId`가 포함된 JSON blob이 포함됩니다.

다음 예에서는 [C# SDK](/services/playfab/sdks/c-sharp)로 Admin API를 사용하는 방법을 보여줍니다. 다른 SDK를 사용하려면 [PlayFab SDK](/services/playfab/sdks/playfab-sdk-intro) 목록에서 선택하세요.

```csharp theme={null}
public static async void StartDeleteMasterPlayerExample(Action<PlayFabError> callback)
{
    var task = await PlayFabAdminAPI.DeleteMasterPlayerAccountAsync(new DeleteMasterPlayerAccountRequest()
    {
        PlayFabId = PlayFabId
    });

    if(task.Error != null)
    {
        callback(task.Error);
    }

    var jobReceiptId = task.Result.JobReceiptId;
    var AffectedTitleList = task.Result.TitleIds; 
    foreach (var title in AffectedTitleList)
    {
        Console.WriteLine(string.Format("Delete Player - Title Affected: {0}", title));
    }

}
```

<Note>
  이 삭제는 *취소할 수 없기* 때문에 플레이어에게 삭제 요청의 범위와 영향에 만족하는지 확인하는 것을 권장합니다.
</Note>

작업이 확인되면 다음 코드를 사용하여 Master Player 계정 삭제를 진행합니다.

```csharp theme={null}
//Make sure we are 100% sure we want to do this.
if ( confirm successful ) {
   //create a variable to store a list of titles the player has already been removed from.
   listOfTitlesRemovedFrom
   //Hang on to the receipts from successful deletes.
   listOfReceipts
   foreach(title in <all my titles>){

       //You only need to remove the Master Player once per namespace, so check that you have not
       //already performed this action in the namespace, or you will get an error that
       //the player is already queued for deletion.
       if(title not in listOfTitlesRemovedFrom){
           foreach(pfid in PlayFabIdList){

              //Note: you should do some error handling around this API call.
              response = title.DeleteMasterPlayerAccount(pfid)
              foreach(titleId in response.titleids){
                listOfTitlesRemoved.add(titleId)
              }
              listOfReceipts.add(response.jobreceiptid)
           }
       }
   }

   //Save listOfReceipts somewhere as proof of deletion.

}
```

## 계정을 삭제하지 않고 계정 데이터 삭제

이 목록을 사용하여 플레이어의 계정과 관련된 이벤트 데이터를 삭제하는 데 도움을 받으세요.

### 이벤트 데이터 삭제

이벤트 데이터에는 PlayStream 이벤트와 원격 분석이 포함됩니다. 이벤트 데이터는 트랜잭션이며 사용자 활동에서 생성됩니다.

#### PlayFab Insights

PlayFab Insights는 PlayFab이 사용자를 대신하여 이벤트 데이터를 저장하는 완전 관리형 솔루션입니다.

플레이어가 요청할 때 [DeleteMasterPlayerEventData](https://learn.microsoft.com/en-us/rest/api/playfab/admin/account-management/delete-master-player-event-data) API를 사용하여 Insights 데이터를 삭제할 수 있습니다. 이렇게 하면 PlayFab Insights에서 플레이어와 관련하여 저장된 데이터만 삭제되며 다른 모든 데이터는 그대로 유지됩니다.

### 사용자 지정 데이터 삭제

Custom Data는 플레이어와 임의의 데이터를 연결할 수 있는 광범위한 기능 범주를 의미합니다. PlayFab은 게임 로직에서 데이터와 상호 작용할 수 있는 메서드를 제공하지만 그 외에는 데이터를 해석하거나 이해하지 않습니다.

#### 레거시 Player Data

다음 API를 사용하여 다양한 유형의 Player Data를 편집하고 삭제할 수 있습니다.

[UpdateUserData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-data), [UpdateUserInternalData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-internal-data), [UpdateUserReadOnlyData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-read-only-data), [UpdateUserPublisherData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-publisher-data), [UpdateUserPublisherInternalData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-publisher-internal-data), [UpdateUserPublisherReadOnlyData](https://learn.microsoft.com/en-us/rest/api/playfab/server/player-data-management/update-user-publisher-read-only-data)

이러한 각 API는 **KeysToRemove** 매개 변수를 받으며, 이는 플레이어 프로필에서 삭제해야 할 Player Data 키 목록을 입력받습니다.

#### Entity Object

[Entity Objects](/services/playfab/live-service-management/game-configuration/entities/entity-objects)는 SetObjects API를 사용하여 삭제할 수 있습니다. 요청 본문의 Objects 배열에서 삭제하려는 각 개체에 대해 ObjectName을 지정하고 DeleteObject를 true로 설정하여 항목을 만듭니다. 아래는 요청 본문의 예입니다.

```HTTP theme={null}
{ 
    "Entity": { 
        "Id": "<The ID of the target entity>", 
        "Type": "<either ‘title_player_account’, ‘master_player_account’, or ‘character’>" 
    }, 
    "Objects": [ 
        { 
            "ObjectName": "<Name of object to delete>", 
            "DeleteObject": true 
        } 
    ] 
} 
```

#### Entity Files

[Entity Files](/services/playfab/live-service-management/game-configuration/entities/entity-files)는 [DeleteFiles](https://learn.microsoft.com/en-us/rest/api/playfab/data/file/delete-files) API를 사용하여 삭제합니다.


## Related topics

- [PlayFab GDPR - 플레이어 데이터 삭제 및 내보내기](/ko/services/playfab/data-analytics/privacy-compliance/playfab-gdpr-deleting-and-exporting-player-data.md)
- [PlayFab 플레이어 진행도 문서](/ko/services/playfab/player-progression/index.md)
- [PlayFab GDPR - 플레이어 데이터 내보내기](/ko/services/playfab/data-analytics/privacy-compliance/gdpr-exporting-player-data.md)
- [PlayFab 데이터 및 분석 문서](/ko/services/playfab/data-analytics/index.md)
- [PlayFab이란 무엇인가요?](/ko/services/playfab/get-started/what-is-playfab.md)
