> 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/ko/docs/tools-and-integrations/unreal-eos-lobby-integration.md).

# EOS 로비 통합

Unreal Engine 프로젝트에서 Epic Online Services 로비와 Edgegap을 통합하여 그룹화된 플레이어를 게임 서버에 배치하세요.

이 가이드는 Unreal 게임 프로젝트에서 Edgegap을 EOS 로비와 함께 작동하도록 통합하는 방법을 보여줍니다. 일부 단계에서는 토큰을 사용하여 API에 요청을 보내야 하며, `curl` 아래에 제공된 명령을 사용하면 각 응답을 미리 볼 수 있어 코드에서 이를 어떻게 처리할지 결정할 수 있습니다. 요청에서 토큰을 사용할 때는 다음을 반드시 유지하세요. `토큰` 키워드.

{% hint style="success" %}
**다음부터 시작하는 것을 권장합니다:** [Unreal Engine](/ko/unreal-engine.md) **진행하기 전에 게임 서버를 구축하는 가이드.**
{% endhint %}

{% hint style="warning" %}
안전상의 이유로, 프로덕션 환경에서는 클라이언트가 API 토큰에 접근할 수 있으므로 EOS 로비 소유자가 Edgegap API에 직접 요청을 보내는 것은 권장되지 않습니다. 대신 이러한 요청을 관리할 별도의 서비스를 사용해야 합니다.
{% endhint %}

### 1. 플레이어의 공인 IP를 가져와 저장하기

우선, 로비에 참여하는 각 플레이어—로비 소유자 포함—는 자신의 공인 IP를 가져와 다음과 같이 저장해야 합니다: [로비 멤버 속성](https://dev.epicgames.com/docs/game-services/lobbies#lobby-and-lobby-member-properties).

```
curl --location --request GET 'https://api.edgegap.com/v1/ip' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

### 2. 배포 생성하기

로비 소유자가 매치를 시작할 준비가 되었다고 판단하면, 저장된 공인 IP를 사용하여 Edgegap에 새 배포를 생성하도록 요청을 보내야 합니다.

```
curl --location --request POST 'https://api.edgegap.com/v1/deploy' \
--header 'Content-Type: application/json' \
--header 'Authorization: [EDGEGAP_API_TOKEN]' \
--data-raw '{
    "app_name": "[EDGEGAP_APP_NAME]",
    "version_name": "[EDGEGAP_APP_VERSION]",
    "ip_list": [
        "[LOBBY_MEMBER_IP]"
    ]
}'
```

그 후, 로비 소유자는 배포 생성 요청의 응답에서 제공된 request\_id를 사용하여 배포를 계속 폴링해야 합니다. 응답에 배포의 `current_status` 다음으로 설정되어 `READY`로 표시되면, 로비 소유자는 배포의 IP 및 포트 값을 다음과 같이 설정해야 합니다: [EOS 로비 속성](https://dev.epicgames.com/docs/game-services/lobbies#lobby-and-lobby-member-properties).

```
curl --location --request GET 'https://api.edgegap.com/v1/status/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

### 3. 배포에 연결하기

플레이어가 IP와 포트 값이 할당되었다는 알림을 받으면, 이를 클라이언트 캐시와 비교한 다음 서버에 연결하여 매치를 진행할 수 있습니다.

### 4. 매치와 배포 종료하기

매치가 끝나면 로비 소유자는 EOS 로비 속성에서 IP 및 포트 값을 해제하며, 그러면 다른 모든 플레이어에게 서버에서 정상적으로 연결을 종료하라는 알림이 전달됩니다. 애플리케이션에 환경 변수를 주입하는 설정이 있다면, 이 시점에 내부에서 배포를 종료하는 데 사용할 수 있습니다.

서버 외부에서 배포를 종료하려면 다음과 같은 요청을 `curl` 아래에 표시된 명령 대신 사용할 수 있습니다.

```
curl --location --request DELETE 'https://api.edgegap.com/v1/stop/[REQUEST_ID]' \
--header 'Authorization: [EDGEGAP_API_TOKEN]'
```

플레이어가 로비에 남아 있다면, 로비 소유자는 같은 사람들과 리매치를 시작하기 위해 새 배포를 요청하는 단계부터 절차를 반복할 수 있습니다.
