Files
GhiVideo/docs/history/2026-07-03_1030_초기기본값-좌측패널OFF-시설등급1·2종.md
b23042andClaude Opus 4.8 fe25ce00f1 docs: 발표·특허·AI영상요약 자료 및 작업기록 추가
- 발표자료(좌표투영·측점기반재생) 갱신 + 그림/PDF
- 특허 출원 초안 및 도면
- AI 영상요약 서비스 작업기록(docs/history)
- 관련 scripts 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 11:20:03 +09:00

42 lines
2.5 KiB
Markdown

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