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

# 게임 서버 할당 및 Visual Studio 디버거 연결

> RequestMultiplayerServer로 PlayFab 멀티플레이어 게임 서버를 할당하고 실행 중인 세션에 Visual Studio 디버깅 도구를 연결하는 방법을 알아봅니다.

## 멀티플레이어 세션 할당

PlayFab multiplayer servers 2.0에서는 [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.requestmultiplayerserver) API를 사용하여 멀티플레이어 서버 애플리케이션의 인스턴스를 할당할 수 있습니다.

일반적으로 이 API는 특정 title에 구성된 PlayFab 개발자 시크릿 키를 사용하여 자체 서비스(매치메이킹 서비스 또는 로비 서비스일 수 있음)에서 호출됩니다. 시크릿 키에 대한 자세한 내용은 [시크릿 키 관리](/services/playfab/live-service-management/gamemanager/secret-key-management)를 참조하세요.

플레이어를 모으고 서버를 할당하는 일반적인 패턴은 다음과 같습니다:

1. 클라이언트가 네트워크 QoS 정보를 수집합니다.
2. 클라이언트가 사용자 지정 매치메이킹 서비스와 상호 작용하거나 소셜 초대를 통해 모입니다.
3. 사용자 지정 매치메이킹 서비스가 우선순위가 지정된 지역 목록을 사용하여 그룹에 세션을 할당합니다.

**RequestMultiplayerServer**에는 몇 가지 주요 매개 변수가 있습니다:

* **BuildID** - 할당할 특정 서버 빌드입니다.
* **SessionID**- 세션의 식별자입니다. *호출자가 생성한 GUID 문자열입니다*. 동일한 논리적 세션에 대한 이 API 재시도는 동일한 식별자를 재사용해야 합니다. 이렇게 하면 호출자 재시도 동작으로 인해 불필요한 서버가 만들어질 가능성이 줄어듭니다.
* **SessionCookie** - 활성화 시 게임 서버 SDK를 통해 할당된 세션에 전달되는 임의의 데이터입니다. 이 필드의 일반적인 사용법은 게임 서버가 클라이언트를 인증하는 데 사용하는 공유 키를 전달하는 것입니다. *데이터는 4킬로바이트보다 작아야 합니다*.
* **PreferredRegions** - 서버 할당에 사용되는 지역의 순서 목록입니다. 지역 순위를 매길 때 클라이언트 장치에서 수집한 네트워크 QoS 측정을 주요 요인으로 사용하는 것이 좋습니다.

성공적인 할당은 다음 정보를 반환합니다:

* 서버의 **IPv4** 주소입니다.
* **TCP/UDP** 포트 매핑 (자세한 내용은 [클라이언트를 게임 서버에 연결](/services/playfab/multiplayer/servers/connecting-clients-to-game-servers) 참조).
* 서버의 **Region**입니다.

<Note>
  MpsAllocatorSample([여기](https://github.com/PlayFab/MpsSamples/tree/master/MpsAllocatorSample)에 있음)를 사용하여 게임 개발 중에 손쉽게 게임 서버를 할당할 수 있습니다.
</Note>

## 클라이언트 할당

멀티플레이어 서버는 비용이 많이 들고 강력합니다. 기본적으로 PlayFab 개발자 시크릿 키를 사용해 *자체* 신뢰할 수 있는 서비스에서만 멀티플레이어 서버를 요청할 수 있습니다.

그러나 플레이어 장치에서 *직접* 서버를 할당하면 서비스 간 호출을 구현하는 비용을 절감할 수 있으며 일부 상황에서 유용할 수 있습니다.

클라이언트 할당을 활성화하려면:

* 왼쪽 메뉴에서 **Settings**를 선택합니다.
* **API Features** 탭을 선택합니다.
* 그런 다음 **Allow Client to start games** 옵션을 활성화합니다.

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=3096df2ab104fcd3bed5015146b33436" alt="Game Manager - Settings - API Features - Allow Client to start games" width="1133" height="1200" data-path="images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png" />

이 설정이 활성화되면 title과 연결된 모든 플레이어의 엔터티 토큰을 사용하여 [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.requestmultiplayerserver)를 호출할 수 있습니다.

## 배포된 멀티플레이어 서버 디버깅

Azure에 배포된 게임 서버를 원격으로 디버깅하고 싶을 수 있습니다. Visual Studio를 사용하려면 현재 컨테이너에 Visual Studio 원격 디버깅 도구를 설치하고 구성해야 합니다.

<Note>
  다음 절차는 안전하지 않고 인증되지 않은 디버깅을 활성화합니다.
</Note>

다음 절차는 개발 및 테스트를 위한 서버 빌드에만 *적용해야* 하며 플레이어 대상 환경에서는 *일반적으로 피해야* 합니다.

1. VS2017 원격 디버깅 도구를 가져옵니다:

```cmd theme={null}
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
```

2. 이러한 도구를 게임 서버 자산 패키지에 포함시킵니다.
3. Game Manager 또는 Entity API로 서버 빌드를 만들 때 포트 4022 TCP를 디버그 포트로 구성합니다.
4. 원격 디버깅을 활성화하려면 컨테이너 내에서 `msvsmon`을 실행해야 합니다. 일반적인 패턴은 CMD 스크립트를 Game Start 명령으로 지정하고, 게임 서버 실행 파일 외에도 `msvsmon`을 실행하기 위해 명령줄 인수를 사용하는 것입니다.
5. 다음 옵션으로 `msvsmon`을 한 번 실행합니다:

```cmd theme={null}
/prepcomputer /quiet
```

6. 다음 플래그로 `msvsmon`을 실행합니다(아래 표시).

```cmd theme={null}
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022
```

<Note>
  포트가 이미 사용 중일 때 프로그램이 프로세스 종료 코드를 처리할 수 있도록, 열려 있지 않은 임의의 포트에 바인딩하는 대신 포트를 *구체적으로 지정하는 것*을 권장합니다.
</Note>

7. 게임 서버를 할당합니다.
8. allocate 호출에서 반환된 외부 디버그 포트를 사용해 VS로 디버깅을 시도합니다.


## Related topics

- [Visual Studio에서 원격 Windows 디바이스의 PC 프로젝트 디버깅하기](/ko/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio-remote-windows.md)
- [XBOX PC Remote Tools: 2026년 3월 (2603) 릴리스 노트](/ko/tools/tools-pc/xbox-pc-remote-tools/release-notes/2603.md)
- [게임 서버를 디버깅하기 위해 직접 연결](/ko/services/playfab/multiplayer/servers/directly-debugging-game-servers.md)
- [Visual Studio를 사용한 XBOX 프로젝트 디버깅](/ko/tools/tools-console/visualstudio/debugging-with-visualstudio.md)
- [GSDK 프로젝트 테스트 및 디버깅](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-local-deployment-and-debugging.md)
