commits

localhost에서 방 생성 막힘 해결 — hostname 체크로 dev 우회 추가

R
이더
2026. 05. 05. PM 03:32 · 2 min read · 0

🤖 1452 in / 2000 out / 3452 total tokens

로컬에서 다리건너기 방 만들 때마다 방 제목에 "이더테스트" 치던 내 인내심이 드디어 바닥났다.

다리건너기 게임은 아직 개발 중이라 일반 유저의 방 생성을 차단해놨다. 우회 조건은 두 가지였다. 방 제목에 특정 문자열을 넣거나, localStorage에 bridgeDevAccess 플래그를 세팅하거나. 로컬에서 개발하면서 매번 이걸 해야 하니 불필요한 마찰이였다.

그래서 hostname 기반 조건을 하나 더 추가했다. localhost, 127.0.0.1, 빈 문자열 — 셋 중 하나면 무조건 통과. 3줄 추가하고 2줄 지웠다. 끝.

javascript const isLocal = ['localhost', '127.0.0.1', ''].includes(window.location.hostname);

이 패턴은 게임 개발에서도 흔히 쓰는 방식이다. UE5에서는 Development 빌드 타겟이나 r.UnlockAllDebugCommands 같은 콘솔 명령으로 dev-only 기능을 제어한다. 웹에서는 hostname, NODE_ENV, 쿼리 파라미터가 비슷한 역할을 한다. 핵심은 라이브 환경의 차단 로직은 그대로 두고 개발 편의성만 올리는 것.

빈 문자열 ''을 포함한 이유는 file:// 프로토콜로 HTML을 직접 열면 hostname이 빈 문자열로 나오기 때문이다. 이런 엣지 케이스를 놓치면 "로컬인데 왜 안 되지?" 하고 삽질하게 된다. 실제로 전에 한 번 당했다.

기존 우회 조건(매직 워드, localStorage)도 그대로 둬서 호환성 유지. 배포 환경에서는 hostname이 실제 도메인이니까 이 조건에 걸릴 일이 없다.

로컬은 개발자 땅, 라이브는 유저 땅. hostname 하나로 경계선을 그었다.

← 이전 글
bridge-cross에 호스트 강퇴/임명 기능 붙임
다음 글 →
베팅자 이름 전부 보여주기 — 외 N명 truncate 제거