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

# 대상 세션 초기화 및 QoS

> 관리형 초기화 단계와 게임플레이 전에 피어 간 서비스 품질 검사를 다루는 XBOX용 SmartMatch의 대상 세션 초기화.

이 항목은 타이틀이 대상 세션에 매칭될 때 충분한 수의 플레이어가 참가했으며 연결할 수 있는지 확인하는 방법을 설명합니다.

플레이어 그룹은 SmartMatch 매치메이킹에 의해 대상 세션에 매칭됩니다. 타이틀은 필요한 경우 플레이어가 서로 성공적으로 연결할 수 있도록 충분한 수의 플레이어가 참가했음을 확인하기 위한 단계를 수행해야 합니다. 이 프로세스는 *대상 세션 초기화*로 알려져 있습니다.

피어 투 피어 네트워크 토폴로지를 사용하는 게임의 경우, 대상 세션 초기화의 중요한 측면은 서비스 품질(QoS) 측정 및 평가입니다.
관련된 작업은 다음과 같습니다.

* XBOX One(또는 이후) 콘솔 간 또는 콘솔과 서버 간의 지연 시간 및 대역폭 측정
* 노드 간 네트워크 연결이 양호한지 여부를 결정하기 위한 결과 측정값 평가

다음 플로차트는 대상 세션 초기화 및 QoS 작업을 구현하는 방법을 보여줍니다.

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Multiplayer_2015_Matchmaking_QoS.png?fit=max&auto=format&n=gzrdvT5kpqAXKEQt&q=85&s=d581bf4774ce705effe9420a8246f98a" alt="대상 세션 초기화 및 QoS 작업을 구현하는 방법을 보여주는 매치메이킹 QoS 플로차트 이미지" width="1339" height="1090" data-path="images/gdk/services/Multiplayer_2015_Matchmaking_QoS.png" />

## 관리형 초기화

Multiplayer Session Directory(MPSD)는 *관리형 초기화*라는 기능을 지원하며, 이를 통해 세션에 관련된 클라이언트 간에 대상 세션 초기화 프로세스를 조정합니다.
MPSD는 세션에 대한 초기화 단계 및 관련 시간 초과를 자동으로 추적합니다. MPSD는 또한 필요한 경우 클라이언트 간의 연결을 평가합니다.
관리형 초기화는 [XblMultiplayerInitializationStage](/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage) 열거형으로 표현됩니다.

<Note>MPSD 관리형 초기화 기능을 활용하려면 타이틀에서 SmartMatch 매치메이킹을 사용하는 것을 강력히 권장합니다.</Note>

### 관리형 초기화 에피소드 및 단계

매치메이킹이 세션에 새 플레이어를 추가할 때마다 대상 세션은 관리형 초기화를 거칩니다.
SmartMatch는 세션 멤버를 Reserved 사용자 상태로 추가하며, 이는 각 멤버가 슬롯을 차지하지만 아직 세션에 참가하지 않았음을 의미합니다.
각 새 플레이어 그룹은 새로운 초기화 에피소드를 트리거합니다.

초기화가 완료되면 각 플레이어는 프로세스에 성공하거나 실패합니다.
초기화에 성공한 플레이어는 대상 세션을 사용하여 플레이할 수 있습니다.
실패한 플레이어는 다른 세션에 매칭되도록 매치메이킹에 다시 제출되어야 합니다.

`preserveSession` 매개변수가 `Always`로 설정되어 매치메이킹에 제출된 세션의 경우, 기존 세션 멤버는 MPSD가 그들이 적절히 설정되어 있다고 가정하기 때문에 초기화를 거치지 않습니다.

각 관리형 초기화 에피소드는 다음 단계로 구성됩니다.

* **참가:** 세션 멤버는 사용자 상태를 `Reserved`에서 `Active`로 이동하기 위해 자신을 세션에 씁니다. 안전한 디바이스 주소와 같은 기본 데이터를 업로드할 수 있습니다.
* **측정:** 피어 기반 토폴로지의 경우, 세션 멤버는 서로에 대한 QoS를 측정한 다음 결과를 세션에 업로드합니다.
* **평가:** MPSD는 지난 두 단계의 결과를 평가한 다음, 세션 또는 멤버가 성공적으로 초기화되었는지 여부를 결정합니다.

타이틀 코드는 세션에서 작동하여 각 플레이어(따라서 세션)를 참가 및 측정 단계를 통해 진행시킵니다.
그런 다음 타이틀은 평가 단계가 성공하거나 실패한 후 플레이를 시작하거나 매치메이킹으로 돌아갈 수 있습니다.

