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

# XR-067 멀티플레이어 세션 상태 유지

> 멀티플레이어 세션은 참여, 이탈, 호스트 마이그레이션, 네트워크 오류, 플랫폼 이벤트에도 동기화 손실이나 크래시 없이 정확한 상태를 유지해야 합니다.

## 의도

멀티플레이어 세션의 상태 — 누가 참여했는지, 어떤 역할인지, 어떤 모드인지, 어떤 맵인지 — 는 세션 라이프사이클 전반에 걸쳐 정확하게 유지되어야 합니다. 상태가 동기화 손실되거나 손상되면, 참여하는 플레이어는 잘못된 정보를 보게 되며 기존 플레이어는 잘못된 컨텍스트에 놓입니다. XR-067은 타이틀이 모든 합리적인 변동 상황에서 세션 상태를 유지할 것을 요구합니다.

## 적용 대상

멀티플레이어 세션 상태(MPSD 또는 최신 동등물)를 가진 모든 타이틀.

## 요구 사항

타이틀은 **반드시** 다음을 수행해야 합니다.

* 모든 상태 전환(멤버 참여, 멤버 이탈, 역할 변경, 모드 변경, 호스트 마이그레이션) 시 **MPSD 세션 상태**를 런타임 세션과 동기화된 상태로 유지합니다.
* 호스트가 연결 해제될 때 **호스트 마이그레이션**을 올바르게 처리합니다 — 새 호스트를 선출하고, 권위 있는 상태를 전달하며, 남은 멤버에게 알립니다.
* **멤버 연결 해제**를 처리합니다 — 세션 상태에서 이탈한 멤버를 제거하고, 남은 멤버에게 알리고, 세션이 더 이상 가득 차 있지 않다면 참여 가능성을 조정합니다.
* **네트워크 오류**를 처리합니다 — 호스트의 일시적 네트워크 손실이 빠르게 복구되는 경우 세션이 해체되어서는 안 됩니다.
* **플랫폼 이벤트**를 처리합니다 — 로그아웃, Quick Resume, 컨트롤러 변경 — 다른 멤버를 위한 세션이 손상되지 않도록 합니다.
* 존재 기반 참여(join-from-presence)가 여전히 마이그레이션된 세션을 찾을 수 있도록 호스트 마이그레이션 전반에 걸쳐 **세션 아이덴티티를 올바르게 유지**합니다.
* 세션이 자연스럽게 종료될 때(모든 멤버가 이탈, 게임 완료) 세션을 정리하여 MPSD에서 유령 세션이 남지 않도록 합니다.

타이틀은 **반드시** 다음을 수행해서는 안 됩니다.

* 멤버 간에 세션 상태를 일관되지 않게 표시합니다.
* 런타임 세션이 종료된 후에도 오래된 MPSD 세션이 유지되도록 허용합니다.
* 호스트가 연결 해제될 때 남은 모든 멤버를 제외합니다.
* 실제로 연결되지 않은 멤버를 세션 상태에 조작해 포함시킵니다.

## 테스트된 시나리오

* 4인 세션을 호스팅합니다. 호스트가 연결 해제되도록 합니다(네트워크 분리). 호스트 마이그레이션을 확인하고, 남은 3명의 멤버가 계속 플레이할 수 있는지 확인합니다.
* 호스트가 아닌 멤버가 연결 해제되도록 합니다. 상태에서 정상적으로 제거되는지 확인합니다.
* 세션에 빠르게 참여/이탈합니다. 세션 상태가 일관되게 유지되는지 확인합니다.
* 로비 도중에 게임 모드를 변경합니다. 상태가 모든 멤버에게 전파되는지 확인합니다.
* 세션 도중 로그아웃합니다. 남은 멤버에 대해 세션 상태가 업데이트되는지 확인합니다.

## 모범 사례

* **권위 있는 호스트** 또는 **중재 세션**을 설계하여 세션 상태에 대한 단일 진실 공급원이 있도록 합니다.
* **MPSD 쓰기를 신중하게 사용합니다** — [XR-132](/publishing/certification/xr/xr-132)에 따른 스로틀링을 피하기 위해 속도를 제한합니다.
* **네트워크 오류 후 조정**합니다 — 재연결 시 MPSD 상태를 다시 읽고 런타임과 차이를 비교합니다.
* **호스트 마이그레이션에 시간 제한을 둡니다** — 정해진 시간 내에 새 호스트가 선출되지 않으면 매달리지 않고 깔끔하게 해체합니다.

## 관련 XR

* [XR-064](/publishing/certification/xr/xr-064) — 참여 가능한 세션.
* [XR-070](/publishing/certification/fma/xr-070) — 친구 목록.
* [XR-074](/publishing/certification/xr/xr-074) — 연결 손실.
* [XR-115](/publishing/certification/xr/xr-115) — 게임플레이 중 사용자 추가/제거.
* [XR-124](/publishing/certification/fma/xr-124) — 게임 초대.
* [XR-132](/publishing/certification/xr/xr-132) — 서비스 액세스 제한.

## 타이틀이 XR-067에 실패한 경우

[FMA: XR-067 멀티플레이어 세션 상태 유지](/publishing/certification/fma/xr-067)를 참조하세요.

## 관련 항목

* [XBOX 서비스](/services/xbox-services/index)
* [자주 실패하는 테스트](/publishing/certification/xr-top-failing)
* [XBOX 요구 사항](/publishing/certification/xbox-requirements)


## Related topics

- [FMA: XR-067 멀티플레이어 세션 상태 유지](/ko/publishing/certification/fma/xr-067.md)
- [XR-070 친구 목록](/ko/publishing/certification/xr/xr-070.md)
- [XR-124 게임 초대](/ko/publishing/certification/xr/xr-124.md)
- [Azure PlayFab Party](/ko/build/console-features/networking/game-mesh/playfab-party-intro-networking.md)
- [Beta 및 XBOX Game Preview 타이틀 인증](/ko/publishing/certification/cert-beta-game-preview.md)
