# Ping Beacons

핑 비콘을 사용하여 먼 지역의 플레이어와의 매칭을 방지하고 플레이어 경험을 향상시키세요.

## 🟢 연결 품질

서버 연결 품질은 각 플레이어마다 다르며 다음을 포함한 여러 요인의 영향을 받습니다:

* 와이파이 신호 강도(무선 또는 모바일인 경우),
* 인터넷 서비스 제공업체 상태,
* 로컬 네트워크 상태,
* 사용된 네트워킹 프로토콜,
* 가상 사설망(VPN) 사용,
* 또는 국가별 제한사항.

플레이어 핑을 최소화하고 **가능한 최상의 플레이어 매칭을 제공하며** 최적화하려면, [#server-placement](https://docs.edgegap.com/docs.edgegap.com-ko/learn/deployments#server-placement "mention") 게임 클라이언트는 **핑 비콘을 사용하여 지연 시간을 측정합니다** 전 세계 여러 주요 네트워킹 노드에 대해 실시간으로 측정합니다. 실제 패킷 왕복 시간을 측정하면 위에 언급된 모든 요인을 반영하므로 특정 시점에서 가장 정확한 지표를 제공합니다.

유의할 점은 **비콘 핑이 높다고 해서 서버 핑이 높다는 의미는 아닙니다** — 서버는 비콘보다 더 밀집되어 배치됩니다. 비콘 수는 최적의 커버리지, 최소한의 데이터 전송, 측정 완료까지의 최단 시간을 위해 실시간으로 균형 조정됩니다.

Edgegap의 모니터링 외에도, 우리는 **클라이언트 측 자체 분석 도구를 구현할 것을** 권장합니다. 매치메이킹 시 플레이어 인구 통계 및 연결 품질을 추적하면 문제를 빠르게 발견하고 분류하며 해결할 수 있습니다.

## 🗼 핑 비콘에 관하여

플레이어가 직접 핑을 보낼 수 있는 비콘 목록을 다음에서 가져오세요:

* 매치메이커 [#matchmaking-api](https://docs.edgegap.com/docs.edgegap.com-ko/matchmaking/matchmaker-in-depth#matchmaking-api "mention") 게임 클라이언트에서,
* Edgegap API [엔드포인트 /locations/beacons](https://docs.edgegap.com/api/#tag/Locations/operation/location-beacon-list) 사용하여 [Edgegap API 토큰](https://app.edgegap.com/user-settings?tab=tokens) (백엔드에서).

핑 비콘은 여러 목적으로 동시에 사용될 수 있습니다:

* 높은 지연 시간 매치를 방지하기 위해 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 자동으로.
* 플레이어가 선호하는 허브를 직접 선택할 수 있도록 [#hub-selection-ui](#hub-selection-ui "mention") 플레이어가 선호 허브를 골라 선택할 수 있도록,
* 플레이어가 선호하는 허브를 직접 선택할 수 있도록 [#region-selection-ui](#region-selection-ui "mention") 플레이어가 먼 지역을 제외할 수 있도록,

{% hint style="info" %}
**요청 과다 429** - 플랫폼 안정성을 보장하기 위해, 우리는 **이 API 엔드포인트에 대해 조직별로 속도 제한을** **초당 40건으로 제한합니다** 적용합니다. 속도 제한에 도달하는 것을 방지하기 위해 [#active-cache](#active-cache "mention") 메커니즘을 구현하세요.
{% endhint %}

{% hint style="success" %}
[#measuring-round-trip-time](#measuring-round-trip-time "mention") 사용하여 **ICMP, UDP 또는 TCP 핑은 속도 제한이 적용되지 않습니다**.
{% endhint %}

## 🗺️ 지역 선택 UI

게임 UI에서 사용자가 특정 지역의 다른 사용자와 매칭되는 것을 방지하려면 활성화/비활성화할 수 있는 지역 목록을 제공하세요.

**고지연 지역을 자동으로 비활성화:**

* 사용 가능한 모든 비콘을 나열하고,
* 다음 작업을 수행하세요 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 모든 비콘에 대해 핑을 수행하여,
* **모든 비콘에 대한 측정된 지연 시간이 주어진 임계값을 초과하면 해당 지역을 비활성화하세요.**

임계값은 게임 설계에 따라 다르지만, 일반적으로 250ms(밀리초) 미만의 지연 시간을 가진 지역에서 매칭할 것을 권장합니다.

## 📍 허브 선택 UI

일부 플레이어는 모든 위치가 나열된 전체 목록에서 선택하기를 선호합니다.

**고지연 허브를 자동으로 비활성화:**

* 사용 가능한 모든 비콘을 나열하고,
* 다음 작업을 수행하세요 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 모든 비콘에 대해 핑을 수행하여,
* **측정된 지연 시간이 주어진 임계값을 초과하면 허브를 비활성화하세요,**
* 게임 UI에서 City 비콘 속성을 사용해 활성화된 허브를 식별하세요.

임계값은 게임 설계에 따라 달라지지만, 일반적으로 150ms(밀리초) 미만의 지연 시간을 가진 허브에서 매칭할 것을 권장합니다.

또한 UI에서 이름을 “허브(Hub)”로 선택하거나, **이들이 유일한 서버 위치임을 암시하지 않는 다른**이름을 선택할 것을 권장합니다. Edgegap은 전 세계 615개 이상의 물리적 위치와 17개 이상의 데이터센터 제공업체에 걸쳐 게임 서버를 오케스트레이션하여 이상적인 위치에 배포되도록 보장합니다.

## 🌡️ 왕복 시간 측정

게임 개발에서 “핑(ping)”과 “지연(latency)”이라는 용어는 보통 [패킷 왕복 시간](https://www.cloudflare.com/learning/cdn/glossary/round-trip-time-rtt/).

보기 [#id-5.-game-integration](https://docs.edgegap.com/docs.edgegap.com-ko/matchmaking#id-5.-game-integration "mention") 자동 핑 측정을 위해:

지연 시간 측정 프로세스에 대한 자세한 개요는 [매치메이커](https://docs.edgegap.com/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth):

<figure><img src="https://1562312210-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fn6ke8Ed6jijjdlPQ4CfP%2Fimage.png?alt=media&#x26;token=c85c70b2-73af-4980-a962-488393d264e6" alt=""><figcaption></figcaption></figure>

## ⏰ 고가용성

## 🧠 액티브 캐시

**를 사용하지 않는 경우** [**매치메이커**](https://docs.edgegap.com/docs.edgegap.com-ko/learn/matchmaking) (예: 고급 매치메이커 사용자), 대규모 출시 전에 추가적인 확장성 보험을 구현할 것을 권장합니다. **자체 게임 백엔드 서비스를 생성하여** 메모리에 중앙화된 캐시를 유지하고 각 클라이언트 요청마다 비콘 목록 API를 사용하지 않고 게임 클라이언트에 비콘 위치를 응답하도록 하세요.

이 서비스는 적극적으로 **60초마다 한 번만 비콘 목록을 업데이트하기 위해 단일 API 요청을 수행해야 합니다.**
