release: Phase 3 완료 (React 19 + MapLibre GL JS 전환) #2
27
CLAUDE.md
27
CLAUDE.md
@ -5,14 +5,14 @@
|
|||||||
민간용 데모 버전으로, OSM + OpenSeaMap 기반 지도와 AIS API 폴링 방식의 선박 데이터를 사용.
|
민간용 데모 버전으로, OSM + OpenSeaMap 기반 지도와 AIS API 폴링 방식의 선박 데이터를 사용.
|
||||||
|
|
||||||
## 기술 스택
|
## 기술 스택
|
||||||
- **언어**: TypeScript (strict 모드, JS→TS 전환 완료)
|
- **언어**: TypeScript (strict 모드)
|
||||||
- **프레임워크**: React 18 + Vite 5
|
- **프레임워크**: React 19 + Vite 7
|
||||||
- **지도 엔진**: OpenLayers 9 + Deck.gl 9 (MapLibre 전환 예정)
|
- **지도 엔진**: OpenLayers 9 + Deck.gl 9 (MapLibre 전환 예정)
|
||||||
- **상태관리**: Zustand 4
|
- **상태관리**: Zustand 5
|
||||||
- **HTTP**: Axios
|
- **HTTP**: Axios
|
||||||
- **스타일**: SASS
|
- **스타일**: SASS
|
||||||
- **라우팅**: React Router DOM 6
|
- **라우팅**: React Router DOM 6 (v7 future flag 적용)
|
||||||
- **Lint**: ESLint 8 + @typescript-eslint
|
- **Lint**: ESLint 9 flat config + typescript-eslint 8
|
||||||
|
|
||||||
## 빌드 / 실행
|
## 빌드 / 실행
|
||||||
```bash
|
```bash
|
||||||
@ -54,15 +54,15 @@ src/
|
|||||||
└── workers/ # Web Worker (signalWorker)
|
└── workers/ # Web Worker (signalWorker)
|
||||||
```
|
```
|
||||||
|
|
||||||
## TypeScript 설정
|
## TypeScript / Lint 설정
|
||||||
- `tsconfig.json`: composite 프로젝트 (tsconfig.app.json + tsconfig.node.json)
|
- `tsconfig.json`: composite 프로젝트 (tsconfig.app.json + tsconfig.node.json)
|
||||||
- `.eslintrc.cjs`: @typescript-eslint/recommended, react-hooks, react-refresh
|
- `eslint.config.js`: ESLint 9 flat config (typescript-eslint 8, react-hooks 7)
|
||||||
- pre-commit hook: `npx eslint src/ --ext .ts,.tsx --quiet`
|
- pre-commit hook: `npx eslint src/ --quiet`
|
||||||
- 타입 체크: `npx tsc -b --noEmit`
|
- 타입 체크: `npx tsc -b --noEmit`
|
||||||
|
|
||||||
## Git 저장소
|
## Git 저장소
|
||||||
- **Remote**: https://gitea.gc-si.dev/gc/ship-gis.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
|
- 버전: v1.2.0
|
||||||
@ -73,11 +73,10 @@ src/
|
|||||||
|
|
||||||
상세 계획: `/Users/lht/.claude/plans/glittery-zooming-feigenbaum.md`
|
상세 계획: `/Users/lht/.claude/plans/glittery-zooming-feigenbaum.md`
|
||||||
|
|
||||||
### Step 1: React 19 + Vite 7 + ESLint 9 업그레이드
|
### Step 1: React 19 + Vite 7 + ESLint 9 업그레이드 (완료)
|
||||||
- 브랜치: `chore/react19-vite7` (develop 기반)
|
- 브랜치: `chore/react19-vite7` (develop 병합 대기)
|
||||||
- React 18→19, Vite 5→7, ESLint 8→9 flat config
|
- React 19.2.4, Vite 7.3.1, ESLint 9.39.2, Zustand 5.0.11
|
||||||
- 미사용 패키지 제거 (@stomp/stompjs, sockjs-client, flatgeobuf)
|
- sockjs-client, flatgeobuf 제거 (@stomp/stompjs는 리플레이 모듈 사용으로 유지)
|
||||||
- react-router-dom v6.x 유지
|
|
||||||
|
|
||||||
### Step 2: OpenLayers → MapLibre GL JS 전환
|
### Step 2: OpenLayers → MapLibre GL JS 전환
|
||||||
- 브랜치: `refactor/maplibre-migration` (Step 1 병합 후)
|
- 브랜치: `refactor/maplibre-migration` (Step 1 병합 후)
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user