From e04e8af7989d3221b90e2cfe2ed82bfa47c53d30 Mon Sep 17 00:00:00 2001 From: Mina Choi Date: Wed, 20 May 2026 11:59:32 +0900 Subject: [PATCH] =?UTF-8?q?feat(dev):=20VITE=5FENABLE=5FDEV=5FROUTES=20?= =?UTF-8?q?=EB=A1=9C=20=EB=B9=84-=EB=A1=9C=EC=BB=AC=ED=98=B8=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EC=97=90=EC=84=9C=EB=8F=84=20/dev/*=C2=B7/test=20?= =?UTF-8?q?=ED=97=88=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 스테이징/IP 서버 빌드에서 디버그 라우트를 켤 수 있게 env flag 추가. 운영 빌드는 false 로 유지. Co-Authored-By: Claude Opus 4.7 (1M context) --- .env.example | 4 ++++ src/features/dev/components/DevOnly.tsx | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index dab25b2..a8708d4 100644 --- a/.env.example +++ b/.env.example @@ -5,3 +5,7 @@ VITE_API_BASE_URL=http://localhost:8001 # 백엔드 API 키 — 모든 요청에 x-api-key 헤더로 전송 VITE_API_KEY= + +# 'true' 로 설정 시 비-로컬호스트 환경(스테이징/IP 서버 등)에서도 /dev/* 와 /test 라우트 허용 +# 운영(production) 에는 절대 'true' 로 두지 말 것 +VITE_ENABLE_DEV_ROUTES=false diff --git a/src/features/dev/components/DevOnly.tsx b/src/features/dev/components/DevOnly.tsx index f660205..469a0d2 100644 --- a/src/features/dev/components/DevOnly.tsx +++ b/src/features/dev/components/DevOnly.tsx @@ -1,7 +1,11 @@ /** * DevOnly — `/dev/*` 라우트 가드. * - * `window.location.hostname` 이 로컬호스트 계열이 아닐 경우 루트로 리다이렉트. + * 허용 조건: + * - 빌드 시 `VITE_ENABLE_DEV_ROUTES=true` 가 설정된 경우, 또는 + * - `window.location.hostname` 이 로컬호스트 계열인 경우. + * 그 외에는 루트로 리다이렉트. + * * 클라이언트 사이드 가드라 보안 의미보다는 "운영 도메인에서 실수로 노출되는 것 방지" 용도. * 진짜 차단이 필요하면 서버/CDN 레벨에서 경로를 막아야 한다. */ @@ -20,8 +24,12 @@ function isLocalHost(): boolean { return LOCAL_HOSTNAMES.has(window.location.hostname); } +function isDevRoutesEnabled(): boolean { + return import.meta.env.VITE_ENABLE_DEV_ROUTES === 'true'; +} + export default function DevOnly() { - if (!isLocalHost()) { + if (!isDevRoutesEnabled() && !isLocalHost()) { return ; } return ;