> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/docs.edgegap.com-ko/learn/matchmaking.md).

# 매치메이킹

매치메이킹을 빠르게 시작하고 다양한 장르의 예시 시나리오를 살펴보세요.

이 영상을 따라 우리의 매치메이커 서비스를 시작하세요:

{% embed url="<https://youtu.be/HxtvzvJ1FTk>" %}

## ✔️ 준비

### 매치메이킹 아키텍처

이 가이드는 다음에 초점을 맞춥니다 **매치메이킹 API 및 백필 API**.

<figure><img src="/files/159d6faabb1b3b55c8864e32bfccf0d52ebd34c1" alt=""><figcaption></figcaption></figure>

매치메이킹이 관련될 때 중요한 데이터 흐름은 네(4) 가지가 있습니다:

1. [매치메이킹 API](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api) **는 게임 클라이언트가 매치메이커와 통신하는 데 사용됩니다:**
   1. 그룹 관리, 서버 할당, 모니터링을 위해,
   2. 핑 측정을 위해 [Ping Beacons](/docs.edgegap.com-ko/learn/orchestration/ping-beacons.md).
2. [배포](/docs.edgegap.com-ko/learn/orchestration/deployments.md) API는 매치메이커를 통해 전용 서버를 배포, 확장, 관리하는 데 사용됩니다.
3. [넷코드 전송](/docs.edgegap.com-ko/docs/sample-projects.md) 은 게임 클라이언트와 전용 서버 간 통신에 사용됩니다.
4. [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#backfill-match) **실행 중인 서버에 플레이어를 대체하거나 추가하기 위해.**

{% hint style="info" %}
출시 후, **귀하의 매치메이커는 24시간 연중무휴로 실행되어야 합니다** 전 세계의 플레이어가 서버에 참여할 수 있도록 보장하기 위해.
{% endhint %}

## 🍀 간단한 예시

간단한 예시로 시작하여 기본적인 매치메이킹 플레이어 흐름을 테스트하세요:

* 공유된 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#hosting-cluster),
* 매치메이커에서 규칙과 설정을 정의하고 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#configuration),
* 와 함께 플레이어 흐름을 테스트하고 티켓을 관리합니다 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api).

### 1. 무료 티어에서 설정하기

☑️ [무료 Edgegap 계정을 등록하고](https://app.edgegap.com/auth/register) 을 연 다음 [매치메이커 대시보드 페이지](https://app.edgegap.com/matchmaker-management-v2/matchmakers/list).

☑️ 다음을 클릭하세요 **매치메이커 만들기** 먼저, 다음을 입력하세요:

* 매치메이커 이름 - 참고용, 예: `quickstart-dev` ,
* 간단한 예시 JSON 구성을 업로드하세요.

🍀 **간단한 예시(권장 최소 구성):**

{% hint style="danger" %}
**애플리케이션 이름을** **`이름`**  **및** **`version`**  **에 맞게 변경하세요** [앱 및 버전](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md).
{% endhint %}

<pre class="language-json"><code class="lang-json">{
  "version": "3.2.2",
  "inspect": true,
  "max_deployment_retry_count": 3,
  "profiles": {
    "simple-example": {
      "ticket_expiration_period": "5m",
      "ticket_removal_period": "1m",
      "group_inactivity_removal_period": "5m",
      "application": {
        "name": "<a data-footnote-ref href="#user-content-fn-1">my-game-server</a>",
        "version": "<a data-footnote-ref href="#user-content-fn-2">2024.01.30-16.23.00-UTC</a>"
      },
      "rules": {
        "initial": {
          "match_size": {
            "type": "player_count",
            "attributes": {
              "team_count": 1,
              "min_team_size": 2,
              "max_team_size": 2
            }
          },
          "beacons": {
            "type": "latencies",
            "attributes": {
              "difference": 100,
              "max_latency": 200
            }
          }
        },
        "expansions": {}
      }
    }
  }
}
</code></pre>

**문제 해결 및 FAQ:**

☑️ 유효성 검사 오류가 나타나지 않으면 다음을 누르세요 **생성 및 시작** 그리고 프로세스가 완료될 때까지 기다리세요. 그러면 간단한 예시 매치메이커와 함께 새 무료 클러스터가 시작됩니다.

✅ 이제 다음 단계로 진행할 수 있습니다.

### 2. 구성 살펴보기

매치메이커 업데이트를 배포할 때마다 각 새 버전은 [시맨틱 버전 관리](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#changelog) 를 사용하여 형식을 해석함으로써 변경 사항의 영향을 명확히 전달합니다 `major.minor.patch`:

* 🔥 `major` 버전에는 호환성 깨짐 변경이 포함되며 통합 검토가 필요합니다,
* 🌟 `minor` 버전에는 상당한 하위 호환 개선이 포함됩니다,
* 🩹 `patch` 버전에는 버그 수정과 소규모 개선이 포함됩니다.

[티켓 검사](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api) 개발 중 가능한 매치메이킹 흐름을 더 잘 이해하고 디버그하기 위해 사용합니다. 라이브 매치메이커에서는 inspect API를 비활성화하는 것을 권장합니다.

**일부** [**배포는 오류를 발생시킬 수 있습니다**](https://docs.edgegap.com/docs.edgegap.com-ko/learn/pages/1e75126474c80b6c476cbd5e97b171fce5779d47#id-4.-deployment-error)**.** 이를 해결하기 위해 배포 재시도를 최대 `max_deployment_retry_count` 회 자동으로 수행합니다(클라이언트 확인 없이).

예기치 않은 클라이언트 충돌이나 방치된 티켓이 오래 남아 매치메이커 리소스를 차지하지 않도록, 매칭되지 않은 티켓은 다음 이후 취소됩니다 `ticket_expiration_period` 그 결과 상태가 다음으로 변경됩니다 `CANCELLED` 그런 다음 다음 이후 영구 삭제됩니다 `ticket_removal_period` .

{% hint style="info" %}
[매치메이커가 어떻게 매치 채움률을 극대화하고 대기 시간을 10초 미만으로 줄이는지 알아보세요.](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#find-match)
{% endhint %}

매치메이킹 로직의 핵심은 다음에서 구성됩니다 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles). 각 프로필은 완전히 분리된 매치메이킹 큐이며, 다음을 가리킵니다 [앱 및 버전](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md#app-versions) 사전 정의된 필요한 CPU 및 메모리(RAM) 리소스 양과 함께.

[심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules) 초기 규칙 세트의 조건은 플레이어가 함께 그룹화되기 위해 충족되어야 하며, 각 규칙은 세 가지 속성으로 정의됩니다:

* 원하는 이름, 예: - `매치 크기`,
* 규칙 유형, 연산자라고도 함, 예: - `player_count`,
* 그리고 마지막으로 연산자 속성, 예: `team_count` 또는 `max_team_size`.

**플레이어 수 규칙**

이것은 할당을 시작하기 위해 몇 명의 플레이어가 일치해야 하는지 정의하는 특수 규칙입니다:

* `team_count` 는 팀 수를 의미하며, 1팀은 협동 또는 자유 대전 모드에 사용할 수 있습니다,
* `min_team_size` 는 팀당 최소 플레이어 수를 의미합니다.
* `max_team_size` 는 팀당 최대 플레이어 수를 의미합니다.

우리의 간단한 예시는 2명의 플레이어가 있는 협동 게임을 보여줍니다.

{% hint style="warning" %}
플레이어 수 규칙 **이 필요하며 한 번만 정의할 수 있습니다** 초기 구성 규칙에서.
{% endhint %}

**지연 시간 규칙**

✅ 이제 다음 단계로 진행할 수 있습니다.

### 3. 인스턴스 세부 정보 검토

☑️ 초기화되면 대시보드에서 새 매치메이커의 세부 정보를 검토하세요:

<figure><img src="/files/8cd2161c4be0825844de9d9d08d5d349328c908b" alt=""><figcaption></figcaption></figure>

* **상태** 는 서비스 상태를 나타내며 ONLINE, OFFLINE 또는 ERROR일 수 있습니다.
* **식별자** 문제 해결이 필요할 때 Edgegap 직원이 귀하의 매치메이커를 빠르게 찾는 데 도움이 됩니다.
* **시작 시각** 가장 최근 업데이트 시간을 추적하는 데 유용할 수 있습니다.
* **크기** 우리의 [요금제](https://edgegap.com/resources/pricing#matchmaker).
* **API URL** 게임 클라이언트와 게임 서버가 귀하의 매치메이커와 통신하는 데 사용됩니다.
* **Swagger URL** 는 API 스키마를 탐색할 수 있게 해주는 편리한 openAPI 사양 GUI입니다.
* **인증 토큰** 는 게임 클라이언트와 게임 서버가 인증에 사용하는 고유한 비밀 토큰입니다.

{% hint style="danger" %}
**Edgegap 직원은 절대 귀하의 토큰을 요청하지 않습니다. 보안 침해가 의심되면 토큰을 재생성하세요.**
{% endhint %}

새 매치메이커를 테스트하려면, **Swagger URL, API URL 및 인증 토큰이 필요합니다**.

✅ 이제 다음 단계로 진행할 수 있습니다.

{% hint style="info" %}
개발 중 매치메이커 규칙을 업데이트하려면 구성을 편집하고 다시 시작하세요.
{% endhint %}

{% hint style="success" %}
확인하세요 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#rolling-updates-and-ab-tests) 라이브 게임 및 무중단 업데이트를 위해.
{% endhint %}

### 4. 티켓 API 테스트

{% hint style="info" %}
**매치메이커를 시작한 후** DNS 전파가 완료될 때까지 최대 5분 기다려 주세요.
{% endhint %}

☑️ 먼저, **Swagger URL을 열어** Swagger GUI에서 openAPI 스키마를 확인하세요:

<figure><img src="/files/d987350db3682812751926494614b8f2f24ee382" alt=""><figcaption></figcaption></figure>

☑️ 다음을 클릭하세요 **Authorize** 🔒, 귀하의 **인증 토큰**를 붙여넣고, 다음을 클릭하여 확인하세요 **Authorize**.

<figure><img src="/files/c866ef79d11a370793fd6d9e58f0bb67cba5bad7" alt=""><figcaption></figcaption></figure>

☑️ 아래로 스크롤하여 **티켓 API** **- POST /tickets**를 확장하고 클릭 **Try it out**.

<figure><img src="/files/3e8a63020cc8f4ea6b63d444ace07ff54997c92a" alt=""><figcaption></figcaption></figure>

☑️ 요청을 미리 보기:

* 주의 `player_ip` 를 다음으로 설정 `null` - 그러면 매치메이커가 요청에 자동으로 추가된 IP 주소를 사용합니다(대안은 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#server-to-server-api) 참조),
* `프로필` 은 귀하의 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles),
* `속성` 를 의미하며, 매치메이커 규칙에 필요한 값을 포함합니다. 이 경우 `latencies` 규칙의
  * 규칙 `player_count` 은 플레이어 티켓에서 어떤 속성도 필요로 하지 않는 유일한 규칙입니다.

☑️ 클릭 **Execute** 하고 플레이어 티켓 요청에 대한 응답을 검토하세요:

* `id` 는 고유한 매치메이킹 티켓 ID입니다. 나중에 티켓을 확인할 수 있도록 저장하세요,
* `프로필` 선택을 확인하는 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles),
* `group_id` 는 고유한 [그룹 ID로, 모든 티켓에 발급됩니다. 솔로 플레이어는 1명의 그룹으로 표시됩니다](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up),
* `team_id` 는 각 플레이어에게 한 번씩 발급되는 고유한 팀 ID입니다 `TEAM_FOUND` 상태가 도달하면,
  * [각 팀은 여러 그룹을 포함할 수 있으며, 구성된 팀 크기를 초과할 수 없습니다](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules),
* `player_ip` 는 식별 방법과 관계없이 플레이어의 해석된 공용 IP 주소입니다,
* `할당` 로 설정됩니다 `null` 티켓이 서버와 매칭되거나 할당되지 않았음을 나타내기 위해,
* `created_at` 게임 UI 사용을 위해 플레이어 티켓이 생성된 시점에 대한 정보를 제공합니다,
* `status` 티켓의 현재 상태를 나타내며, 모든 티켓은 다음에서 시작합니다 `SEARCHING` .

<figure><img src="/files/a56747e58e23c576fac3cf9d88176a5088b83685" alt=""><figcaption></figcaption></figure>

☑️ 다음을 눌러 두 번째 티켓을 만드세요 **Execute** 다시 한 번, 두 플레이어가 매칭되고 서버가 시작되도록 합니다.

☑️ POST /tickets를 접고 **GET /tickets/{ticketId}**&#xB97C; 연 다음 **Try it out**.

☑️ 이전 단계의 응답에서 티켓 ID를 입력하고 다음을 클릭하세요 **Execute**.

<figure><img src="/files/fbfe470ef61db30d8a7a1257722f4480ab4c92b7" alt=""><figcaption></figcaption></figure>

☑️ 플레이어 티켓의 업데이트된 할당을 검토하세요:

* 상태가 다음으로 변경되었습니다 `MATCH_FOUND` 먼저, `할당` 를 다음으로 설정 `null` 를 유지하면서 플레이어가 매칭되었고 서버가 할당 중임을 나타냅니다,

<figure><img src="/files/4095d1c0a9ba1161897a32fc97dfb482106bec0c" alt=""><figcaption></figcaption></figure>

☑️ 클릭 **Execute** 다시 한 번 티켓을 확인하고, 티켓의 업데이트된 할당을 검토하세요:

* 상태가 다음으로 변경되었습니다 `HOST_ASSIGNED` 와 함께 `할당` 할당된 서버의 세부 정보를 포함합니다.

<figure><img src="/files/ae9ba66c87ea1a8a7e7ff6fbb097c848724336d7" alt=""><figcaption></figcaption></figure>

<details>

<summary>문제 해결 및 FAQ</summary>

내 티켓이 다음에 멈춰 있습니다 `SEARCHING` .

* 구성에 맞는 충분한 티켓을 겹치는 기준으로 생성했는지 확인하세요.

***

내 티켓이 다음 사이를 계속 전환합니다 `MATCH_FOUND` 및 `TEAM_FOUND` 를 반복합니다.

* 무료 티어 계정은 한 번에 1개의 배포만 허용됩니다. 업그레이드하거나 새 배포를 시작하기 위해 현재 배포를 중지하는 것을 고려하세요.

***

내 티켓이 바로 다음으로 갑니다 `CANCELLED`.

* 티켓의 유효 기간이 만료되었습니다. 새 티켓을 다시 만들거나 테스트를 위해 구성의 만료 기간을 늘리세요.

***

티켓을 확인할 때 HTTP 404 Not Found가 표시됩니다.

* 티켓은 DELETE 요청으로 제거되었거나 제거 기간에 도달하여 제거되었습니다(유효 기간 만료 후 시작되며 구성에 정의됨). 새 티켓을 다시 만들거나 테스트를 위해 구성의 만료/제거 기간을 늘리세요.

</details>

☑️ [대시보드에서 새 배포를 확인하세요](https://app.edgegap.com/deployment-management/deployments/list):

* 추적성을 높이기 위해 각 배포에는 모든 티켓 ID와 프로필이 태그로 표시됩니다.

<figure><img src="/files/d7ba1b2d7152d41c2a4627c952bc7721f51a0fd2" alt=""><figcaption></figcaption></figure>

☑️ 게임 클라이언트에서 할당된 서버에 연결해 보세요.

{% hint style="warning" %}
높은 지연 시간이 발생한다면 넷코드 통합이 네트워크 지연을 시뮬레이션하도록 구성되었을 수 있습니다. **테스트할 때 VPN을 비활성화하세요** 더 현실적인 조건을 위해 그리고 [낮은 지연 시간 배포를 받기 위해](/docs.edgegap.com-ko/learn/orchestration/deployments.md#server-placement).
{% endhint %}

☑️ 문제 없이 배포에 연결할 수 있는지 확인하고 테스트를 마쳤다면, **배포 중지** 다음 빌드를 위해 계정의 용량을 확보하세요.

✅ 이제 다음 단계로 진행할 수 있습니다.

{% hint style="info" %}
테스트용 openAPI 사양은 다음에서 찾을 수 있습니다 `{matchmaker-url}/swagger/v1/swagger.json`.
{% endhint %}

### 5. 게임 통합

매치메이커는 다음과 통합됩니다:

* **게임 클라이언트**에 [그룹, 멤버십, 할당 및 티켓을 관리하기 위해](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up),
* **전용 서버**에 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#backfill-match) 플레이어가 떠난 후.

☑️ **게임 클라이언트**에서는 최고의 플레이어 경험을 위해 게임 내 UI를 사용하여 플레이어에게 티켓 상태 업데이트를 제공하는 것을 권장합니다. 다음을 참조하세요:

☑️ **게임 클라이언트**에서 재시도 가능한 `429 Too Many Requests`  오류를 지수 백오프와 재시도로 처리하여, 갑작스러운 트래픽 급증 동안 매치메이커가 회복할 시간을 주세요.

☑️ **게임 클라이언트**에서 재시도 불가능한 오류를 처리하도록 하세요:

* `404 Not Found` - 티켓이 삭제되었습니다,
* `500 Internal Server Error` - 일시적인 서비스 중단.

☑️ **게임 서버**에서 플레이어 선호도와 초기 서버 컨텍스트를 읽습니다:

1. [주입된 변수(매치메이커)](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#injected-environment-variables) **초기 플레이어의 매치메이킹 데이터를 가져오기 위해.**
2. [주입된 변수(앱 버전)](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md#other-parameters-optional) 버전 매개변수, 설정, 비밀값을 위해.
3. [주입된 변수(배포)](/docs.edgegap.com-ko/learn/orchestration/deployments.md#injected-environment-variables) 배포 정보, IP, 위치 등을 위해...

☑️ 플레이어가 연결되면, **게임 서버와 게임 클라이언트는** 로드 장면 - 3D 장면, 로비 같은 소셜 UI, 또는 진행 표시줄이 있는 로딩 화면을 시작하여 초기화가 진행 중임을 나타냅니다.

☑️ 귀하의 [배포가 중지될 것임을](https://docs.edgegap.com/docs/deployment#stop-a-deployment) 매치가 종료된 후 적절하게 확인하세요.

🙌 축하합니다, 매치메이킹 통합을 완료했습니다! 더 알아보려면 계속 읽어보세요.

## 🏁 고급 예시

다음을 포함한 모든 매치메이킹 기능을 활용하는 완전한 구성은 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles), [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules) 및 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) 다음과 같을 수 있습니다:

## 🥛 백필 쇼케이스

다음을 기반으로 [#simple-example](#simple-example "mention")이 구성은 다음을 보여줍니다 [백필](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#backfill-match) 와 함께 [그룹](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up).

## ⚔️ 경쟁 게임

경쟁 게임은 개인(자유 대전) 또는 팀으로서 서로 경쟁하여 승리를 달성하는 데 초점을 맞춥니다. 비슷한 실력 수준의 플레이어나 팀을 매칭하여 공정하고 균형 잡힌 경기를 보장하고, 공정한 경쟁을 빠르게 찾아 게임 템포를 유지하세요.

다음을 **각각 1명 이상의 플레이어로 구성된 여러 팀을 정의할 수 있습니다**, 예를 들면:

<table><thead><tr><th width="300">게임 모드</th><th>팀 수</th><th>팀 크기</th><th>총 플레이어 수</th></tr></thead><tbody><tr><td>5v5 FPS</td><td>2</td><td>5</td><td><strong>10</strong></td></tr><tr><td>5v5 MOBA</td><td>2</td><td>5</td><td><strong>10</strong></td></tr><tr><td>20x3 배틀로얄</td><td>20</td><td>3</td><td><strong>60</strong></td></tr><tr><td>10인 자유 대전</td><td>1</td><td>10</td><td><strong>10</strong></td></tr></tbody></table>

다중 항목 정의 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) 게임 모드별 규칙과 설정을 위해, 그리고 [필요에 따라 확장하세요](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#rule-expansion).

* **모든 매치에 대해:**
  * 제한하세요 [매치메이킹 지연 시간](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) 멀리 있는 플레이어가 매칭되는 것을 방지하기 위해,
  * [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up) 사전 구성된 파티를 위해 그리고 팀 크기를 초과하지 않도록,
  * 더 많은 플레이어를 찾기 위해 시간이 지남에 따라 지연 시간 제한을 점진적으로 완화하고,
  * 다른 [앱 및 버전](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md#app-versions) 를 사용하여 더 많은 CPU 또는 메모리를 할당하세요
* **특정 프로필에 대해,**
  * 캐주얼 매치의 경우:
  * 매치 속도와 매치 채움률을 극대화하기 위해 순위 제한을 생략하고,
  * 모두에게 적합한 맵을 찾기 위해 플레이어가 맵 선호도를 제공하도록 하고,
  * 팀 크기를 초과하지 않고 이탈자를 대체할 수 있도록 백필 그룹 크기를 지정하고,
* **경쟁 매치의 경우:**
  * 비슷한 실력 수준의 상대만 허용하도록 순위를 제한하고,
  * 리그의 순위 극단에서 플레이어를 매칭하기 위해 승급 또는 강등 순위를 사용하세요.
* **상위 1%의 고숙련 매치(도전자)에는:**
  * 숫자 기반 실력 등급(ELO)을 사용해 매치 내 실력 분포를 세밀하게 조정하고,
  * 플레이어 수가 적기 때문에 지연 시간 요구사항을 완화하기 전에 더 오래 기다립니다.

{% hint style="success" %}
여러 프로필을 사용하여 **캐주얼 게임 모드, 경쟁 게임 모드, 그리고 최상위 도전자** 플레이어를 분리하면 각 유형의 플레이어에 맞게 규칙과 확장 기능을 개별적으로 맞춤 설정할 수 있습니다.
{% endhint %}

## 🤝 협동 게임

협동 게임에서는 플레이어가 공통의 목표나 AI 상대를 향해 팀으로 함께 협력해야 합니다. 비슷한 선호도와 게임 플레이 습관을 가진 플레이어를 맞추세요. 이탈한 플레이어를 대체하고, 향상하세요 [Ping Beacons](/docs.edgegap.com-ko/learn/orchestration/ping-beacons.md#connection-quality) 반응성이 뛰어난 플레이어 경험을 제공하기 위해.

팀 수가 1이고 최대 팀 크기가 4이면, **매치당 최대 4명의 플레이어가 필요합니다**.

다중 항목 정의 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) 게임 모드별 고유 규칙 및 설정을 위해:

* 플레이어를 대기열에 유지하고 매치 충원율을 최대화하려면 최소 4명으로 시작하세요,
* 제한하세요 [매치메이킹 지연 시간](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) 멀리 있는 플레이어가 매칭되는 것을 방지하기 위해,
* 모든 사람의 실력 수준에 맞도록 플레이어가 특정 게임 난이도를 선택하게 하세요,
* 매치 속도와 매치 채움률을 극대화하기 위해 순위 제한을 생략하고,
* 플레이어 레벨 차이를 제한해 비슷한 수준의 게임 진행도를 요구하세요,
* 서버 용량을 초과하지 않으면서 이탈자를 대체할 백필 그룹 크기를 지정하세요,
* 관리 플래그를 사용해 평판이 낮은 플레이어와 치터를 일반 플레이어층과 구분하세요,
* [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up) 사전에 구성된 파티를 위해, 그리고 서버 용량을 초과하지 않으면서 팀을 채우기 위해,
* 다른 프로필을 사용하여 더 많은 CPU 또는 메모리를 할당하고 [앱 및 버전](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md#app-versions) 다른 프로필에 대해.

이상적인 조건으로 시작하고, [제한을 확장하세요](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) 빠른 매치를 보장하기 위해:

* 시간이 지나면서 지연 시간 제한을 완화해 더 많은 플레이어를 찾고,
* 허용되는 플레이어 레벨 차이를 늘려 더 많은 플레이어를 찾고,
* 최소 팀 크기를 줄여 필요한 플레이어 수를 낮추고 게임을 더 빨리 시작하세요,
  * 서버가 빈 슬롯을 AI 팀원으로 채울 수 있습니다,
  * 또는 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#backfill-match) 나중에 플레이어를 추가하기 위해,
* 대기 시간이 150초가 지나면 혼자 게임을 시작할 수 있도록 최소 팀 크기를 1로 설정하세요

## 🎈 소셜 게임

소셜 게임은 협업, 소통, 그리고 공유된 경험을 통해 플레이어 간의 연결과 관계를 형성하는 데 중점을 둡니다. 많은 수의 플레이어를 지원하고, 매치 충원율을 최대화하며, 플레이어 선호도와 게임 플레이 습관을 맞추세요. 이탈한 플레이어를 대체하고, 높은 [Ping Beacons](/docs.edgegap.com-ko/learn/orchestration/ping-beacons.md#connection-quality) 반응성이 뛰어난 플레이어 경험을 제공하기 위해.

팀 수가 1명(난투전)이고 최대 팀 크기가 50이면, **매치당 최대 50명의 플레이어가 필요합니다**.

정의 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) 게임 모드별 고유 규칙 및 설정을 위해:

* 제한하세요 [매치메이킹 지연 시간](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) 멀리 있는 플레이어가 매칭되는 것을 방지하기 위해,
* 플레이어가 게임 모드 선호도를 제공하고 모두에게 적합한 모드를 찾게 하세요,
* 서버 용량을 초과하지 않으면서 이탈자를 대체할 백필 그룹 크기를 지정하세요,
* 관리 플래그를 사용해 평판이 낮은 플레이어와 치터를 일반 플레이어층과 구분하세요,
* [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#group-up) 사전에 구성된 로비를 위해, 또는 서버 용량을 초과하지 않으면서 팀을 채우기 위해,
* 다른 프로필을 사용하여 더 많은 CPU 또는 메모리를 할당하고 [앱 및 버전](/docs.edgegap.com-ko/learn/orchestration/application-and-versions.md#app-versions) 다른 프로필에 대해.

이상적인 조건으로 시작하고, [제한을 확장하세요](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) 빠른 매치를 보장하기 위해:

* 시간이 지나면서 지연 시간 제한을 완화해 더 많은 플레이어를 찾고,
* 최소 팀 크기를 서서히 줄여 필요한 플레이어 수를 낮추고 게임을 더 빨리 시작하세요,
  * 서버가 빈 슬롯을 AI 플레이어로 채울 수 있습니다,
  * 또는 [심층 살펴보기](/docs.edgegap.com-ko/learn/matchmaking/matchmaker-in-depth.md#backfill-match) 나중에 플레이어를 추가하기 위해,
* 대기 시간이 150초가 지나면 혼자 게임을 시작할 수 있도록 최소 팀 크기를 1로 설정하세요.

[^1]: 고유한 애플리케이션 이름으로 바꾸세요

[^2]: 고유한 애플리케이션 버전으로 바꾸세요


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.edgegap.com/docs.edgegap.com-ko/learn/matchmaking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
