release: v0.3 배포 (지도 최적화 + 설정 영속화) #13
44
CLAUDE.md
44
CLAUDE.md
@ -2,34 +2,22 @@
|
|||||||
|
|
||||||
## 프로젝트 개요
|
## 프로젝트 개요
|
||||||
|
|
||||||
- **타입**: React + TypeScript + Vite (모노레포)
|
- **타입**: React 19 + TypeScript 5.9 + Vite 7 (모노레포)
|
||||||
- **Node.js**: `.node-version` 참조 (v24)
|
- **Node.js**: `.node-version` 참조 (v24)
|
||||||
- **패키지 매니저**: npm (workspaces)
|
- **패키지 매니저**: npm (workspaces)
|
||||||
- **구조**: apps/web (프론트엔드) + apps/api (백엔드 API)
|
- **구조**: apps/web (프론트엔드) + apps/api (백엔드 API 프록시)
|
||||||
|
|
||||||
## 빌드 및 실행
|
## 빌드 및 실행
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 의존성 설치
|
npm install # 의존성 설치
|
||||||
npm install
|
npm run dev # 전체 개발 서버
|
||||||
|
|
||||||
# 전체 개발 서버
|
|
||||||
npm run dev
|
|
||||||
|
|
||||||
# 개별 개발 서버
|
|
||||||
npm run dev:web # 프론트엔드 (Vite)
|
npm run dev:web # 프론트엔드 (Vite)
|
||||||
npm run dev:api # 백엔드 (Fastify + tsx watch)
|
npm run dev:api # 백엔드 (Fastify + tsx watch)
|
||||||
|
|
||||||
# 빌드
|
|
||||||
npm run build # 전체 빌드 (web + api)
|
npm run build # 전체 빌드 (web + api)
|
||||||
npm run build:web # 프론트엔드만
|
npm run build:web # 프론트엔드만
|
||||||
npm run build:api # 백엔드만
|
|
||||||
|
|
||||||
# 린트
|
|
||||||
npm run lint # apps/web ESLint
|
npm run lint # apps/web ESLint
|
||||||
|
npm run prepare:data # 정적 데이터 준비
|
||||||
# 데이터 준비
|
|
||||||
npm run prepare:data
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 프로젝트 구조
|
## 프로젝트 구조
|
||||||
@ -37,19 +25,18 @@ npm run prepare:data
|
|||||||
```
|
```
|
||||||
gc-wing-dev/
|
gc-wing-dev/
|
||||||
├── apps/
|
├── apps/
|
||||||
│ ├── web/ # React 19 + Vite 7 + MapLibre + Deck.gl
|
│ ├── web/ # @wing/web - React 19 + Vite 7
|
||||||
│ │ └── src/
|
│ │ └── src/
|
||||||
│ │ ├── app/ # App.tsx, styles
|
│ │ ├── app/ # App.tsx, styles.css
|
||||||
│ │ ├── entities/ # 도메인 모델 (vessel, zone, aisTarget, legacyVessel)
|
│ │ ├── entities/ # 도메인 모델 (aisTarget, vessel, zone, legacyVessel, subcable)
|
||||||
│ │ ├── features/ # 기능 단위 (mapToggles, typeFilter, aisPolling 등)
|
│ │ ├── features/ # 기능 모듈 (aisPolling, legacyDashboard, map3dSettings, mapSettings, mapToggles, typeFilter)
|
||||||
│ │ ├── pages/ # 페이지 (DashboardPage)
|
│ │ ├── pages/ # dashboard, login, denied, pending
|
||||||
│ │ ├── shared/ # 공통 유틸 (lib/geo, lib/color, lib/map)
|
│ │ ├── shared/ # auth (Google OAuth), lib (geo, color, map), hooks (usePersistedState)
|
||||||
│ │ └── widgets/ # UI 위젯 (map3d, vesselList, info, alarms 등)
|
│ │ └── widgets/ # map3d, vesselList, info, alarms, relations, aisInfo, aisTargetList, topbar, speed, legend, subcableInfo
|
||||||
│ └── api/ # Fastify 5 + TypeScript
|
│ └── api/ # @wing/api - Fastify 5
|
||||||
│ └── src/
|
│ └── src/index.ts # AIS 프록시 + zones 엔드포인트
|
||||||
│ └── index.ts
|
|
||||||
├── data/ # 정적 데이터
|
├── data/ # 정적 데이터
|
||||||
├── scripts/ # 빌드 스크립트 (prepare-zones, prepare-legacy)
|
├── scripts/ # prepare-zones.mjs, prepare-legacy.mjs
|
||||||
└── legacy/ # 레거시 데이터
|
└── legacy/ # 레거시 데이터
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -59,6 +46,7 @@ gc-wing-dev/
|
|||||||
|------|------|
|
|------|------|
|
||||||
| 프론트엔드 | React 19, Vite 7, TypeScript 5.9 |
|
| 프론트엔드 | React 19, Vite 7, TypeScript 5.9 |
|
||||||
| 지도 | MapLibre GL JS 5, Deck.gl 9 |
|
| 지도 | MapLibre GL JS 5, Deck.gl 9 |
|
||||||
|
| 인증 | Google OAuth (AuthProvider + ProtectedRoute) |
|
||||||
| 백엔드 | Fastify 5, TypeScript |
|
| 백엔드 | Fastify 5, TypeScript |
|
||||||
| 린트 | ESLint 9, Prettier |
|
| 린트 | ESLint 9, Prettier |
|
||||||
|
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user