서버 브라우저
Edgegap 서버 브라우저에 오신 것을 환영합니다 OPEN BETA. 새 서비스를 미리 체험하고 Discord의 원탁 토론을 통해 향후 방향을 함께 만들어 주시길 바랍니다.
서버 브라우저는 다음을 위한 관리형 서비스입니다 배포 지역화된 인터넷 서비스 제공업체(ISP)가 일시적으로 사고를 해결하고 있을 수 있습니다, 영구적인 서버:
플레이어가 용량, 지연 시간 또는 게임 매개변수에 따라 적절한 서버를 목록화하고 접속하도록 돕습니다 용량, 지연 시간 또는 게임 매개변수를 기반으로;
📢 새 서버를 사전 가열(pre-warm) 전 세계 수요를 대규모로 처리하고 답답한 대기열을 방지하기 위해;
📢 서버 운영 간소화 업데이트, 재시작, 영구성, 메싱 등 운영을 포함합니다.
📢 아이콘으로 표시된 항목은 초기 출시 및 이후에 계획된 기능입니다(아직 이용 불가).
서버 선택을 허용하지 않고 엄격한 규칙 기반으로 플레이어를 매칭하려면 매치메이킹.

✔️ 준비
네트워킹 플로우

서버 브라우저를 사용할 때 중요한 데이터 흐름 네 가지(4)가 있습니다:
배포 API 전용 서버를 배포, 확장 및 관리하는 데 사용됩니다.
사용하세요 v2/deploy API 자체 호스팅 마이크로서비스 및 백엔드 서비스를 매치 기반 세션 24시간 미만 지속됩니다.
사용하세요 프라이빗 플릿 배포 API 시작하려면 대기(스탠바이) 서버 무료 등급 배포는 60분 제한이 있으니 계정 업그레이드를 고려하세요. 영속성.
📢 규칙 기반 자동 확장 및 메싱 지원을 위해 Hot Standby를 사용하세요.
서버 API 전용 서버가 가용성을 알리고 용량을 관리하기 위해 사용합니다.
좌석 예약 API 게임 클라이언트가 전용 서버를 검색하고 연결하는 데 사용합니다.
넷코드 전송은 게임 클라이언트와 전용 서버 간 통신에 사용됩니다.
출시 후에는, 서버 브라우저는 24시간 연중무휴로 실행되어야 합니다 전 세계 플레이어가 서버에 접속할 수 있도록 하기 위해.
▶️ 브라우징 시작
서버/플레이어 수명주기와 효율적인 서버 사용을 위한 책임에 대해 알아보세요.
인증하기
서버 브라우저는 자동으로 두 종류의 토큰을 생성합니다:
서버 토큰 - 다음에 필요함 서버 API 메서드는, 다음과 같이 사용할 수 있습니다 앱 버전 변수로 주입.
모든 API 메서드에 대한 접근을 허용하며, 테스트, 데브옵스 또는 커스텀 오케스트레이터에 유용합니다.
클라이언트 토큰 - 다음에 필요함 모니터 및 좌석 예약 API 게임 클라이언트에서 사용하는 메서드입니다.
토큰 교체를 쉽게 하려면 제3자 비밀 저장소에 이 토큰을 저장하는 것을 권장합니다.
인스턴스 등록(Discover Instance)
배포 API 전용 서버를 배포, 확장 및 관리하는 데 사용됩니다.
사용하세요 v2/deploy API 자체 호스팅 마이크로서비스 및 백엔드 서비스를 매치 기반 세션 24시간 미만 지속됩니다.
사용하세요 프라이빗 플릿 배포 API 시작하려면 대기(스탠바이) 서버 무료 등급 배포는 60분 제한이 있으니 계정 업그레이드를 고려하세요. 영속성.
📢 규칙 기반 자동 확장 및 메싱 지원을 위해 Hot Standby를 사용하세요.
새로운 것을 시작할 때 배포, 서버 브라우저에 새 인스턴스를 알리고 여러 선택적 메타데이터 매개변수를 설정하세요 플레이어 필터링, 정렬 및 브라우징에 유용한:
슬롯 정보 - 팀 수용량 및 팀별 메타데이터(예: 팀 이름),
인스턴스당 최소 하나의 슬롯은 플레이어 용량 관리를 위해 필요합니다;
이름 및 태그 - 사용자 정의 가능하고 고유하며 사람이 읽기 쉬우며 검색 가능한 레이블;
연결 세부정보 - URL, IP, 외부 포트 또는 기타 매개변수;
호환성 데이터 - 서버 버전 또는 지원되는 클라이언트 버전;
지연 시간 수식자 - 도시 및 지역 식별자, 그리고 할당된 핑 비콘 세부정보;
게임 매개변수 - 레벨/장면/맵, 게임 모드, 난이도, 사용된 모드;
플레이어가 필터링하고 적합한 서버를 찾는 데 도움이 되는 기타 모든 맞춤 매개변수.
위의 메타데이터 매개변수는 예시일 뿐이며, 위 항목들을 포함해 어떤 매개변수도 정의할 수 있습니다. 모든 메타데이터 매개변수는 선택 사항이며, 일부 인스턴스는 모든 매개변수를 정의할 필요가 없습니다.
메타데이터는 키는 문자열, 값은 문자열, 숫자, 불리언 또는 문자열 배열을 지원합니다.
중첩된 객체를 직렬화하려면 키에 접근 경로를 다음과 같이 인코딩해 보세요 "object.child.property".
서버는 언제든지 인스턴스 또는 슬롯 메타데이터를 업데이트할 수 있습니다 발견 가능성 기준을 수정하기 위해.
서버 인스턴스는 주기적으로 생존 확인(keep-alive) 하트비트를 전송해야 합니다 지속적인 가용성을 확인하고 충돌 또는 오프라인 서버에 플레이어가 접속 시도하는 것을 방지하기 위해. 30초 동안 하트비트를 놓치면 인스턴스와 모든 보류 중인 좌석 예약이 자동으로 제거됩니다.
📢 서버는 축소(중지)되기 전에 추가 하트비트 요청 없이도 발견 가능 상태를 유지하도록 인스턴스를 "동면 모드(hibernation mode)"로 업데이트할 수 있습니다. 플레이어가 서버 브라우저 동면 중인 인스턴스에 요청하면, 서버 브라우저가 귀하의 서버를 자동으로 재배포합니다.
검색 및 브라우징
플레이어는 서버 인스턴스를 나열하고 결과를 페이지네이션할 수 있습니다 참여할 서버를 찾기 위해. 핑(지연) 데이터를 표시하려면 각 인스턴스의 핑 비콘 세부정보를 읽고 지연 시간을 측정하세요.
인스턴스와 슬롯은 접속 가능한 좌석이나 인덱싱된 메타데이터 매개변수로 필터링할 수 있습니다.
"joinable_seats"
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge
"string"
(메타데이터)
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge 또는
contains
"int" , 또는 "float"
(메타데이터)
eq 또는 ne 또는
lt 또는 le 또는
gt 또는 ge
"bool"
(메타데이터)
eq 또는 ne
지역 및/또는 도시로 필터링하여 지연 시간 측정 전에 선택 범위를 좁히세요.
커서 기반에 대해 알아보세요 서버 브라우저 사용자가 더 많은 결과를 가져오도록 허용하기 위해.
좌석 예약
서버에 접속하기 전에, 해당 인스턴스가 충분한 사용 가능한 용량을 제공하는지 보장하기 위해 좌석 예약이 필요합니다. 예약은 여러 플레이어 그룹 또는 개인 단독으로 포함할 수 있습니다.
슬롯의 접속 가능한 좌석 용량을 초과하는 예약은 자동으로 거부됩니다 (409 Conflict). 접속 가능한 좌석은 아직 다른 플레이어가 예약하지 않은 사용 가능한 좌석입니다.
페더레이티드 아이덴티티: 플레이어는 예약 시 고유한 제3자 플레이어 ID를 제공해야 합니다. 동일한 ID를 보낸 후 그들이 서버 브라우저 서버가 신원을 확인할 수 있게 됩니다.
예약이 성공적으로 이루어지면 (200 OK) 플레이어는 즉시 연결을 시도해야 합니다. 보류 중인 예약은 서버에서 확인되지 않으면 30초 후에 만료됩니다 서버에 의해 확인됩니다.
서버는 임의의 슬롯의 용량을 강제로 변경하거나 슬롯을 추가, 삭제 또는 업데이트할 수 있습니다. 보류 중인 예약이 새 사용 가능 슬롯 용량을 초과하면 해당 슬롯에 대한 모든 예약이 제거됩니다.
서버에 연결하기
플레이어가 적절한 인스턴스를 찾으면, 그들은 메타데이터에서 필요한 연결 세부정보를 가져올 수 있습니다 (URL, IP, 외부 포트). 좌석 예약이 이루어지는 즉시, 플레이어는 배포된 게임 서버에 연결하고 자신의 플레이어 ID를 전달할 수 있습니다.
하려면 PIE(에디터)에서 연결하려면 개발 및 테스트 중에는 물결표(틸드) 키를 누르고 ~ 그리고 입력하세요 open {URL}:{port} 그리고 에디터가 맵을 로드할 때까지 기다리세요.
연결 실패나 검은 화면이 발생하면 우리의 문제 해결 가이드를 참조하세요.
하려면 Unity 에디터를 연결하려면 또는 게임 클라이언트 클라우드 배포에 연결하려면 다음을 입력하세요:
배포(Deployment) 호스트 서버의 IP를 가리키며 보통
가 선택되어 있어야 합니다서버의 IP를 가리키며 보통구성 요소에 있습니다. 외부 포트 가전송(Transport) 컴포넌트에 보통 위치합니다.
연결 시간 초과 또는 기타 문제가 발생하면 우리의 문제 해결 가이드를 참조하세요.
새 연결을 인증하려면, 서버는 모든 신규 플레이어 ID를 포함한 일괄 예약 확인 요청을 보내야 하며, 확인 응답에서 다음 정보를 받습니다:
수락된 플레이어 예약의 선호 슬롯 할당,
만료된 플레이어 예약의 선호 슬롯 할당,
알 수 없는 플레이어 ID 목록.
귀하의 서버는 각 플레이어 그룹을 어떻게 처리할지 결정할 수 있습니다 만료되거나 거부된 사용자를 허용하거나 퇴장/차단할지 여부를 포함하여. 각 인스턴스의 슬롯은 새 사용 가능 좌석 수로 즉시 업데이트되어야 합니다 새 예약이 용량을 초과하지 않도록 하기 위해.
서버 포기(Abandon Server)
플레이어가 떠날 때 서버는 할당된 슬롯을 업데이트하여 새 사용 가능 좌석 수를 반영해야 합니다.
게임 설계상 재접속 기간을 허용한다면 서버는 좌석을 해제하기 전에 잠시 기다릴 수 있습니다.
호스팅 비용을 최적화하려면 플레이어가 없는 서버는 중지하는 것을 권장합니다. 몇 분간 기다렸다가 중지하면 짧은 유휴 기간 동안 재시작 횟수를 줄일 수 있습니다.
다음을 읽어보세요 영속성 답답한 영구 서버 롤백을 방지하기 위해.
⚙️ 구성
서버 브라우저 API는 새 서버 브라우저를 생성(또는 빠른 재시작)할 때 지정된 JSON 구성에서 생성됩니다. 서버 및 슬롯 만료 시간과 커스텀 메타데이터를 지정할 수 있습니다:
최적의 성능을 위해 필터링 또는 정렬에 사용되지 않는 메타데이터에 대해 인덱스를 지정하지 마세요. 비인덱스 매개변수는 여전히 서버 인스턴스 또는 슬롯 세부정보 API 메서드로 설정하고 읽을 수 있습니다, 자세한 내용은 📗 API.
☁️ 호스팅 클러스터
서버 브라우저는 Edgegap에서 24시간 연중무휴로 편리하게 호스팅 및 관리됩니다.
목표에 가장 적합한 호스팅 옵션을 선택하세요:
프라이빗 클러스터 티어
한 번의 클릭으로 프라이빗 클러스터로 업그레이드하여 Edgegap 팀이 유지 관리하는 고가용 호스팅과 공개 출시된 게임에 대한 24/7 라이브 지원 혜택을 누리세요.
인스턴스에 필요한 리소스는 다음 요소에 따라 달라집니다:
플레이어 수 - 플레이어 수가 많을수록 API 요청이 더 많아집니다,
플레이어당 요청 수 - 더 빠른 재시도는 서비스 부하를 증가시키고 리소스를 소비합니다,
서버 수 - 서버 수가 많을수록 저장되는 데이터와 API 요청이 증가합니다,
클라이언트 재시도 폴백 로직 - 지터가 있는 백오프로 재시도하면 트래픽 급증을 분산하는 데 도움이 됩니다,
평균 매치 지속 시간 - 세션이 짧을수록 서버 브라우저 상호작용이 더 자주 필요합니다.
📗 API
게임 클라이언트와 전용 서버는 전체 수명주기 동안 서버 브라우저에 API 요청을 보냅니다.
API 명세를 가져오기 위해 Scalar API 웹 클라이언트 또는 Swagger Editor 세부사항을 검사하려면.
페이지네이션
서버 브라우저는 특정 순서로 필터링된 데이터를 점진적으로 가져오기 위해 커서 페이지네이션을 제공합니다. 이 접근 방식은 더 많은 결과를 가져올 때마다 커서(시작 지점)와 페이지 크기(응답 항목 수)를 보내야 하며, 전통적인 limit-offset 페이지네이션과는 다릅니다.
게임 서버 메타데이터용으로 개발된 독자적인 데이터베이스 인덱싱 시스템과 결합된 커서 페이지네이션은 매우 동적인 데이터를 필터링할 때 빠르고 일관되며 유연한 사용자 경험을 제공합니다.
우리의 목표는 사용자가 첫 페이지에서 적합한 서버를 찾는 것입니다. 최상의 경험을 위해 이전 페이지의 캐시된 결과를 표시하고 사용자가 검색을 클릭할 때만 결과를 새로 고치도록 권장합니다.
🔖 변경 로그
서버 브라우저의 최신 버전은 0.0.4 입니다. 업데이트 및 공지를 주시하세요.
0.0.4 (2026년 1월 05일)
OPEN BETA에 진입하며 다음을 도입합니다 서버 인스턴스 및 슬롯에 대한 필터링 및 정렬!
0.0.3 (2025년 11월 28일)
서버 브라우저 서비스의 초기 릴리스가 CLOSED BETA로 출시되었습니다.
서버 목록 조회, 용량 관리 및 연결 세부정보 획득.
클라우드 배포와 매치 세션 지원 및 프라이빗 플릿으로 항상 온라인 지원.
마지막 업데이트
도움이 되었나요?

