gc-wing/CLAUDE.md
htlee 918b80e06a chore: 팀 프로젝트 워크플로우 세팅
- pnpm → npm 전환 (워크스페이스 유지)
- .claude/ 팀 규칙(5), 스킬(4), 설정, hooks 스크립트(3) 추가
- .githooks/ commit-msg, post-checkout, pre-commit 추가
- Nexus npm 프록시 설정 (.npmrc — URL만, 인증 제외)
- .editorconfig, .prettierrc, .node-version(24) 추가
- CLAUDE.md 프로젝트 설명서 생성
- Map3D.tsx 미사용 함수 제거 (getDeckShipAngle)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:18:40 +09:00

2.3 KiB

Wing Fleet Dashboard (gc-wing)

프로젝트 개요

  • 타입: React + TypeScript + Vite (모노레포)
  • Node.js: .node-version 참조 (v24)
  • 패키지 매니저: npm (workspaces)
  • 구조: apps/web (프론트엔드) + apps/api (백엔드 API)

빌드 및 실행

# 의존성 설치
npm install

# 전체 개발 서버
npm run dev

# 개별 개발 서버
npm run dev:web    # 프론트엔드 (Vite)
npm run dev:api    # 백엔드 (Fastify + tsx watch)

# 빌드
npm run build       # 전체 빌드 (web + api)
npm run build:web   # 프론트엔드만
npm run build:api   # 백엔드만

# 린트
npm run lint        # apps/web ESLint

# 데이터 준비
npm run prepare:data

프로젝트 구조

gc-wing-dev/
├── apps/
│   ├── web/                # React 19 + Vite 7 + MapLibre + Deck.gl
│   │   └── src/
│   │       ├── app/        # App.tsx, styles
│   │       ├── entities/   # 도메인 모델 (vessel, zone, aisTarget, legacyVessel)
│   │       ├── features/   # 기능 단위 (mapToggles, typeFilter, aisPolling 등)
│   │       ├── pages/      # 페이지 (DashboardPage)
│   │       ├── shared/     # 공통 유틸 (lib/geo, lib/color, lib/map)
│   │       └── widgets/    # UI 위젯 (map3d, vesselList, info, alarms 등)
│   └── api/                # Fastify 5 + TypeScript
│       └── src/
│           └── index.ts
├── data/                   # 정적 데이터
├── scripts/                # 빌드 스크립트 (prepare-zones, prepare-legacy)
└── legacy/                 # 레거시 데이터

기술 스택

영역 기술
프론트엔드 React 19, Vite 7, TypeScript 5.9
지도 MapLibre GL JS 5, Deck.gl 9
백엔드 Fastify 5, TypeScript
린트 ESLint 9, Prettier

팀 규칙

  • 코드 스타일: .claude/rules/code-style.md
  • 네이밍 규칙: .claude/rules/naming.md
  • 테스트 규칙: .claude/rules/testing.md
  • Git 워크플로우: .claude/rules/git-workflow.md
  • 팀 정책: .claude/rules/team-policy.md

의존성 관리

  • Nexus 프록시 레포지토리를 통해 npm 패키지 관리 (.npmrc)
  • 새 의존성 추가: npm -w @wing/web install 패키지명
  • devDependency: npm -w @wing/web install -D 패키지명