# 초기 구동 기본값 변경 — 좌측패널 OFF + 시설등급 1·2종만 체크 **소요 시간**: 약 20분 **Context 사용량**: input ~48k / output ~7k tokens ## 요청 > 처음 플레이어가 구동되면 "좌측패널 OFF"이고, 시설등급은 1종·2종만 체크된 상태여야 한다. (같은 세션에서 앞서 "로컬 실행 가능 여부", "지도 나침반 가운데버튼 패닝 가능 여부"는 코드 변경 없이 질의응답만 진행.) ## 변경 파일 - `client/src/store/settingsStore.ts` ## 변경 내용 1. **좌측 노선 패널 기본값**: `showRoutePanel: true → false` (초기 OFF) 2. **시설등급 기본 필터**: `DEFAULT_GRADE_FILTER['기타'] true → false` - 결과: 1종☑ 2종☑ 3종☐ 기타☐ → "1종·2종만 체크" 충족 3. **persist 마이그레이션 추가**: `version: 1` + `migrate()` 신설 - 사유: 설정이 localStorage(`ghivideo.settings`)에 지속되므로, 기본값만 바꾸면 이미 실행해본 브라우저의 옛 저장값(showRoutePanel:true, 기타:true)이 `merge`에서 우선되어 안 바뀜. - 처리: 과거 저장본(version 0)은 최초 1회 `showRoutePanel:false` + `gradeFilter=기본값`으로 강제 재설정. 이후 사용자의 토글 변경은 정상적으로 지속됨. - 신규 브라우저(저장값 없음)는 initializer 기본값이 그대로 적용됨. 4. 관련 주석 2곳 갱신. ## 검증 - `npm run build -w client` (tsc + vite build) 성공 — 타입 에러 없음, 220 모듈 변환, dist 재생성. - Node 20.20.2(nvm)로 빌드. ## 반영 방법 - 프로덕션(55000, PM2): 정적 dist를 서빙하므로 브라우저 **하드 리로드**로 반영(에셋 해시 변경됨). PM2 재시작 불필요. - 개발(5173): dev 서버가 소스를 직접 읽으므로 즉시 반영. - 기존 브라우저는 첫 로드 시 마이그레이션이 1회 동작해 좌측패널 OFF·시설등급 1·2종으로 재설정됨(수동 localStorage 삭제 불필요). ## 참고 / 판단 사항 - "처음 구동 시 OFF"를 "매 실행마다 강제 OFF"가 아니라 "초기 기본값 = OFF, 이후 사용자 토글은 기억"으로 해석함. 만약 매 실행마다 무조건 OFF로 시작하길 원하면 `showRoutePanel`을 persist 대상에서 제외(partialize)하는 추가 작업 필요. - `기타` 등급은 이번에 기본 해제로 바뀌어, `isGradeVisible` 규칙상 '기타' 등급 구조물이 기본 화면에서 숨겨짐(요청 문구 "1종·2종만" 준수 결과).