> ## 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 QoS measurements

> PlayFab Party가 QoS 지연 시간 측정을 사용하여 네트워크 세션의 지역을 선택하는 방식과 타이틀이 음성 및 데이터에 대한 지역 선택에 영향을 미치는 방법입니다.

PlayFab Party는 타이틀에 원격 Azure 리소스에 대한 저지연 액세스를 제공하기 위해 백그라운드 서비스 품질(QoS) 측정을 수행합니다. 여기서는 타이틀이 Party의 QoS 기능을 접하게 되는 핵심 시나리오를 설명합니다.

## QoS가 측정되는 시점 이해

Party 라이브러리는 Party가 초기화되자마자 QoS 측정을 시작합니다. Party가 QoS를 성공적으로 측정하면 이러한 측정을 새로 고치는 유일한 방법은 Party 라이브러리를 정리하고 다시 초기화하는 것입니다. QoS 측정이 실패하면 Party 라이브러리는 다음에 [PartyManager::CreateNewNetwork](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork)를 호출할 때 측정을 다시 시도합니다.

## Party 네트워크의 지역 선택

PlayFab Party가 QoS를 측정하는 주된 이유는 타이틀이 Party 네트워크가 호스팅되는 Azure 지역을 선택할 때 지연 시간 데이터를 사용할 수 있게 하는 것입니다.

QoS 측정 결과를 확인하지 않고도 타이틀은 [PartyManager::CreateNewNetwork](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork)를 선호 지역 목록을 비운 채 호출하여 현재 지연 시간이 가장 낮은 지역에 네트워크를 할당할 수 있습니다.

```cpp theme={null}
uint32_t regionCount = 0;
const PartyRegion* regionList = nullptr;

PartyError error = PartyManager::GetSingleton().CreateNewNetwork(
    localUser,
    &networkConfiguration,
    regionCount,
    regionList,
    nullptr,
    nullptr,
    nullptr,
    nullptr);
```

또는 타이틀은 Party 라이브러리의 QoS 측정 결과를 확인하고 타이틀별 기준에 따라 선호 지역 목록을 선택할 수 있습니다.

QoS 측정 결과를 확인하려면 [PartyManager::StartProcessingStateChanges](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges)에서 성공적인 [PartyRegionsChangedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange)를 받을 때까지 기다립니다.

```cpp theme={null}
switch (stateChange->stateChangeType)
{
    case PartyStateChangeType::RegionsChanged:
    {
        auto regionsChanged = static_cast<PartyRegionsChangedStateChange*>(stateChange);
        if (regionsChanged.result == PartyStateChangeResult::Succeeded)
        {
            m_qosResultsReady = true;
        }
    }

    // ...
}
```

그런 다음 [PartyManager::GetRegions](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions)를 호출하여 현재 지역 및 지연 시간 목록을 검사하고 평가합니다.

```cpp theme={null}
if (m_qosResultsReady)
{
    uint32_t regionCount;
    const PartyRegion* regionList;

    PartyError error = PartyManager::GetSingleton().GetRegions(
        &regionCount,
        &regionList);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::GetRegions failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }

    // Prevent Party from using Azure regions above some latency threshold.
    // The game is unplayable in those scenarios.
    std::vector<PartyRegion> filteredRegionList = OmitRegionsAboveMaxLatency(regionCount, regionList, maxLatency);

    error = PartyManager::GetSingleton().CreateNewNetwork(
        localUser,
        &networkConfiguration,
        filteredRegionList.size(),
        filteredRegionList.data(),
        nullptr,
        nullptr,
        nullptr,
        nullptr);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::CreateNewNetwork failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }
```

### 지역별 가격 차이

모든 Party 지역이 동일하게 청구되는 것은 아니라는 점을 명심하세요. 지역별 가격 차이에 대한 자세한 내용은 [가격 페이지](https://playfab.com/pricing/)를 참조하세요.

## 접근 가능한 채팅 기능에 최적의 지역 사용

PlayFab Party가 QoS를 측정하는 또 다른 이유는 텍스트를 음성으로 변환하는 합성, 음성을 텍스트로 변환하는 텍스트 변환, 번역과 같은 채팅 접근성 기능을 더 반응적으로 만들기 위해서입니다. 이러한 접근성 기능은 지역별 Azure Cognitive Services 리소스를 사용하며, QoS를 측정함으로써 다양한 지역을 최적으로 사용할 수 있습니다.

## QoS 측정 실패 이해

네트워크 생성과 채팅 접근성 기능이 QoS 측정에 의존하기 때문에 [PartyRegionsChangedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange)의 결과와 오류 세부 정보를 검사하는 것이 가치가 있습니다. 이 상태 변경의 실패는 이후 실패에 대한 유용한 디버깅 컨텍스트를 제공할 수 있습니다.


## Related topics

- [Using direct peer-to-peer connections](/ko/services/playfab/multiplayer/networking/concepts-direct-peer-connectivity.md)
- [PlayFab Party features](/ko/services/playfab/multiplayer/networking/party-features.md)
- [PlayFab Party 개요](/ko/services/playfab/multiplayer/networking/index.md)
- [PlayFab Party 릴리스 정보](/ko/services/playfab/multiplayer/networking/release-notes.md)
- [XblMultiplayerPerformQoSMeasurementsArgs](/ko/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerperformqosmeasurementsargs.md)
