- 발표자료(좌표투영·측점기반재생) 갱신 + 그림/PDF - 특허 출원 초안 및 도면 - AI 영상요약 서비스 작업기록(docs/history) - 관련 scripts 추가 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
초기 구동 기본값 변경 — 좌측패널 OFF + 시설등급 1·2종만 체크
소요 시간: 약 20분 Context 사용량: input ~48k / output ~7k tokens
요청
처음 플레이어가 구동되면 "좌측패널 OFF"이고, 시설등급은 1종·2종만 체크된 상태여야 한다.
(같은 세션에서 앞서 "로컬 실행 가능 여부", "지도 나침반 가운데버튼 패닝 가능 여부"는 코드 변경 없이 질의응답만 진행.)
변경 파일
client/src/store/settingsStore.ts
변경 내용
- 좌측 노선 패널 기본값:
showRoutePanel: true → false(초기 OFF) - 시설등급 기본 필터:
DEFAULT_GRADE_FILTER['기타'] true → false- 결과: 1종☑ 2종☑ 3종☐ 기타☐ → "1종·2종만 체크" 충족
- persist 마이그레이션 추가:
version: 1+migrate()신설- 사유: 설정이 localStorage(
ghivideo.settings)에 지속되므로, 기본값만 바꾸면 이미 실행해본 브라우저의 옛 저장값(showRoutePanel:true, 기타:true)이merge에서 우선되어 안 바뀜. - 처리: 과거 저장본(version 0)은 최초 1회
showRoutePanel:false+gradeFilter=기본값으로 강제 재설정. 이후 사용자의 토글 변경은 정상적으로 지속됨. - 신규 브라우저(저장값 없음)는 initializer 기본값이 그대로 적용됨.
- 사유: 설정이 localStorage(
- 관련 주석 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종만" 준수 결과).