Files
GhiVideo_v4/docs/history/2026-07-03_1030_초기기본값-좌측패널OFF-시설등급1·2종.md
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

2.5 KiB

초기 구동 기본값 변경 — 좌측패널 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종만" 준수 결과).