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

# PlayFab Party networks and network discovery flows

> PlayFab Party 네트워크 검색에 대한 개념적 가이드입니다. 멀티플레이어 게임에서 플레이어가 Party 채팅 및 데이터 네트워크를 찾고, 초대하고, 연결하는 방법을 설명합니다.

# PlayFab Party와 검색 통합

Discovery는 사용자들이 함께 플레이하기 위해 서로를 찾는 과정입니다. PlayFab Party는 검색 메커니즘을 제공하지 않지만, 사용자 간의 통신을 제공하는 기존 메커니즘과 함께 사용할 수 있습니다.

## 기본 생성 및 참가 흐름

PlayFab Party 네트워크는 한 클라이언트의 사용자에 의해 [생성](#creating-a-network)되고, [공지](#advertising-a-network)되며, 그런 다음 다른 클라이언트의 다른 사용자들에 의해 [참가](#joining-a-network)됩니다.

### 네트워크 생성

게임 세션과 함께 PlayFab Party 네트워크를 사용할 때 첫 번째 고려 사항은 어떤 클라이언트와 사용자가 네트워크를 만들지(`PartyManager::CreateNewNetwork()`) 선택하는 것입니다. PlayFab Party의 관점에서는 어떤 사용자가 이를 수행하든 상관없습니다. 어떤 사용자든 네트워크를 만들 수 있습니다. 생성자는 네트워크 내에서 특별한 권한을 갖지 않습니다. 그러나 네트워크를 만드는 클라이언트는 다음을 담당합니다.

* 변경 불가능한 네트워크 구성 설정(`PartyNetworkConfiguration`)
* 초기 초대 결정(`PartyInvitationConfiguration`)
* 다른 사용자에게 네트워크 공지

초기 초대에는 식별자와 네트워크에 참가할 수 있는 사용자 목록이 포함됩니다. 사용자는 `title_player_account` [Entity ID](/services/playfab/live-service-management/game-configuration/entities) 목록으로 지정됩니다. 또는 목록이 비어 있어 네트워크 설명자와 초대 식별자를 가진 모든 사용자가 참가할 수 있도록 할 수 있습니다.

### 네트워크 공지

기존 PlayFab Party 네트워크에 참가하려면 클라이언트에 두 가지 정보가 필요합니다.

* 네트워크 설명자
* 초대 식별자

PlayFab Party 네트워크는 네트워크 설명자(`PartyNetworkDescriptor`)로 식별됩니다. 이는 네트워크에 대한 연결을 설정하는 데 필요한 정보를 인코딩하는 대체로 불투명한 구조입니다. 네트워크 설명자는 네트워크 생성이 완료된 후 생성 클라이언트에 제공됩니다(`PartyCreateNewNetworkCompletedStateChange`, `PartyNetwork::GetNetworkDescriptor()`). 개발을 용이하게 하기 위해 PlayFab Party는 네트워크 설명자를 웹 친화적인 문자열로 직렬화 및 역직렬화하는 메서드를 제공합니다(`PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()`).

초대 식별자는 초대를 고유하게 식별하는 문자열입니다. 클라이언트가 초대를 명시적으로 만들 때 또는 네트워크를 만들면서 초기 초대를 만들 때 제공됩니다. 클라이언트가 초대 식별자를 제공하지 않으면 하나가 고유하게 생성됩니다.

새 네트워크를 다른 사용자에게 공지하려면 적절한 통신 매체를 통해 이 두 정보를 보내세요.

### 네트워크 참가

네트워크에 참가하는 것은 두 단계 프로세스입니다. 네트워크에 참가하려는 클라이언트는 먼저 역직렬화된 네트워크 설명자를 `PartyManager::ConnectToNetwork()`에 제공하여 네트워크에 연결한 다음, 초대 식별자를 `PartyNetwork::AuthenticateLocalUser()`에 제공하여 사용자를 인증해야 합니다.

## 시나리오 예시

### 소셜 초대

가장 간단한 시나리오는 한 사용자가 게임 세션을 만들고 공유 소셜 플랫폼을 통해 다른 알려진 사용자를 초대하려는 시나리오입니다. 흐름은 다음과 같을 수 있습니다.

* 초대자는 열린 초대 또는 초대자가 함께 플레이하려는 모든 사용자가 포함된 초대로 네트워크를 만듭니다.
* 네트워크가 생성되면 초대자는 소셜 플랫폼의 초대 메커니즘을 통해 네트워크 설명자와 초대 식별자를 다른 사용자에게 보냅니다.
* 초대된 각 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.

<Note>
  초대에서 사용자를 지정할 때는 사용자의 `title_player_account` [Entity ID](/services/playfab/live-service-management/game-configuration/entities)가 사용됩니다. 이러한 Entity ID는 PlayFab Party 외부에서 얻어야 합니다.
</Note>

### Lobby

게임이 클라이언트 간에 데이터를 보낼 수 있는 lobby를 제공하는 경우, 네트워크 연결 정보를 교환하기 위한 통신 매체로 사용될 수 있습니다. 흐름은 다음과 같을 수 있습니다.

* 게임을 함께 플레이할 사용자 집합이 선택됩니다.
* 이 사용자 중 한 명이 생성자로 선택됩니다.
* 집합의 각 사용자는 자신의 `title_player_account` [Entity ID](/services/playfab/live-service-management/game-configuration/entities)를 생성자에게 보냅니다.
* 생성자는 초기 초대 구성에서 사용자의 Entity ID를 지정하여 네트워크를 만듭니다.
* 네트워크 생성이 완료되면 생성자는 참가할 사용자 집합에 네트워크 설명자와 초기 초대 식별자를 보냅니다.
* 각 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.

### Matchmaking

[PlayFab Matchmaking](/services/playfab/live-service-management/game-configuration/entities)과 같은 매치메이킹 서비스를 사용하여 함께 플레이할 사용자 목록을 찾을 수 있습니다. 흐름은 다음과 같을 수 있습니다.

* 사용자는 서비스로 매치 요청을 시작합니다. 매치 결과에 각 사용자의 Entity ID가 포함되어야 하므로 `title_player_account` [Entity ID](/services/playfab/live-service-management/game-configuration/entities)가 요청의 일부여야 합니다.
* 사용자는 네트워크의 일부가 되어야 하는 사용자 집합이 포함된 매치 결과를 받습니다.
* 미리 정해진 알고리즘을 사용하여 어떤 사용자가 생성자가 될지 선택합니다.
* 생성자는 초기 초대 구성에서 다른 매치된 사용자의 Entity ID를 지정하여 네트워크를 만듭니다.
* 네트워크 생성이 완료되면 생성자는 대역 외 통신 매체를 사용하여 네트워크 설명자와 초기 초대 식별자를 다른 매치된 사용자에게 보냅니다.
* 각 매치된 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.

<Note>
  생성자에서 다른 매치된 사용자에게 연결 정보를 보내려면 대역 외 통신 매체가 필요합니다.
</Note>


## Related topics

- [Using multiple PlayFab Party networks](/ko/services/playfab/multiplayer/networking/concepts-multiple-networks.md)
- [PlayFab Party features](/ko/services/playfab/multiplayer/networking/party-features.md)
- [PartyNetwork](/ko/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/partynetwork.md)
- [PartyNetwork::LeaveNetwork](/ko/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_leavenetwork.md)
- [PartyNetworkConfiguration](/ko/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md)