## 초기화를 위한 대상 세션 구성

타이틀은 초기화되는 대상 세션의 상수를 사용하여 관리형 초기화 프로세스를 구성할 수 있습니다.
이러한 상수는 버전 107의 세션 템플릿에서 */constants/system* 아래에 설정됩니다. 이 템플릿 버전을 권장합니다.

다음 두 가지 유형의 구성 설정을 만들 수 있습니다.

* 관리형 초기화 프로세스 전체를 구성하는 설정

* QoS 요구 사항을 구성하는 설정

일반적인 타이틀 시나리오에 대한 세션 템플릿의 예는 [멀티플레이어 세션 템플릿](/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates) 및 [Multiplayer Session Directory 개요](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview)를 참조하세요.

<Note>대상 세션 초기화 구성에서 QoS 요구 사항이 정의되지 않은 경우, 초기화 중 측정 단계는 생략됩니다.</Note>

### 관리형 초기화 전체 구성

관리형 초기화를 전체적으로 제어하려면 다음 필드를 설정합니다.

관리형 초기화를 제어하기 위해 설정할 필드는 `/constants/system/memberInitialization` 객체의 일부입니다.

* `joinTimeout`: 초기화 에피소드가 시작된 후 MPSD가 각 멤버가 참가하기를 기다리는 시간을 지정합니다. 기본값은 10초입니다.

* `measurementTimeout`: 측정 단계가 시작된 후 MPSD가 각 멤버가 QoS 측정 결과를 업로드하기를 기다리는 시간을 지정합니다. 기본값은 30,000초입니다.

* `membersNeededToStart`: 첫 번째 초기화 에피소드가 성공하기 위해 초기화에 성공해야 하는 멤버의 수를 지정합니다. 기본값은 1입니다.

<Note>이 임계값이 충족되지 않으면 모든 멤버가 초기화에 실패합니다.</Note>

### QoS 요구 사항 구성

QoS는 타이틀이 피어 투 피어 또는 피어 투 호스트 토폴로지를 사용하는 경우에만 초기화 중에 필요합니다.
각 토폴로지는 */constants/system/* 아래의 토폴로지별 상수에 매핑됩니다.

#### 피어 투 피어 토폴로지에 대한 QoS 요구 사항 구성

<Note>타이틀이 피어 투 피어 토폴로지에 대한 QoS 요구 사항 설정을 하는 것은 드문 일입니다. 이러한 설정은 매우 제한적이며 엄격한 네트워크 주소 변환(NAT)이 있는 플레이어에게 문제를 일으킵니다.</Note>

피어 투 피어 토폴로지 QoS 요구 사항은 `peerToPeerRequirements` 객체에서 설정할 수 있습니다.
모든 클라이언트는 다른 모든 클라이언트에 연결할 수 있어야 합니다.

`peerToPeerRequirements` 객체에는 다음과 같은 관련 필드가 있습니다.

* `latencyMaximum`: 두 클라이언트 간의 최대 지연 시간을 지정합니다

* `bandwidthMinimum`: 두 클라이언트 간의 최소 대역폭을 지정합니다

#### 피어 투 호스트 토폴로지에 대한 QoS 요구 사항 구성

피어 투 호스트 토폴로지 QoS 요구 사항은 `peerToHostRequirements` 객체에서 설정할 수 있습니다.
모든 클라이언트는 단일 공통 호스트에 연결할 수 있어야 합니다.
이 객체가 구성되고 초기화가 성공하면, MPSD는 잠재적인 호스트인 클라이언트의 초기 목록, 즉 *호스트 후보*를 만듭니다.

다음 필드를 설정합니다.

* `latencyMaximum`: 각 피어와 호스트 간의 최대 지연 시간을 지정합니다

* `bandwidthDownMinimum`: 각 피어와 호스트 간의 최소 다운스트림 대역폭을 지정합니다

* `bandwidthUpMinimum`: 각 피어와 호스트 간의 최소 업스트림 대역폭을 지정합니다

* `hostSelectionMetric`: 호스트를 선택하는 데 사용된 메트릭을 지정합니다

## 참고 항목

[멀티플레이어 세션 템플릿](/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates)

[Multiplayer Session Directory 개요](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview)


## Related topics

- [XblMultiplayerInitializationStage](/ko/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage.md)
- [XblMultiplayerMeasurementFailure](/ko/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayermeasurementfailure.md)
- [XblMultiplayerMetrics](/ko/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayermetrics.md)
- [XblMultiplayerPeerToHostRequirements](/ko/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerpeertohostrequirements.md)
- [멀티플레이어 FAQ 및 문제 해결](/ko/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
