> ## 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.

# 게임 저장 도구

> Fiddler로 XBOX 게임 저장 트래픽을 검사하고 xbstorage 및 gamesaveutil 명령줄 도구를 사용하여 로컬 저장 데이터를 내보내고 가져오세요.

이 문서에서는 네트워크 트래픽을 검사하기 위해 Fiddler를 사용하는 방법, 디버깅에 필수적인 도구와 기법, 게임 저장 조작에 대해 설명합니다.

## 게임 저장 네트워크 트래픽 검사

Fiddler를 사용하여 타이틀 간에 오가는 네트워크 트래픽을 검사하고 디버깅하세요. Fiddler 설정에 대한 자세한 내용은 다음 문서를 참조하세요.

* [XBOX 개발 키트에서 Fiddler](/build/console-features/networking/tools/fiddler-setup-networking)
* [Windows PC에서 Fiddler](/build/console-features/networking/tools/fiddler-pc)

Fiddler는 타이틀이 타이틀 잠금을 획득했는지 또는 해제했는지 확인하며, 이는 데이터가 클라우드와 언제 동기화되는지 결정합니다.

다음은 타이틀이 잠금을 성공적으로 획득할 때의 `PUT` 요청입니다.

```
PUT /connectedstorage/users/xuid(<XUID>)/scids/<TITLE SCID>/lock HTTP/1.1  
```

다음은 타이틀이 잠금을 해제할 때의 요청입니다.

```
DELETE /connectedstorage/users/xuid(<XUID>)/scids/<TITLE SCID>/lock HTTP/1.1
```

사용 중인 게임 저장 API에 따라 타이틀은 서로 다른 지점에서 잠금을 획득하고 해제합니다.

| 게임 저장 API      | 잠금 획득                                                                                                                                                                                                          | 잠금 해제                                                                                  | 참고                                                                                                                                                                                                            |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| XGameSaveFiles | [XGameSaveFilesGetFolderWithUiAsync](/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync)                                                                                            | 디바이스가 대기 중인 변경 사항 업로드를 완료하면 자동으로 잠금을 해제합니다. 이 프로세스는 타이틀이 종료된 후 약 15\~30초 정도 걸립니다.      | 타이틀이 재개될 때 [XGameSaveFilesGetFolderWithUiAsync](/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync)를 호출하여 잠금을 다시 획득합니다. API 호출의 폴더 경로는 세션 간에 동일하게 유지됩니다. 잠금이 더 이상 활성화되지 않을 수 있습니다. |
| XGameSave      | [XGameSaveInitializeProvider](/reference/system/xgamesave/functions/xgamesaveinitializeprovider) 또는 [XGameSaveInitializeProviderAsync](/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync) | [XGameSaveCloseProvider](/reference/system/xgamesave/functions/xgamesavecloseprovider) | 타이틀은 공급자의 리소스를 해제하기 위해 [XGameSaveCloseProvider](/reference/system/xgamesave/functions/xgamesavecloseprovider)를 호출합니다. 이를 호출하지 않으면 메모리 누수가 발생합니다.                                                              |

동기화 프로세스에 대한 자세한 내용은 [게임 저장 동기화 흐름 이해](/build/core-features/common/game-save/game-saves-syncing)를 참조하세요.

## 게임 저장 조작

게임 저장과 직접 상호 작용하기 위한 두 가지 도구가 제공됩니다.

* `xbstorage`: 콘솔의 로컬 게임 저장에 사용됩니다. 자세한 내용은 [콘솔의 게임 저장 데이터 관리(xbstorage.exe)](/tools/tools-console/commandlinetools/xbstorage)를 참조하세요.
* `xgamesaveutil`: PC의 로컬 게임 저장에 사용됩니다. 자세한 내용은 [PC의 게임 저장 데이터 관리(xgamesaveutil.exe)](/tools/tools-pc/commandlinetools/gr-xgamesaveutil)를 참조하세요.

이러한 도구를 사용하면 .xml 파일을 통해 개별 사용자 또는 머신 공급자 저장 공간을 가져오고 내보낼 수 있습니다.
모든 도구 작업 목록은 각 도구의 문서를 참조하세요.

<Info>가져오기 및 내보내기 동작은 콘솔과 PC 사이에 다릅니다. 자세한 내용은 아래 세부 정보와 각 도구 페이지를 참조하세요.</Info>

### 콘솔(xbstorage)

콘솔에서 `xbstorage`는 콘솔의 게임 저장 서비스를 통해 작동합니다. 도구가 작업을 수행하면 시스템은 타이틀이 직접 작업을 수행하는 것처럼 동작합니다.

* **가져오기** 데이터는 콘솔이 먼저 클라우드와 동기화(잠금을 획득하고 원격 변경 사항을 다운로드)한 다음, 가져온 데이터를 로컬에 쓴 다음, 가져온 데이터를 클라우드에 업로드하기 시작합니다. 업로드는 잠금이 해제되기 전에 백그라운드에서 완료됩니다.
* **내보내기** 데이터는 콘솔이 먼저 클라우드와 동기화한 다음, 로컬 데이터를 출력 파일에 복사합니다.

### PC(xgamesaveutil)

PC에서 `xgamesaveutil`은 게임 저장 서비스를 거치지 않고 로컬 디스크에 직접 데이터를 씁니다.

* **가져오기** 데이터는 로컬 디스크에 컨테이너와 blob을 씁니다. 이 도구는 가져오기 전이나 후에 클라우드와 동기화하지 않으며 클라우드에 업로드를 트리거하지도 않습니다. 가져온 데이터는 다음에 타이틀이 실행되고 게임 저장 공급자를 획득할 때 클라우드에 업로드됩니다.
* **내보내기** 데이터는 로컬 디스크에서 직접 컨테이너를 읽습니다. 읽기 전에 클라우드와 동기화하지 않습니다.

이러한 도구 중 하나를 실행하는 디바이스가 잠금을 획득할 수 없거나 클라우드와 로컬 컨테이너 간의 충돌을 감지하면 시스템은 사용자가 충돌을 해결하지 않을 것처럼 상황을 처리합니다. 이 상태에서 디바이스는 컨테이너의 한 버전을 유지합니다. 디바이스는 다음에 타이틀이 실행될 때까지 오프라인 상태인 것처럼 동작합니다.

## 참고 API 문서

* [XGameSave(API 콘텐츠)](/reference/system/xgamesave/xgamesave_members)
  * 함수
    * [XGameSaveInitializeProvider](/reference/system/xgamesave/functions/xgamesaveinitializeprovider)
    * [XGameSaveInitializeProviderAsync](/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync)
    * [XGameSaveCloseProvider](/reference/system/xgamesave/functions/xgamesavecloseprovider)
* [XGameSaveFiles(API 콘텐츠)](/reference/system/xgamesavefiles/xgamesavefiles_members)
  * 함수
    * [XGameSaveFilesGetFolderWithUiAsync](/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync)

## 참고 항목

[게임 저장 TOC](/build/core-features/common/game-save/game-saves-toc)
