From 4c291bb08fb7a8be2d8c80365d9e10ea113a1fc9 Mon Sep 17 00:00:00 2001 From: htlee Date: Sun, 15 Feb 2026 11:38:43 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20CLAUDE.md=20=EA=B8=B0=EC=88=A0=20?= =?UTF-8?q?=EC=8A=A4=ED=83=9D=20=EB=B2=84=EC=A0=84=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20(Step=201=20=EC=99=84=EB=A3=8C=20=EB=B0=98?= =?UTF-8?q?=EC=98=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index e97c9972..b82b2c52 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,14 +5,14 @@ 민간용 데모 버전으로, OSM + OpenSeaMap 기반 지도와 AIS API 폴링 방식의 선박 데이터를 사용. ## 기술 스택 -- **언어**: TypeScript (strict 모드, JS→TS 전환 완료) -- **프레임워크**: React 18 + Vite 5 +- **언어**: TypeScript (strict 모드) +- **프레임워크**: React 19 + Vite 7 - **지도 엔진**: OpenLayers 9 + Deck.gl 9 (MapLibre 전환 예정) -- **상태관리**: Zustand 4 +- **상태관리**: Zustand 5 - **HTTP**: Axios - **스타일**: SASS -- **라우팅**: React Router DOM 6 -- **Lint**: ESLint 8 + @typescript-eslint +- **라우팅**: React Router DOM 6 (v7 future flag 적용) +- **Lint**: ESLint 9 flat config + typescript-eslint 8 ## 빌드 / 실행 ```bash @@ -54,15 +54,15 @@ src/ └── workers/ # Web Worker (signalWorker) ``` -## TypeScript 설정 +## TypeScript / Lint 설정 - `tsconfig.json`: composite 프로젝트 (tsconfig.app.json + tsconfig.node.json) -- `.eslintrc.cjs`: @typescript-eslint/recommended, react-hooks, react-refresh -- pre-commit hook: `npx eslint src/ --ext .ts,.tsx --quiet` +- `eslint.config.js`: ESLint 9 flat config (typescript-eslint 8, react-hooks 7) +- pre-commit hook: `npx eslint src/ --quiet` - 타입 체크: `npx tsc -b --noEmit` ## Git 저장소 - **Remote**: https://gitea.gc-si.dev/gc/ship-gis.git -- **브랜치**: main (보호), develop (작업 브랜치), chore/typescript-migration (TS 전환) +- **브랜치**: main (보호), develop (작업 브랜치), chore/react19-vite7 (Step 1) ## 팀 워크플로우 - 버전: v1.2.0 @@ -73,11 +73,10 @@ src/ 상세 계획: `/Users/lht/.claude/plans/glittery-zooming-feigenbaum.md` -### Step 1: React 19 + Vite 7 + ESLint 9 업그레이드 -- 브랜치: `chore/react19-vite7` (develop 기반) -- React 18→19, Vite 5→7, ESLint 8→9 flat config -- 미사용 패키지 제거 (@stomp/stompjs, sockjs-client, flatgeobuf) -- react-router-dom v6.x 유지 +### Step 1: React 19 + Vite 7 + ESLint 9 업그레이드 (완료) +- 브랜치: `chore/react19-vite7` (develop 병합 대기) +- React 19.2.4, Vite 7.3.1, ESLint 9.39.2, Zustand 5.0.11 +- sockjs-client, flatgeobuf 제거 (@stomp/stompjs는 리플레이 모듈 사용으로 유지) ### Step 2: OpenLayers → MapLibre GL JS 전환 - 브랜치: `refactor/maplibre-migration` (Step 1 병합 후)