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

# 세션 템플릿 상수

> XBOX 멀티플레이어 세션을 구성하는 사전 정의된 MPSD 세션 템플릿 상수(system, capabilities, metrics, memberInitialization, QoS)에 대한 참조입니다.

<a id="top" />

이 항목에서는 세션 템플릿 버전 107을 기반으로 하는 멀티플레이어 세션 템플릿의 사전 정의된 요소에 대해 설명합니다. 이러한 요소는 멀티플레이어 세션에 대한 설정을 정의합니다.

**목차**

* [system](#system)
* [capabilities](#capabilities)
* [metrics](#metrics)
* [memberInitialization](#memberinitialization)
* [peerToPeerRequirements](#peertopeerrequirements)
* [peerToHostRequirements](#peertohostrequirements)
* [measurementServerAddresses](#measurementserveraddresses)
* [cloudComputePackage(사용되지 않음)](#cloudcomputepackage)
* [arbitration(사용되지 않음)](#arbitration)
* [broadcastViewerTitleIds](#broadcastviewertitleids)
* [ownershipPolicies](#ownershippolicies)

<a id="system" />

## system

| 시스템 상수                         | 설명                                                                                                                                     | 유효한 값                                         | 기본값    |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | ------ |
| `version`                      | 세션 템플릿의 버전입니다.                                                                                                                         | 1 - n                                         | 없음     |
| `maxMembersCount`              | 멀티플레이어 액티비티에서 지원되는 총 세션 구성원 슬롯 수입니다.                                                                                                   | 일반 세션의 경우 1 - 100, 대형 세션의 경우 101+             | 100    |
| `visibility`                   | 다른 사용자가 세션을 볼 수 있거나 참가할 수 있는지 여부를 나타내는 세션의 표시 상태입니다.                                                                                   | "private", "visible", "open"                  | "open" |
| `inviteProtocol`               | 이 상수를 "game"으로 설정하면 초대받은 사용자가 세션에 초대되었을 때 알림을 받을 수 있습니다.                                                                               | "game", "tournamentgame", "chat", "gameparty" | 없음     |
| `reservedRemovalTimeout`       | 구성원 예약에 대한 시간 초과(밀리초 단위)입니다. 값이 0이면 즉시 시간 초과를 나타냅니다. 값이 `null`이면 무한으로 간주됩니다.                                                           | 0 - n, `null`                                 | 30000  |
| `inactiveRemovalTimeout`       | 구성원이 비활성으로 간주되는 시간 초과(밀리초 단위)입니다. 값이 0이면 즉시 시간 초과를 나타냅니다. 값이 `null`이면 무한으로 간주됩니다.                                                      | 0 - n, `null`                                 | 0      |
| `readyRemovalTimeout`          | 구성원이 준비 상태로 간주되는 시간 초과(밀리초 단위)입니다. 값이 0이면 즉시 시간 초과를 나타냅니다. 값이 `null`이면 무한으로 간주됩니다.                                                     | 0 - n, `null`                                 | 180000 |
| `sessionEmptyTimeout`          | 빈 세션에 대한 시간 초과(밀리초 단위)입니다. 값이 0이면 즉시 시간 초과를 나타냅니다. 값이 `null`이면 무한으로 간주됩니다.                                                             | 0 - n, `null`                                 | 0      |
| `capabilities`                 | 세션의 기능을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [capabilities](#capabilities) 섹션을 참조하세요.                                                          | 해당 없음                                         | 해당 없음  |
| `metrics`                      | 세션의 구성원이 충족해야 하는 대기 시간 및 대역폭 속도와 같은 타이틀 정의 서비스 품질(QoS) 요구 사항 집합을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [metrics](#metrics) 섹션을 참조하세요.           | 해당 없음                                         | 해당 없음  |
| `memberInitialization`         | 새 구성원이 세션에 참가할 때 적용되는 시간 초과 및 초기화 요구 사항을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [`memberInitialization`](#memberinitialization) 섹션을 참조하세요.       | 해당 없음                                         | 해당 없음  |
| `peerToPeerRequirements`       | 피어 투 피어 메시 연결의 네트워크 QoS 요구 사항을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [peerToPeerRequirements](#peertopeerrequirements) 섹션을 참조하세요.               | 해당 없음                                         | 해당 없음  |
| `peerToHostRequirements`       | 피어-투-호스트 연결의 네트워크 QoS 요구 사항을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [peerToHostRequirements](#peertohostrequirements) 섹션을 참조하세요.                 | 해당 없음                                         | 해당 없음  |
| `measurementServerAddresses`   | QoS 측정을 결정하는 데 사용되는 잠재적인 데이터센터의 컬렉션을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [measurementServerAddresses](#measurementserveraddresses) 섹션을 참조하세요. | 해당 없음                                         | 해당 없음  |
| `cloudComputePackage`(사용되지 않음) | 할당할 XBOX Live Compute 클라우드 패키지의 속성을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [cloudComputePackage](#cloudcomputepackage) 섹션을 참조하세요.                | 해당 없음                                         | 해당 없음  |
| `arbitration`(사용되지 않음)         | 토너먼트에서 구성원이 중재 결과를 제출하는 시간 초과를 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [arbitration(사용되지 않음)](#arbitration) 섹션을 참조하세요.                            | 해당 없음                                         | 해당 없음  |
| `broadcastViewerTitleIds`      | 세션에 대한 읽기 권한을 항상 가져야 하는 타이틀 ID 목록을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [broadcastViewerTitleIds](#broadcastviewertitleids) 섹션을 참조하세요.         | 해당 없음                                         | 해당 없음  |
| `ownershipPolicies`            | 세션 소유권과 관련된 정책을 지정합니다. 자세한 내용은 이 항목의 뒷부분에 있는 [ownershipPolicies](#ownershippolicies) 섹션을 참조하세요.                                        | 해당 없음                                         | 해당 없음  |

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="capabilities" />

## capabilities

기능은 세션 템플릿에서 선택적으로 설정되는 부울 값입니다.
기능이 필요하지 않으면 타이틀이 동적 세션 기능을 필요로 하지 않는 한 세션 생성 시 기능이 지정되지 않도록 템플릿에 빈 `capabilities` 속성을 설정해야 합니다.

| 기능                                   | 설명                                                                                                                                  | 유효한 값           | 기본값     |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------- |
| `connectivity`                       | 세션이 피어 연결을 지원하는지 여부를 나타냅니다. 이 값이 `false`이면 세션은 메트릭을 활성화할 수 없고 세션 구성원은 `secureDeviceAddress`를 설정할 수 없습니다. 이 기능은 대형 세션에서는 설정할 수 없습니다. | `true`, `false` | `false` |
| `suppressPresenceActivityCheck`      | `true`이면 현재 상태 확인을 해제합니다.                                                                                                           | `true`, `false` | `false` |
| `gameplay`                           | 로비 또는 매치메이킹과 같은 설정 또는 메뉴 시간과 달리 세션이 실제 게임 플레이를 나타내는지 여부를 나타냅니다. `true`이면 세션은 게임 플레이 모드입니다.                                          | `true`, `false` | `false` |
| `large`                              | 세션이 대형 세션인지(100명 이상의 구성원) 여부를 나타냅니다. 대형 세션은 Multiplayer Manager와의 사용을 지원하지 않습니다.                                                    | `true`, `false` | `false` |
| `connectionRequiredForActiveMembers` | 구성원이 활성 상태가 되려면 연결이 필요한지 여부를 나타냅니다.                                                                                                 | `true`, `false` | `false` |
| `cloudCompute`(사용되지 않음)              | 클라이언트가 세션을 대신하여 클라우드 컴퓨팅 인스턴스가 할당되도록 요청할 수 있도록 합니다. XBOX Live Compute가 더 이상 서비스로 제공되지 않으므로 사용되지 않습니다.                               | `true`, `false` | `false` |
| `autoPopulateServerCandidates`       | `serverMeasurements`에서 `serverConnectionStringCandidates`를 자동으로 계산하고 설정합니다. 이 기능은 대형 세션에서는 설정할 수 없습니다.                              | `true`, `false` | `false` |
| `userAuthorizationStyle`             | 세션이 강력한 타이틀 ID가 없는 플랫폼의 호출을 지원하는지 여부를 나타냅니다. 이 기능은 대형 세션에서는 설정할 수 없습니다.                                                             |                 |         |

`userAuthorizationStyle` 기능을 `true`로 설정하면 `readRestriction` 및 `joinRestriction`에 대한 세션 기본값이 `none` 대신 `local`이 됩니다. 이는 타이틀이 게임 세션에 참가하기 위해 검색 핸들 또는 전송 핸들을 사용해야 함을 의미합니다. | `true`, `false` | `false`
`crossPlay` | 세션이 Windows PC, XBOX One, XBOX Series 디바이스 간의 크로스플레이를 지원함을 나타냅니다. | `true`, `false` | `true`
`broadcast` | 세션이 방송을 나타냄을 나타냅니다. 세션 이름은 방송자의 xuid여야 합니다. `large` 기능이 필요합니다. | `true`, `false` | `false`
`team` | 세션이 토너먼트 팀을 나타냄을 나타냅니다. 이 기능은 `large` 또는 `gameplay` 세션에서는 설정할 수 없습니다. | `true`, `false` | `false`
`arbitration` | `arbitration` 서버 항목을 추가하는 서비스 주체가 세션을 만들어야 함을 나타냅니다. `gameplay`가 필요하지만 `large` 세션에서는 설정할 수 없습니다. | `true`, `false` | `false`
`hasOwners` | 세션에 특정 구성원이 소유자인 것을 기반으로 하는 보안 정책이 있음을 나타냅니다. | `true`, `false` | `false`
`searchable` | 세션이 검색 핸들의 대상 세션이 될 수 있음을 나타냅니다. `userAuthorizationStyle`과 `searchable` 기능이 설정된 경우 `hasOwners`도 설정해야 합니다. | `true`, `false` | `false`

#### 예제: capabilities

```json theme={null}
"capabilities": {
    "connectivity": true,  
    "suppressPresenceActivityCheck": true,
    "gameplay": true,
    "large": true,
    "connectionRequiredForActiveMembers": true,
    "cloudCompute": true,
    "autoPopulateServerCandidates": true,
    "userAuthorizationStyle": true,
    "crossPlay": true,  
    "broadcast": true,  
    "team": true,
    "arbitration": true,
    "hasOwners": true,
    "searchable": true  
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="metrics" />

## metrics

`metrics` 속성이 지정되지 않은 경우 QoS 요구 사항을 충족하는 데 필요한 값이 기본값으로 사용됩니다.

`metrics` 속성이 지정된 경우 값은 QoS 요구 사항을 충족하기에 충분해야 합니다.

이 요소는 세션에 `connectivity` 기능이 설정된 경우에만 유효합니다.

| 메트릭             | 설명                                                 | 유효한 값           | 기본값          |
| --------------- | -------------------------------------------------- | --------------- | ------------ |
| `latency`       | 세션 템플릿에 `latencyMaximum`이 지정되어 있는지 여부를 나타냅니다       | `true`, `false` | 이 설명을 참조하세요. |
| `bandwidthDown` | 세션 템플릿에 `bandwidthDownMinimum`이 지정되어 있는지 여부를 나타냅니다 | `true`, `false` | 이 설명을 참조하세요. |
| `bandwidthUp`   | 세션 템플릿에 `bandwidthUpMinimum`이 지정되어 있는지 여부를 나타냅니다   | `true`, `false` | 이 설명을 참조하세요. |
| `custom`        | 세션 템플릿에 사용자 지정 메트릭이 지정되어 있는지 여부를 나타냅니다             | `true`, `false` | 이 설명을 참조하세요. |

#### 예제: metrics

```json theme={null}
"metrics": {
    "latency": true,
    "bandwidthDown": true,
    "bandwidthUp": true,
    "custom": true
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="memberinitialization" />

## memberInitialization

`memberInitialization` 속성이 설정된 경우, 세션 생성 후 또는 새 구성원이 세션에 참가할 때 클라이언트 시스템 또는 타이틀에서 초기화를 수행할 것을 예상합니다.

시간 초과 및 초기화 단계는 메트릭이 설정된 경우 QoS 측정을 포함하여 세션에 의해 자동으로 추적됩니다.
이러한 시간 초과는 `initializationEpisode`가 설정된 구성원에 대해 세션의 예약 및 준비 시간 초과를 재정의합니다.

`memberInitialization`은 대형 세션에서 지정할 수 없습니다.

| 요소            | 설명                                                       | 유효한 값 | 기본값 |
| ------------- | -------------------------------------------------------- | ----- | --- |
| `joinTimeout` | 구성원이 세션에 참가해야 하는 시간(밀리초)을 나타냅니다. 참가에 실패한 사용자의 예약은 제거됩니다. |       |     |

**참고:** 기본 지속 시간은 일반적인 타이틀 실행에 충분하지만, Multiplayer Session Directory(MPSD) 흐름 중에 타이틀이 디버깅되는 경우 참가 시간 초과가 발생할 수 있습니다. 디버깅하는 동안 세션에 대해 이 기본값을 재정의하고 늘리세요.| 0 - n | 10000
`measurementTimeout` | 세션 구성원이 측정을 업로드해야 하는 시간(밀리초)을 나타냅니다. 측정 업로드에 실패한 구성원은 "timeout"의 실패 이유로 표시됩니다.  | 0 - n | 30000
`evaluationTimeout` | 외부 평가가 측정을 업로드해야 하는 시간(밀리초)을 나타냅니다. | 0 - n | 5000
`externalEvaluation` | `true`이면 QoS 측정을 기반으로 참가할 수 있는 사람에 대한 평가를 타이틀 코드가 수행함을 나타냅니다. Multiplayer 서비스는 QoS 로직을 수행하지 않으며, 타이틀은 초기화 단계를 진행할 책임이 있습니다. 일반적으로 타이틀에서는 이것이 필요하지 않습니다. | `true`, `false` | `false`
`membersNeededToStart` | 초기화 에피소드 0에 대해서만 세션을 시작하는 데 필요한 구성원 수입니다. | 1 - `maxMembersCount` | 1

#### 예제: memberInitialization

```json theme={null}
"memberInitialization": {
    "joinTimeout": 10000,
    "measurementTimeout": 30000,
    "evaluationTimeout": 5000,
    "externalEvaluation": false,
    "membersNeededToStart": 1
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="peertopeerrequirements" />

## peerToPeerRequirements

| 피어 투 피어 네트워크 요구 사항 | 설명                          | 기본값   |
| ------------------ | --------------------------- | ----- |
| `latencyMaximum`   | 두 클라이언트 간의 최대 대기 시간(밀리초 단위) | 250   |
| `bandwidthMinimum` | 두 클라이언트 간의 최소 대역폭(초당 킬로비트)  | 10000 |

#### 예제: peerToPeerRequirements

```json theme={null}
"peerToPeerRequirements": {
    "latencyMaximum": 250,
    "bandwidthMinimum": 10000
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="peertohostrequirements" />

## peerToHostRequirements

| 피어-투-호스트 네트워크 요구 사항    | 설명                                 | 유효한 값                                                  | 기본값       |
| ---------------------- | ---------------------------------- | ------------------------------------------------------ | --------- |
| `latencyMaximum`       | 피어-투-호스트 연결에 대한 최대 대기 시간(밀리초 단위)   |                                                        | 250       |
| `bandwidthDownMinimum` | 호스트에서 피어로 전송되는 정보의 최소 대역폭(초당 킬로비트) |                                                        | 100000    |
| `bandwidthUpMinimum`   | 피어에서 호스트로 전송되는 정보의 최소 대역폭(초당 킬로비트) |                                                        | 1000      |
| `hostSelectionMetric`  | 호스트를 선택하는 데 사용되는 메트릭을 나타냅니다        | "bandwidthup", "bandwidthdown", "bandwidth", "latency" | "latency" |

#### 예제: peerToHostRequirements

```json theme={null}
"peerToHostRequirements": {
    "latencyMaximum": 250,
    "bandwidthDownMinimum": 100000,
    "bandwidthUpMinimum": 1000,
    "hostSelectionMetric": "bandwidthup"
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="measurementserveraddresses" />

## measurementServerAddresses

평가해야 하는 잠재적인 서버 연결 문자열 집합입니다.
연결 문자열은 소문자여야 합니다.
`measurementServerAddresses`는 대형 세션에서 지정할 수 없습니다.

연결 문자열은 다음 형식으로 정의됩니다.

`"<server name>": { "secureDeviceAddress": <device address> }`

여기서 디바이스 주소는 서버의 base-64로 인코딩된 보안 디바이스 주소입니다.

#### 예제: measurementServerAddresses

```json theme={null}
"measurementServerAddresses": {
    "server farm a": {
        "secureDeviceAddress": "r5Y="
    },
    "datacenter b": {
        "secureDeviceAddress": "rwY="
    }
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="cloudcomputepackage" />

## cloudComputePackage(사용되지 않음)

이 속성은 XBOX Live Compute 서비스가 더 이상 제공되지 않고 중단되었으므로 사용되지 않습니다.
할당할 클라우드 컴퓨팅 패키지의 속성을 지정합니다.

`cloudCompute` 기능이 설정되어 있어야 합니다.

| 속성        | 설명                                                              |
| --------- | --------------------------------------------------------------- |
| `titleId` | 할당할 클라우드 컴퓨팅 패키지의 타이틀 ID를 나타냅니다                                 |
| `gsiSet`  | 할당할 클라우드 컴퓨팅 패키지의 Global Security Infrastructure(GSI) 세트를 나타냅니다 |
| `variant` | 할당할 클라우드 컴퓨팅 패키지의 변형을 나타냅니다                                     |

#### 예제: cloudComputePackage

```json theme={null}
"cloudComputePackage": {
    "titleId": "4567",
    "gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
    "variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="arbitration" />

## arbitration(사용되지 않음)

이 속성은 XBOX Live Compute 서비스가 더 이상 제공되지 않고 중단되었으므로 사용되지 않습니다.
중재 프로세스에 대한 시간 초과를 지정합니다.

`arbitration` 기능이 설정되어 있어야 합니다.

중재 시작 시간은 세션의 */servers/arbitration/constants/system/startTime* 요소에 정의됩니다.

| 시간 초과                | 설명                                                                             | 유효한 값 | 기본값    |
| -------------------- | ------------------------------------------------------------------------------ | ----- | ------ |
| `forfeitTimeout`     | 중재 시작 시간부터의 시간(밀리초)을 나타냅니다.                                                    | 0 - n | 60000  |
| `arbitrationTimeout` | 중재 시작 시간부터 중재 결과가 시간 초과되는 시간(밀리초)을 나타냅니다. 이 값은 `forfeitTimeout` 값보다 작을 수 없습니다. | 0 - n | 300000 |

#### 예제: arbitration

```json theme={null}
"arbitration": {
    "forfeitTimeout": 60000,
    "arbitrationTimeout": 300000
},
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="broadcastviewertitleids" />

## broadcastViewerTitleIds

방송 세션에 대한 읽기 액세스 권한을 항상 가져야 하는 타이틀의 타이틀 ID 배열을 지정합니다.

#### 예제: broadcastViewerTitleIds

```json theme={null}
"broadcastViewerTitleIds" : ["34567", "8910"],
```

[이 항목의 맨 위로 돌아갑니다.](#top)

<a id="ownershippolicies" />

## ownershipPolicies

마지막 소유자가 세션을 나갈 때 세션을 처리하는 방법을 지정합니다.
`hasOwners` 기능이 설정되어 있어야 합니다.

| 소유권 정책                               | 설명                                                                                                                                                     | 유효한 값                  | 기본값          |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------ |
| `migration`                          | 마지막 소유자가 세션을 떠날 때 어떤 일이 발생하는지 나타냅니다. 마이그레이션 정책이 "endsession"으로 설정된 경우 세션이 만료됩니다. 마이그레이션 정책이 "oldest"로 설정된 경우, 참가 시간이 가장 오래된 구성원을 선택하여 세션의 새 소유자로 만듭니다. | "oldest", "endsession" | "endsession" |
| `allowNonOwnerInviteHandles`         | 소유자가 아닌 세션 구성원에 대한 초대 동작을 나타냅니다. 기본적으로 비소유자는 세션에 대한 초대를 보낼 수 없습니다.                                                                                     | `true`, `false`        | `false`      |
| `nonOwnerModifiableSystemProperties` | `hasOwners` 기능이 `true`로 설정된 세션에서 비소유자가 수정할 수 있는 시스템 속성 이름 목록입니다.                                                                                       | 시스템 속성 이름 목록           | 해당 없음        |

#### 예제: ownershipPolicies

```json theme={null}
"ownershipPolicies": {
     "migration": "oldest",
     "allowNonOwnerInviteHandles": true,
     "nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"] 
}
```

[이 항목의 맨 위로 돌아갑니다.](#top)


## Related topics

- [멀티플레이어 서비스 구성](/ko/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [MPSD(Multiplayer Session Directory) 개념](/ko/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [XDK 및 GDK 타이틀 버전에서의 멀티플레이어 초대](/ko/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [개념](/ko/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [멀티플레이어 세션 템플릿](/ko/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
