서버 브라우저
Edgegap Server Browser 공개 베타에 오신 것을 환영합니다. 새로운 서비스를 미리 살펴보고, Discord의 원탁 토론을 통해 이 서비스의 미래를 함께 만들어 가는 기회를 즐기시길 바랍니다.
Server Browser는 다음을 위한 관리형 서비스입니다. 배포 및 영구 서버:
플레이어가 적합한 서버를 검색하고 참여할 수 있도록 돕습니다 용량, 지연 시간 또는 게임 매개변수를 기준으로;
새 서버를 사전 준비하여 전 세계 사용자에게 대규모로 서비스를 제공하고 답답한 대기열을 방지합니다;
서버 운영을 간소화하여 업데이트, 재시작, 지속성, 메시싱 등을 포함합니다.
서버 선택은 허용하지 않으면서, 엄격한 규칙에 따라 플레이어를 매칭하고 싶으신가요? 매치메이킹.

✔️ 준비
흐름과 계층 구조

Server Browser는 두 가지 주요 기능을 제공합니다:
서버 브라우저 게임 클라이언트와 함께 다음을 수행:
적합한 서버 인스턴스를 검색 및 찾고, 슬롯을 확인하고, 사용 가능한 용량을 예약합니다.
인스턴스 슬롯의 자리를 예약하고, 연결 정보를 가져온 뒤 서버에 연결합니다.
다음을 사용하여 배포에서 오는 플레이어 연결을 인증합니다 연합 ID.
발견 기준을 수정하기 위해 인스턴스 슬롯의 사용 가능한 용량 및/또는 메타데이터를 업데이트합니다.
서버 브라우저 (선택 사항) 스케일링 정책과 함께 다음을 수행:
지역 및/또는 기타 기준별로 사용 가능한 서버 인스턴스, 슬롯, 용량을 모니터링합니다.
사전 워밍 또는 즉시 확장을 통해 용량을 늘리기 위해 서버를 배포합니다.
데모, 업데이트, 테스트, QA, 토너먼트 등을 위한 특수 정책으로 운영을 자동화합니다.
출시 후에는 서버 브라우저를 24시간 365일 실행해야 합니다 전 세계 플레이어가 서버에 참여할 수 있도록 보장하기 위해.
▶️ 브라우징 시작
효율적인 서버 사용을 보장하기 위해 서버/플레이어 수명 주기와 각자의 책임에 대해 알아보세요.
인증
Server Browser는 두 가지 유형의 토큰을 자동으로 생성합니다:
서버 토큰 - 다음에 필요: 서버 API 메서드, 다음으로 앱 버전 변수로 주입 가능.
모든 API 메서드에 대한 접근 권한을 부여하며, 테스트, DevOps 또는 사용자 지정 오케스트레이션에 유용합니다.
클라이언트 토큰 - 다음에 필요: 모니터 API 및 좌석 예약 API 게임 클라이언트에서 사용합니다.
토큰 회전을 더 쉽게 하기 위해 이 토큰을 제3자 비밀 저장소에 보관할 것을 권장합니다.
인스턴스 찾기
새로 만들기 배포 초기화될 때 최소 1개의 슬롯이 있는 새 인스턴스를 생성해야 합니다.
참조 서버 브라우저 스케일링 정책에 대해 알아보고 배포를 자동으로 시작하려면.
선택적 사용자 지정 메타데이터 매개변수 플레이어 필터링, 정렬 및 탐색용.
예시:
슬롯 정보 - 팀 용량 및 팀별 메타데이터(예: 팀 이름),
이름 및 태그 - 사용자 지정 가능하고, 고유하며, 사람이 읽을 수 있고 검색 가능한 레이블;
연결 정보 - URL, IP, 외부 포트 또는 기타 매개변수;
호환성 데이터 - 서버 버전 또는 지원되는 클라이언트 버전;
지연 시간 식별자 - 도시 및 지역 식별자, 그리고 할당된 핑 비콘 세부 정보;
게임 매개변수 - 레벨/장면/맵, 게임 모드, 난이도, 사용된 모드;
플레이어가 적합한 서버를 필터링하고 찾는 데 도움이 되는 기타 사용자 지정 매개변수.
위의 메타데이터 매개변수는 예시일 뿐이며, 위 항목을 포함해 어떤 매개변수든 정의할 수 있습니다. 모든 메타데이터 매개변수는 선택 사항이며, 일부 인스턴스는 모든 매개변수를 정의할 필요가 없을 수 있습니다.
메타데이터는 문자열 키와 문자열, 숫자, 불리언 또는 문자열 배열 값을 지원합니다.
중첩된 객체를 직렬화하려면 키에 접근자 경로를 다음과 같이 인코딩해 보세요 "object.child.property".
서버는 언제든지 인스턴스 또는 슬롯 메타데이터를 업데이트하여 발견 가능성 기준을 수정할 수 있습니다.
서버 인스턴스는 정기적으로 유지 알림(heartbeat)을 전송해야 합니다 지속적인 가용성을 확인하고 플레이어가 충돌했거나 오프라인인 서버에 참여하는 것을 방지하기 위해. 설정된 만료 기간 동안 heartbeat가 누락되면 인스턴스와 대기 중인 모든 좌석 예약이 자동으로 삭제됩니다.
검색 및 탐색
플레이어는 서버 인스턴스를 목록으로 보고 결과를 페이지 단위로 탐색하여 참여하고 싶은 서버를 찾을 수 있습니다. 핑(지연 시간) 데이터를 표시하려면 각 인스턴스의 핑 비콘 세부 정보와 지연 시간 측정.
인스턴스와 슬롯은 참여 가능한 좌석 수 또는 인덱싱된 메타데이터 매개변수로 필터링할 수 있습니다..
"joinable_seats"
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge
"string"
(메타데이터)
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge 또는
포함
"int" 또는 "float"
(메타데이터)
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge
"bool"
(메타데이터)
eq 또는 ne
서버 지연 시간을 측정하기 전에 지역 및/또는 도시로 필터링하여 선택 범위를 좁히세요.
커서 기반 페이지네이션에 대해 알아보세요 서버 브라우저 사용자가 더 많은 결과를 가져올 수 있도록 합니다.
좌석 예약
서버에 참여하기 전에, 인스턴스가 충분한 사용 가능 용량을 제공하는지 보장하기 위해 좌석 예약이 필요합니다. 예약에는 플레이어 그룹 또는 단일 개인이 포함될 수 있습니다.
슬롯의 참여 가능한 좌석 용량을 초과하는 예약은 자동으로 거부됩니다 (409 충돌). 참여 가능한 좌석은 아직 다른 플레이어에게 예약되지 않은 사용 가능한 좌석입니다.
연합 ID: 플레이어는 예약에 고유한 제3자 플레이어 ID를 제공해야 합니다. 동일한 ID를 보내면 서버 브라우저 서버가 신원을 확인할 수 있습니다.
예약이 성공적으로 완료되면(200 OK) 플레이어는 즉시 연결을 시도해야 합니다. 보류 중인 예약은 서버에서 확인되지 않으면 30초 후 만료됩니다 .
서버는 모든 슬롯의 용량을 강제로 변경하거나, 추가/삭제/업데이트할 수 있습니다. 보류 중인 예약으로 인해 새로운 사용 가능한 슬롯 용량을 초과하면 해당 슬롯의 모든 예약이 제거됩니다.
서버에 연결
플레이어가 적합한 인스턴스를 찾으면, 다음을 할 수 있습니다 메타데이터에서 필요한 연결 정보를 가져옵니다 (URL, IP, 외부 포트). 좌석 예약이 완료되는 즉시, 플레이어는 배포의 게임 서버에 연결을 진행하고 플레이어 ID를 전달할 수 있습니다.
다음으로 PIE(에디터)에서 연결하려면 개발 및 테스트 중에는 틸드 키를 누르고 ~ 입력하세요 open {URL}:{port} 그런 다음 에디터가 맵을 로드할 때까지 기다리세요.
연결 실패 또는 검은 화면이 발생하면 문제 해결 가이드를 참고하세요.
다음으로 Unity Editor를 연결하려면 또는 게임 클라이언트 를 클라우드 배포에 연결하려면 다음을 입력하세요:
배포 URL 서버의 IP를 가리키며, 보통
NetworkManager구성 요소에 있습니다.외부 포트 다음에 매핑되는 서버의 내부 수신 포트, 보통 Transport 구성 요소에 있습니다.
연결 시간 초과 또는 기타 문제가 발생하면 문제 해결 가이드를 참고하세요.
새 연결을 인증하려면, 서버는 모든 새 플레이어의 ID를 포함한 대량 예약 확인 요청을 보내야 하며, 확인 응답에서 다음 정보를 받습니다:
수락된 플레이어 예약을 선호 슬롯에 할당,
만료된 플레이어 예약을 선호 슬롯에 할당,
알 수 없는 플레이어 ID 목록.
당신의 서버는 각 플레이어 그룹을 어떻게 처리할지 그리고 만료되었거나 거부된 사용자를 허용할지/추방·차단할지 결정할 수 있습니다. 각 인스턴스의 슬롯은 새 사용 가능 좌석 수로 즉시 업데이트되어야 합니다 새 예약이 용량을 초과하지 않도록 보장하기 위해.
서버 포기
플레이어가 나가면 서버는 할당된 슬롯을 업데이트하여 새 사용 가능한 좌석 용량을 반영해야 합니다.
게임 설계가 재연결 기간을 허용한다면, 서버는 좌석을 해제하기 전에 잠시 기다릴 수 있습니다.
호스팅 비용을 최적화하기 위해 플레이어가 없는 서버는 중지할 것을 권장합니다. 그렇게 하기 전에 몇 분 정도 기다리면 짧은 유휴 기간 동안의 재시작 횟수를 줄일 수 있습니다.
다음을 읽어보세요 지속성 답답한 영구 서버 롤백을 방지하기 위해.
🚀 자동 확장
Server Browser는 여러 가지 자동 확장 방식과 호환됩니다:
사전 워밍 방식 - Server Browser 스케일링 정책만으로 서버를 엄격하게 시작,
즉시 실행 방식 - 다음을 통해 시작 매치메이킹 및 Server Browser로 채우기,
사용자 지정 오토스케일러 - 사용자 지정 게임 백엔드와 Server Browser로 채우기.
다음 가이드는 스케일링 정책을 통한 사전 워밍 을 주요 방법으로 다룹니다.
용량 모니터링
스케일링 정책은 서버 인스턴스(발견된 배포) 목록을 지속적으로 새로 고침하며, 매 monitoring_interval . 각 정책에는 동일한 필터링 구문 을 사용한 필터를 포함할 수 있으며, 플레이어가 인스턴스를 검색할 때와 동일합니다 - 지역, 용량 또는 기타 기준별로.
구성한 minimum_active_instances 수량은 다음 중 하나로 간주할 수 있습니다:
고정 용량 항상 실행 상태로 유지하고자 하는 배포 수의
사전 워밍 대기 초기화 지연을 숨기기 위한 배포 버퍼.
고정 용량
고정된 수의 서버를 유지하는 것은 특히 다음과 같은 게임에서 유용할 수 있습니다 지속성, 특히 이러한 게임이 플레이어에게 임대 옵션을 제공할 때 지속성.
이 유형의 정책 구성은 QA, 토너먼트, 클로즈드 알파, 퍼블리셔 데모 또는 기타 제한된 용량의 이벤트 및 운영에도 때때로 사용됩니다.
스케일링 정책은 충돌했거나 중지된 서버를 자동으로 재시작하고 즉시 순환시키는 데 도움이 됩니다.
사전 워밍 대기
플레이어 수요보다 먼저 서버를 시작하는 것은 다음과 같은 경우 유리할 수 있습니다:
대형 릴리스나 업데이트를 출시하고 짧은 시간에 플레이어 유입이 급증할 것으로 예상할 때,
또는 서버 초기화에 30초 이상이 필요한 경우(배포 시간 제외),
또는 게임이 복잡하거나 순환적인 네트워크 종속성을 필요로 하는 메시싱 전략을 구현한 경우.
매치메이킹을 사용할 경우, 다음이 필요합니다 심층 살펴보기 새 배포를 시작하기 전에 이 용량을 활용하기 위해.
서버 배포
모니터링 중인 서버 인스턴스 수가 구성된 활성 인스턴스 최소값 아래로 떨어지면 새 배포가 자동으로 시작됩니다. 모든 배포는 즉시 요청되며, 이후 무한히 재시도됩니다 deployment_registration_period 이 경과한 후.
새 배포가 자동 검색을 수행하고 인스턴스를 생성하는지 확인하세요 정책 필터와 정확히 일치하는지, 아니면 정책이 무한 루프로 돌아가 대량의 사용되지 않는 배포를 생성할 수 있습니다!
정책에 대한 배포 요청을 정의할 때, 우리는 Private Fleet(Cloud로 오버플로우 포함) 또는 Cloud로 직접 배포할 수 있도록 하는 표준 배포 매개변수를 사용합니다:
애플리케이션 및 버전 - 빌드 버전, 리소스 및 기타 오케스트레이션 매개변수,
사용자 - 선호하는 서버 배치를 위한 단일 좌표 세트,
비공개 호스트 ID - 클라우드의 경우 비워 두거나, 원하는 지역 내 호스트를 지정합니다,
태그 - 나중에 이 정책으로 시작된 배포를 찾을 수 있도록 정책 이름으로 태그 지정,
환경 변수 - 서버에 사용자 지정 매개변수와 비밀을 전달,
웹훅 - 배포 수명 주기 이벤트를 게임 백엔드(또는 매치메이커)에 알림,
캐시된 위치 필요 - 캐시된 위치에서만 더 빠른 배포를 선호하는 경우.
예시 정책
필요에 따라 이 정책들을 테스트하고 수정하세요. 대부분의 게임은 여러 정책을 사용합니다.
⚙️ 구성
Server Browser API는 새 Server Browser를 만들 때 지정하는 JSON 구성에서 생성됩니다. 서버 및 슬롯 만료, 그리고 사용자 지정 메타데이터를 지정할 수 있습니다:
최상의 성능을 위해 필터링이나 정렬에 사용되지 않는 메타데이터에 대한 인덱스를 지정하지 마세요. 인덱스가 없는 매개변수도 서버 인스턴스 또는 슬롯 세부 정보 API 메서드로 설정하고 읽을 수 있습니다. 참조 📗 API.
☁️ 호스팅 클러스터
Server Browser는 Edgegap이 24시간 연중무휴로 편리하게 호스팅하고 관리합니다.
목표에 가장 적합한 호스팅 옵션을 선택하세요:
프라이빗 클러스터 등급
한 번의 클릭으로 프라이빗 클러스터로 업그레이드하여, 공개 출시된 게임을 위해 Edgegap 팀이 24시간 라이브 지원과 함께 유지하는 고가용성 호스팅의 혜택을 누리세요.
인스턴스의 리소스 요구 사항은 다음 요인에 따라 달라집니다:
플레이어 수 - 플레이어가 많을수록 API 요청이 증가합니다,
플레이어당 요청 수 - 재시도가 빠를수록 서비스 부하가 증가하고 리소스를 소모합니다,
서버 수 - 서버가 많을수록 저장되는 데이터와 API 요청이 많아집니다,
클라이언트 재시도 폴백 로직 - 지터가 적용된 지수 백오프로 재시도하면 트래픽 급증 피크를 분산하는 데 도움이 됩니다,
평균 매치 지속 시간 - 세션이 짧을수록 Server Browser와 더 자주 상호작용해야 합니다.
📗 API
게임 클라이언트와 전용 서버는 수명 주기 전반에 걸쳐 Server Browser로 API 요청을 보냅니다.
API 사양을 가져오기 Scalar API 웹 클라이언트 또는 Swagger Editor 에서 세부 정보를 확인하세요.
페이지네이션
Server Browser는 필터링된 데이터를 특정 순서로 점진적으로 가져오기 위한 커서 페이지네이션을 제공합니다. 이 방식은 전통적인 limit-offset 페이지네이션과 달리, 더 많은 결과를 가져올 때마다 커서(시작점)와 페이지 크기(응답 항목 수)를 보내야 합니다.
게임 서버 메타데이터용으로 개발된 자체 데이터베이스 인덱싱 시스템과 결합되어, 커서 페이지네이션은 매우 동적인 데이터를 필터링할 때 빠르고 일관되며 유연한 사용자 경험을 제공합니다.
우리의 목표는 사용자가 첫 페이지에서 적합한 서버를 찾는 것입니다. 최상의 경험을 위해 이전 페이지의 캐시된 결과를 보여주고, 사용자가 검색을 클릭할 때만 결과를 새로 고칠 것을 권장합니다.
🔖 변경 로그
Server Browser의 최신 버전은 0.0.5 입니다. 업데이트와 공지를 주의 깊게 확인하세요.
0.0.5 (2026년 3월 18일)
0.0.4 (2026년 1월 5일)
오픈 베타에 진입하며, 다음 기능을 도입합니다 서버 인스턴스와 슬롯에 대한 필터링 및 정렬!
0.0.3 (2025년 11월 28일)
서버 브라우저 서비스의 초기 릴리스가 클로즈드 베타로 출시되었습니다.
서버 목록 조회, 용량 관리, 연결 정보 확인.
클라우드 배포를 통한 매치 세션 지원과 프라이빗 플리트를 통한 상시 온라인 지원.
마지막 업데이트
도움이 되었나요?

