From ac3c2048432e402b372552b463c47bb40f73d6c9 Mon Sep 17 00:00:00 2001 From: htlee Date: Sun, 15 Feb 2026 06:13:08 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=AF=BC=EA=B0=84=ED=99=94=20+=20?= =?UTF-8?q?=ED=8C=80=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 해경 관련 코드/에셋 정리 (KCGV, 해경관할구역 FGB, PatrolShipSelector) - 위성/기상/퍼블리시/레거시 모듈 전체 삭제 - STOMP WebSocket → AIS Target API HTTP 폴링 방식 전환 - 세션 인증 임시 비활성화 (VITE_DEV_SKIP_AUTH) - 환경변수 민간 데모용으로 재구성 - 팀 워크플로우 v1.2.0 구조 적용 (.claude/rules, skills, settings) - .githooks, .editorconfig, .node-version 추가 Co-Authored-By: Claude Opus 4.6 --- .claude/rules/code-style.md | 69 ++ .claude/rules/git-workflow.md | 84 ++ .claude/rules/naming.md | 53 ++ .claude/rules/team-policy.md | 34 + .claude/rules/testing.md | 64 ++ .claude/settings.json | 78 ++ .claude/skills/create-mr/SKILL.md | 65 ++ .claude/skills/fix-issue/SKILL.md | 49 ++ .claude/skills/init-project/SKILL.md | 90 +++ .claude/skills/sync-team-workflow/SKILL.md | 73 ++ .claude/workflow-version.json | 1 + .editorconfig | 33 + .env | 35 +- .env.dev | 32 - .env.development | 32 +- .env.qa | 32 - .gitattributes | 3 + .githooks/commit-msg | 60 ++ .githooks/post-checkout | 25 + .githooks/pre-commit | 36 + .gitignore | 36 +- .node-version | 1 + .nvmrc | 1 + CLAUDE.md | 62 ++ public/fgb/해경관할구역.fgb | Bin 291840 -> 0 bytes setup-windows.bat | 78 -- src/App.jsx | 36 - src/api/aisTargetApi.js | 134 ++++ src/api/satelliteApi.js | 482 ------------ src/api/weatherApi.js | 310 -------- .../img/shipDetail/detailKindIcon/kcgv.svg | 1 - src/assets/img/shipKindIcons/kcgv.svg | 1 - src/component/WrapComponent.jsx | 16 - src/component/common/FileUpload.jsx | 35 - src/component/common/Slider.jsx | 24 - src/component/wrap/HeaderComponent.jsx | 17 - src/component/wrap/MainComponent.jsx | 51 -- src/component/wrap/SideComponent.jsx | 106 --- src/component/wrap/ToolComponent.jsx | 146 ---- .../wrap/main/Analysis1Component.jsx | 54 -- .../wrap/main/Analysis2Component.jsx | 132 ---- .../wrap/main/Analysis3Component.jsx | 106 --- src/component/wrap/main/LayerComponent.jsx | 94 --- src/component/wrap/main/MyPageComponent.jsx | 158 ---- .../wrap/main/Satellite1Component.jsx | 191 ----- .../wrap/main/Satellite2Component.jsx | 90 --- .../wrap/main/Satellite3Component.jsx | 96 --- .../wrap/main/Satellite4Component.jsx | 48 -- src/component/wrap/main/ShipComponent.jsx | 162 ---- src/component/wrap/main/Signal1Component.jsx | 61 -- src/component/wrap/main/Signal2Component.jsx | 152 ---- src/component/wrap/main/ToastComponent.jsx | 59 -- src/component/wrap/main/TopComponent.jsx | 21 - src/component/wrap/main/WeatherComponent.jsx | 62 -- src/component/wrap/side/DisplayComponent.jsx | 567 -------------- src/component/wrap/side/NavComponent.jsx | 53 -- src/component/wrap/side/Panel1Component.jsx | 704 ----------------- src/component/wrap/side/Panel2Component.jsx | 420 ---------- src/component/wrap/side/Panel3Component.jsx | 325 -------- src/component/wrap/side/Panel4Component.jsx | 418 ---------- src/component/wrap/side/Panel5Component.jsx | 7 - src/component/wrap/side/Panel6Component.jsx | 80 -- src/component/wrap/side/Panel7Component.jsx | 7 - src/component/wrap/side/Panel8Component.jsx | 7 - src/components/auth/SessionGuard.jsx | 24 +- src/components/layout/SideNav.jsx | 31 - src/components/layout/Sidebar.jsx | 29 +- src/components/map/PatrolShipSelector.jsx | 203 ----- src/components/map/PatrolShipSelector.scss | 258 ------- src/components/map/TopBar.jsx | 3 - src/components/ship/ShipContextMenu.jsx | 8 +- src/hooks/useCoastGuardLayer.js | 160 ---- src/hooks/useShipData.js | 273 ++----- src/map/MapContainer.jsx | 7 - src/map/layers/satelliteLayer.js | 131 ---- src/pages/SatellitePage.jsx | 57 -- src/pages/WeatherPage.jsx | 63 -- src/publish/PublishRoutes.jsx | 134 ---- src/publish/components/FileUpload.jsx | 35 - src/publish/components/Slider.jsx | 24 - src/publish/index.jsx | 21 - src/publish/layouts/HeaderComponent.jsx | 36 - src/publish/layouts/MainComponent.jsx | 11 - src/publish/layouts/PublishLayout.jsx | 57 -- src/publish/layouts/SideComponent.jsx | 94 --- src/publish/layouts/ToolComponent.jsx | 131 ---- src/publish/layouts/WrapComponent.jsx | 15 - src/publish/pages/Analysis1Component.jsx | 48 -- src/publish/pages/Analysis2Component.jsx | 129 ---- src/publish/pages/Analysis3Component.jsx | 198 ----- src/publish/pages/Analysis4Component.jsx | 235 ------ src/publish/pages/DisplayComponent.jsx | 355 --------- src/publish/pages/EmptyMain.jsx | 4 - src/publish/pages/LayerComponent.jsx | 91 --- src/publish/pages/MyPageComponent.jsx | 208 ----- src/publish/pages/NavComponent.jsx | 71 -- src/publish/pages/Panel1Component.jsx | 727 ------------------ src/publish/pages/Panel1DetailComponent.jsx | 112 --- src/publish/pages/Panel2Component.jsx | 420 ---------- src/publish/pages/Panel3Component.jsx | 323 -------- src/publish/pages/Panel4Component.jsx | 521 ------------- src/publish/pages/Panel5Component.jsx | 7 - src/publish/pages/Panel6Component.jsx | 77 -- src/publish/pages/Panel7Component.jsx | 7 - src/publish/pages/Panel8Component.jsx | 7 - src/publish/pages/ReplayComponent.jsx | 100 --- src/publish/pages/Satellite1Component.jsx | 189 ----- src/publish/pages/Satellite2Component.jsx | 87 --- src/publish/pages/Satellite3Component.jsx | 94 --- src/publish/pages/Satellite4Component.jsx | 50 -- src/publish/pages/ShipComponent.jsx | 169 ---- src/publish/pages/Signal1Component.jsx | 58 -- src/publish/pages/Signal2Component.jsx | 149 ---- src/publish/pages/ToastComponent.jsx | 59 -- src/publish/pages/TopComponent.jsx | 21 - src/publish/pages/TrackComponent.jsx | 41 - src/publish/pages/WeatherComponent.jsx | 71 -- src/publish/scss/HeaderComponent.scss | 109 --- src/publish/scss/Layout.scss | 557 -------------- src/publish/scss/MainComponent.scss | 188 ----- src/publish/scss/SideComponent.scss | 539 ------------- src/publish/scss/ToolComponent.scss | 153 ---- src/publish/scss/WrapComponent.scss | 7 - .../components/SatelliteImageManage.jsx | 387 ---------- src/satellite/components/SatelliteManage.jsx | 204 ----- .../SatelliteManageRegisterPopup.jsx | 254 ------ .../components/SatelliteProviderManage.jsx | 182 ----- .../SatelliteProviderRegisterPopup.jsx | 257 ------- .../components/SatelliteRegisterPopup.jsx | 503 ------------ src/satellite/components/Slider.jsx | 34 - src/satellite/hooks/useDraggable.js | 36 - src/stores/authStore.js | 7 +- src/stores/mapStore.js | 3 - src/stores/satelliteStore.js | 13 - src/types/constants.js | 2 +- src/weather/components/AviationWeather.jsx | 267 ------- src/weather/components/TidalInfo.jsx | 349 --------- src/weather/components/TidalObservation.jsx | 289 ------- src/weather/components/TyphoonInfo.jsx | 190 ----- src/weather/components/WeatherAlert.jsx | 143 ---- 컴퍼넌트_분석설계.md | 51 -- 141 files changed, 1133 insertions(+), 16583 deletions(-) create mode 100644 .claude/rules/code-style.md create mode 100644 .claude/rules/git-workflow.md create mode 100644 .claude/rules/naming.md create mode 100644 .claude/rules/team-policy.md create mode 100644 .claude/rules/testing.md create mode 100644 .claude/settings.json create mode 100644 .claude/skills/create-mr/SKILL.md create mode 100644 .claude/skills/fix-issue/SKILL.md create mode 100644 .claude/skills/init-project/SKILL.md create mode 100644 .claude/skills/sync-team-workflow/SKILL.md create mode 100644 .claude/workflow-version.json create mode 100644 .editorconfig delete mode 100644 .env.dev delete mode 100644 .env.qa create mode 100644 .gitattributes create mode 100755 .githooks/commit-msg create mode 100755 .githooks/post-checkout create mode 100755 .githooks/pre-commit create mode 100644 .node-version create mode 100644 .nvmrc create mode 100644 CLAUDE.md delete mode 100644 public/fgb/해경관할구역.fgb delete mode 100644 setup-windows.bat create mode 100644 src/api/aisTargetApi.js delete mode 100644 src/api/satelliteApi.js delete mode 100644 src/api/weatherApi.js delete mode 100644 src/assets/img/shipDetail/detailKindIcon/kcgv.svg delete mode 100644 src/assets/img/shipKindIcons/kcgv.svg delete mode 100644 src/component/WrapComponent.jsx delete mode 100644 src/component/common/FileUpload.jsx delete mode 100644 src/component/common/Slider.jsx delete mode 100644 src/component/wrap/HeaderComponent.jsx delete mode 100644 src/component/wrap/MainComponent.jsx delete mode 100644 src/component/wrap/SideComponent.jsx delete mode 100644 src/component/wrap/ToolComponent.jsx delete mode 100644 src/component/wrap/main/Analysis1Component.jsx delete mode 100644 src/component/wrap/main/Analysis2Component.jsx delete mode 100644 src/component/wrap/main/Analysis3Component.jsx delete mode 100644 src/component/wrap/main/LayerComponent.jsx delete mode 100644 src/component/wrap/main/MyPageComponent.jsx delete mode 100644 src/component/wrap/main/Satellite1Component.jsx delete mode 100644 src/component/wrap/main/Satellite2Component.jsx delete mode 100644 src/component/wrap/main/Satellite3Component.jsx delete mode 100644 src/component/wrap/main/Satellite4Component.jsx delete mode 100644 src/component/wrap/main/ShipComponent.jsx delete mode 100644 src/component/wrap/main/Signal1Component.jsx delete mode 100644 src/component/wrap/main/Signal2Component.jsx delete mode 100644 src/component/wrap/main/ToastComponent.jsx delete mode 100644 src/component/wrap/main/TopComponent.jsx delete mode 100644 src/component/wrap/main/WeatherComponent.jsx delete mode 100644 src/component/wrap/side/DisplayComponent.jsx delete mode 100644 src/component/wrap/side/NavComponent.jsx delete mode 100644 src/component/wrap/side/Panel1Component.jsx delete mode 100644 src/component/wrap/side/Panel2Component.jsx delete mode 100644 src/component/wrap/side/Panel3Component.jsx delete mode 100644 src/component/wrap/side/Panel4Component.jsx delete mode 100644 src/component/wrap/side/Panel5Component.jsx delete mode 100644 src/component/wrap/side/Panel6Component.jsx delete mode 100644 src/component/wrap/side/Panel7Component.jsx delete mode 100644 src/component/wrap/side/Panel8Component.jsx delete mode 100644 src/components/map/PatrolShipSelector.jsx delete mode 100644 src/components/map/PatrolShipSelector.scss delete mode 100644 src/hooks/useCoastGuardLayer.js delete mode 100644 src/map/layers/satelliteLayer.js delete mode 100644 src/pages/SatellitePage.jsx delete mode 100644 src/pages/WeatherPage.jsx delete mode 100644 src/publish/PublishRoutes.jsx delete mode 100644 src/publish/components/FileUpload.jsx delete mode 100644 src/publish/components/Slider.jsx delete mode 100644 src/publish/index.jsx delete mode 100644 src/publish/layouts/HeaderComponent.jsx delete mode 100644 src/publish/layouts/MainComponent.jsx delete mode 100644 src/publish/layouts/PublishLayout.jsx delete mode 100644 src/publish/layouts/SideComponent.jsx delete mode 100644 src/publish/layouts/ToolComponent.jsx delete mode 100644 src/publish/layouts/WrapComponent.jsx delete mode 100644 src/publish/pages/Analysis1Component.jsx delete mode 100644 src/publish/pages/Analysis2Component.jsx delete mode 100644 src/publish/pages/Analysis3Component.jsx delete mode 100644 src/publish/pages/Analysis4Component.jsx delete mode 100644 src/publish/pages/DisplayComponent.jsx delete mode 100644 src/publish/pages/EmptyMain.jsx delete mode 100644 src/publish/pages/LayerComponent.jsx delete mode 100644 src/publish/pages/MyPageComponent.jsx delete mode 100644 src/publish/pages/NavComponent.jsx delete mode 100644 src/publish/pages/Panel1Component.jsx delete mode 100644 src/publish/pages/Panel1DetailComponent.jsx delete mode 100644 src/publish/pages/Panel2Component.jsx delete mode 100644 src/publish/pages/Panel3Component.jsx delete mode 100644 src/publish/pages/Panel4Component.jsx delete mode 100644 src/publish/pages/Panel5Component.jsx delete mode 100644 src/publish/pages/Panel6Component.jsx delete mode 100644 src/publish/pages/Panel7Component.jsx delete mode 100644 src/publish/pages/Panel8Component.jsx delete mode 100644 src/publish/pages/ReplayComponent.jsx delete mode 100644 src/publish/pages/Satellite1Component.jsx delete mode 100644 src/publish/pages/Satellite2Component.jsx delete mode 100644 src/publish/pages/Satellite3Component.jsx delete mode 100644 src/publish/pages/Satellite4Component.jsx delete mode 100644 src/publish/pages/ShipComponent.jsx delete mode 100644 src/publish/pages/Signal1Component.jsx delete mode 100644 src/publish/pages/Signal2Component.jsx delete mode 100644 src/publish/pages/ToastComponent.jsx delete mode 100644 src/publish/pages/TopComponent.jsx delete mode 100644 src/publish/pages/TrackComponent.jsx delete mode 100644 src/publish/pages/WeatherComponent.jsx delete mode 100644 src/publish/scss/HeaderComponent.scss delete mode 100644 src/publish/scss/Layout.scss delete mode 100644 src/publish/scss/MainComponent.scss delete mode 100644 src/publish/scss/SideComponent.scss delete mode 100644 src/publish/scss/ToolComponent.scss delete mode 100644 src/publish/scss/WrapComponent.scss delete mode 100644 src/satellite/components/SatelliteImageManage.jsx delete mode 100644 src/satellite/components/SatelliteManage.jsx delete mode 100644 src/satellite/components/SatelliteManageRegisterPopup.jsx delete mode 100644 src/satellite/components/SatelliteProviderManage.jsx delete mode 100644 src/satellite/components/SatelliteProviderRegisterPopup.jsx delete mode 100644 src/satellite/components/SatelliteRegisterPopup.jsx delete mode 100644 src/satellite/components/Slider.jsx delete mode 100644 src/satellite/hooks/useDraggable.js delete mode 100644 src/stores/satelliteStore.js delete mode 100644 src/weather/components/AviationWeather.jsx delete mode 100644 src/weather/components/TidalInfo.jsx delete mode 100644 src/weather/components/TidalObservation.jsx delete mode 100644 src/weather/components/TyphoonInfo.jsx delete mode 100644 src/weather/components/WeatherAlert.jsx delete mode 100644 컴퍼넌트_분석설계.md diff --git a/.claude/rules/code-style.md b/.claude/rules/code-style.md new file mode 100644 index 00000000..facaabf3 --- /dev/null +++ b/.claude/rules/code-style.md @@ -0,0 +1,69 @@ +# TypeScript/React 코드 스타일 규칙 + +## TypeScript 일반 +- strict 모드 필수 (`tsconfig.json`) +- `any` 사용 금지 (불가피한 경우 주석으로 사유 명시) +- 타입 정의: `interface` 우선 (type은 유니온/인터섹션에만) +- 들여쓰기: 2 spaces +- 세미콜론: 사용 +- 따옴표: single quote +- trailing comma: 사용 + +## React 규칙 + +### 컴포넌트 +- 함수형 컴포넌트 + hooks 패턴만 사용 +- 클래스 컴포넌트 사용 금지 +- 컴포넌트 파일 당 하나의 export default 컴포넌트 +- Props 타입은 interface로 정의 (ComponentNameProps) + +```tsx +interface UserCardProps { + name: string; + email: string; + onEdit?: () => void; +} + +const UserCard = ({ name, email, onEdit }: UserCardProps) => { + return ( +
+

{name}

+

{email}

+ {onEdit && } +
+ ); +}; + +export default UserCard; +``` + +### Hooks +- 커스텀 훅은 `use` 접두사 (예: `useAuth`, `useFetch`) +- 훅은 `src/hooks/` 디렉토리에 분리 +- 복잡한 상태 로직은 커스텀 훅으로 추출 + +### 상태 관리 +- 컴포넌트 로컬 상태: `useState` +- 공유 상태: Context API 또는 Zustand +- 서버 상태: React Query (TanStack Query) 권장 + +### 이벤트 핸들러 +- `handle` 접두사: `handleClick`, `handleSubmit` +- Props로 전달 시 `on` 접두사: `onClick`, `onSubmit` + +## 스타일링 +- CSS Modules 또는 Tailwind CSS (프로젝트 설정에 따름) +- 인라인 스타일 지양 +- !important 사용 금지 + +## API 호출 +- API 호출 로직은 `src/services/`에 분리 +- Axios 또는 fetch wrapper 사용 +- 에러 처리: try-catch + 사용자 친화적 에러 메시지 +- 환경별 API URL은 `.env`에서 관리 + +## 기타 +- console.log 커밋 금지 (디버깅 후 제거) +- 매직 넘버/문자열 → 상수 파일로 추출 +- 사용하지 않는 import, 변수 제거 (ESLint로 검증) +- 이미지/아이콘은 `src/assets/`에 관리 diff --git a/.claude/rules/git-workflow.md b/.claude/rules/git-workflow.md new file mode 100644 index 00000000..4fee6185 --- /dev/null +++ b/.claude/rules/git-workflow.md @@ -0,0 +1,84 @@ +# Git 워크플로우 규칙 + +## 브랜치 전략 + +### 브랜치 구조 +``` +main ← 배포 가능한 안정 브랜치 (보호됨) + └── develop ← 개발 통합 브랜치 + ├── feature/ISSUE-123-기능설명 + ├── bugfix/ISSUE-456-버그설명 + └── hotfix/ISSUE-789-긴급수정 +``` + +### 브랜치 네이밍 +- feature 브랜치: `feature/ISSUE-번호-간단설명` (예: `feature/ISSUE-42-user-login`) +- bugfix 브랜치: `bugfix/ISSUE-번호-간단설명` +- hotfix 브랜치: `hotfix/ISSUE-번호-간단설명` +- 이슈 번호가 없는 경우: `feature/간단설명` (예: `feature/add-swagger-docs`) + +### 브랜치 규칙 +- main, develop 브랜치에 직접 커밋/푸시 금지 +- feature 브랜치는 develop에서 분기 +- hotfix 브랜치는 main에서 분기 +- 머지는 반드시 MR(Merge Request)을 통해 수행 + +## 커밋 메시지 규칙 + +### Conventional Commits 형식 +``` +type(scope): subject + +body (선택) + +footer (선택) +``` + +### type (필수) +| type | 설명 | +|------|------| +| feat | 새로운 기능 추가 | +| fix | 버그 수정 | +| docs | 문서 변경 | +| style | 코드 포맷팅 (기능 변경 없음) | +| refactor | 리팩토링 (기능 변경 없음) | +| test | 테스트 추가/수정 | +| chore | 빌드, 설정 변경 | +| ci | CI/CD 설정 변경 | +| perf | 성능 개선 | + +### scope (선택) +- 변경 범위를 나타내는 짧은 단어 +- 한국어, 영어 모두 허용 (예: `feat(인증): 로그인 기능`, `fix(auth): token refresh`) + +### subject (필수) +- 변경 내용을 간결하게 설명 +- 한국어, 영어 모두 허용 +- 72자 이내 +- 마침표(.) 없이 끝냄 + +### 예시 +``` +feat(auth): JWT 기반 로그인 구현 +fix(배치): 야간 배치 타임아웃 수정 +docs: README에 빌드 방법 추가 +refactor(user-service): 중복 로직 추출 +test(결제): 환불 로직 단위 테스트 추가 +chore: Gradle 의존성 버전 업데이트 +``` + +## MR(Merge Request) 규칙 + +### MR 생성 +- 제목: 커밋 메시지와 동일한 Conventional Commits 형식 +- 본문: 변경 내용 요약, 테스트 방법, 관련 이슈 번호 +- 라벨: 적절한 라벨 부착 (feature, bugfix, hotfix 등) + +### MR 리뷰 +- 최소 1명의 리뷰어 승인 필수 +- CI 검증 통과 필수 (설정된 경우) +- 리뷰 코멘트 모두 해결 후 머지 + +### MR 머지 +- Squash Merge 권장 (깔끔한 히스토리) +- 머지 후 소스 브랜치 삭제 diff --git a/.claude/rules/naming.md b/.claude/rules/naming.md new file mode 100644 index 00000000..4b3c0b18 --- /dev/null +++ b/.claude/rules/naming.md @@ -0,0 +1,53 @@ +# TypeScript/React 네이밍 규칙 + +## 파일명 + +| 항목 | 규칙 | 예시 | +|------|------|------| +| 컴포넌트 | PascalCase | `UserCard.tsx`, `LoginForm.tsx` | +| 페이지 | PascalCase | `Dashboard.tsx`, `UserList.tsx` | +| 훅 | camelCase + use 접두사 | `useAuth.ts`, `useFetch.ts` | +| 서비스 | camelCase | `userService.ts`, `authApi.ts` | +| 유틸리티 | camelCase | `formatDate.ts`, `validation.ts` | +| 타입 정의 | camelCase | `user.types.ts`, `api.types.ts` | +| 상수 | camelCase | `routes.ts`, `constants.ts` | +| 스타일 | 컴포넌트명 + .module | `UserCard.module.css` | +| 테스트 | 대상 + .test | `UserCard.test.tsx` | + +## 변수/함수 + +| 항목 | 규칙 | 예시 | +|------|------|------| +| 변수 | camelCase | `userName`, `isLoading` | +| 함수 | camelCase | `getUserList`, `formatDate` | +| 상수 | UPPER_SNAKE_CASE | `MAX_RETRY`, `API_BASE_URL` | +| boolean 변수 | is/has/can/should 접두사 | `isActive`, `hasPermission` | +| 이벤트 핸들러 | handle 접두사 | `handleClick`, `handleSubmit` | +| 이벤트 Props | on 접두사 | `onClick`, `onSubmit` | + +## 타입/인터페이스 + +| 항목 | 규칙 | 예시 | +|------|------|------| +| interface | PascalCase | `UserProfile`, `ApiResponse` | +| Props | 컴포넌트명 + Props | `UserCardProps`, `ButtonProps` | +| 응답 타입 | 도메인 + Response | `UserResponse`, `LoginResponse` | +| 요청 타입 | 동작 + Request | `CreateUserRequest` | +| Enum | PascalCase | `UserStatus`, `HttpMethod` | +| Enum 값 | UPPER_SNAKE_CASE | `ACTIVE`, `PENDING` | +| Generic | 단일 대문자 | `T`, `K`, `V` | + +## 디렉토리 + +- 모두 kebab-case 또는 camelCase (프로젝트 통일) +- 예: `src/components/common/`, `src/hooks/`, `src/services/` + +## 컴포넌트 구조 예시 + +``` +src/components/user-card/ +├── UserCard.tsx # 컴포넌트 +├── UserCard.module.css # 스타일 +├── UserCard.test.tsx # 테스트 +└── index.ts # re-export +``` diff --git a/.claude/rules/team-policy.md b/.claude/rules/team-policy.md new file mode 100644 index 00000000..16d7553b --- /dev/null +++ b/.claude/rules/team-policy.md @@ -0,0 +1,34 @@ +# 팀 정책 (Team Policy) + +이 규칙은 조직 전체에 적용되는 필수 정책입니다. +프로젝트별 `.claude/rules/`에 추가 규칙을 정의할 수 있으나, 이 정책을 위반할 수 없습니다. + +## 보안 정책 + +### 금지 행위 +- `.env`, `.env.*`, `secrets/` 파일 읽기 및 내용 출력 금지 +- 비밀번호, API 키, 토큰 등 민감 정보를 코드에 하드코딩 금지 +- `git push --force`, `git reset --hard`, `git clean -fd` 실행 금지 +- `rm -rf /`, `rm -rf ~`, `rm -rf .git` 등 파괴적 명령 실행 금지 +- main/develop 브랜치에 직접 push 금지 (MR을 통해서만 머지) + +### 인증 정보 관리 +- 환경변수 또는 외부 설정 파일(`.env`, `application-local.yml`)로 관리 +- 설정 파일은 `.gitignore`에 반드시 포함 +- 예시 파일(`.env.example`, `application.yml.example`)만 커밋 + +## 코드 품질 정책 + +### 필수 검증 +- 커밋 전 빌드(컴파일) 성공 확인 +- 린트 경고 0개 유지 (CI에서도 검증) +- 테스트 코드가 있는 프로젝트는 테스트 통과 필수 + +### 코드 리뷰 +- main 브랜치 머지 시 최소 1명 리뷰 필수 +- 리뷰어 승인 없이 머지 불가 + +## 문서화 정책 +- 공개 API(controller endpoint)에는 반드시 설명 주석 작성 +- 복잡한 비즈니스 로직에는 의도를 설명하는 주석 작성 +- README.md에 프로젝트 빌드/실행 방법 유지 diff --git a/.claude/rules/testing.md b/.claude/rules/testing.md new file mode 100644 index 00000000..5b41b54c --- /dev/null +++ b/.claude/rules/testing.md @@ -0,0 +1,64 @@ +# TypeScript/React 테스트 규칙 + +## 테스트 프레임워크 +- Vitest (Vite 프로젝트) 또는 Jest +- React Testing Library (컴포넌트 테스트) +- MSW (Mock Service Worker, API 모킹) + +## 테스트 구조 + +### 단위 테스트 +- 유틸리티 함수, 커스텀 훅 테스트 +- 외부 의존성 없이 순수 로직 검증 + +```typescript +describe('formatDate', () => { + it('날짜를 YYYY-MM-DD 형식으로 변환한다', () => { + const result = formatDate(new Date('2026-02-14')); + expect(result).toBe('2026-02-14'); + }); + + it('유효하지 않은 날짜는 빈 문자열을 반환한다', () => { + const result = formatDate(new Date('invalid')); + expect(result).toBe(''); + }); +}); +``` + +### 컴포넌트 테스트 +- React Testing Library 사용 +- 사용자 관점에서 테스트 (구현 세부사항이 아닌 동작 테스트) +- `getByRole`, `getByText` 등 접근성 기반 쿼리 우선 + +```tsx +describe('UserCard', () => { + it('사용자 이름과 이메일을 표시한다', () => { + render(); + expect(screen.getByText('홍길동')).toBeInTheDocument(); + expect(screen.getByText('hong@test.com')).toBeInTheDocument(); + }); + + it('편집 버튼 클릭 시 onEdit 콜백을 호출한다', async () => { + const onEdit = vi.fn(); + render(); + await userEvent.click(screen.getByRole('button', { name: '편집' })); + expect(onEdit).toHaveBeenCalledOnce(); + }); +}); +``` + +### 테스트 패턴 +- **Arrange-Act-Assert** 구조 +- 테스트 설명은 한국어로 작성 (`it('사용자 이름을 표시한다')`) +- 하나의 테스트에 하나의 검증 + +## 테스트 커버리지 +- 새로 작성하는 유틸리티 함수: 테스트 필수 +- 컴포넌트: 주요 상호작용 테스트 권장 +- API 호출: MSW로 모킹하여 에러/성공 시나리오 테스트 + +## 금지 사항 +- 구현 세부사항 테스트 금지 (state 값 직접 확인 등) +- `getByTestId` 남용 금지 (접근성 쿼리 우선) +- 스냅샷 테스트 남용 금지 (변경에 취약) +- `setTimeout`으로 비동기 대기 금지 → `waitFor`, `findBy` 사용 diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 00000000..981e9494 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-settings.json", + "permissions": { + "allow": [ + "Bash(yarn *)", + "Bash(npm *)", + "Bash(npx *)", + "Bash(node *)", + "Bash(git status)", + "Bash(git diff*)", + "Bash(git log*)", + "Bash(git branch*)", + "Bash(git checkout*)", + "Bash(git add*)", + "Bash(git commit*)", + "Bash(git pull*)", + "Bash(git fetch*)", + "Bash(git merge*)", + "Bash(git stash*)", + "Bash(git remote*)", + "Bash(git config*)", + "Bash(git rev-parse*)", + "Bash(git show*)", + "Bash(git tag*)", + "Bash(curl -s *)", + "Bash(fnm *)" + ], + "deny": [ + "Bash(git push --force*)", + "Bash(git reset --hard*)", + "Bash(git clean -fd*)", + "Bash(git checkout -- .)", + "Bash(rm -rf /)", + "Bash(rm -rf ~)", + "Bash(rm -rf .git*)", + "Bash(rm -rf /*)", + "Read(./**/.env*)", + "Read(./**/secrets/**)" + ] + }, + "hooks": { + "SessionStart": [ + { + "matcher": "compact", + "hooks": [ + { + "type": "command", + "command": "bash .claude/scripts/on-post-compact.sh", + "timeout": 10 + } + ] + } + ], + "PreCompact": [ + { + "hooks": [ + { + "type": "command", + "command": "bash .claude/scripts/on-pre-compact.sh", + "timeout": 30 + } + ] + } + ], + "PostToolUse": [ + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "command": "bash .claude/scripts/on-commit.sh", + "timeout": 15 + } + ] + } + ] + } +} diff --git a/.claude/skills/create-mr/SKILL.md b/.claude/skills/create-mr/SKILL.md new file mode 100644 index 00000000..741fbc25 --- /dev/null +++ b/.claude/skills/create-mr/SKILL.md @@ -0,0 +1,65 @@ +--- +name: create-mr +description: 현재 브랜치에서 Gitea MR(Merge Request)을 생성합니다 +allowed-tools: "Bash, Read, Grep" +argument-hint: "[target-branch: develop|main] (기본: develop)" +--- + +현재 브랜치의 변경 사항을 기반으로 Gitea에 MR을 생성합니다. +타겟 브랜치: $ARGUMENTS (기본: develop) + +## 수행 단계 + +### 1. 사전 검증 +- 현재 브랜치가 main/develop이 아닌지 확인 +- 커밋되지 않은 변경 사항 확인 (있으면 경고) +- 리모트에 현재 브랜치가 push되어 있는지 확인 (안 되어 있으면 push) + +### 2. 변경 내역 분석 +```bash +git log develop..HEAD --oneline +git diff develop..HEAD --stat +``` +- 커밋 목록과 변경된 파일 목록 수집 +- 주요 변경 사항 요약 작성 + +### 3. MR 정보 구성 +- **제목**: 브랜치의 첫 커밋 메시지 또는 브랜치명에서 추출 + - `feature/ISSUE-42-user-login` → `feat: ISSUE-42 user-login` +- **본문**: + ```markdown + ## 변경 사항 + - (커밋 기반 자동 생성) + + ## 관련 이슈 + - closes #이슈번호 (브랜치명에서 추출) + + ## 테스트 + - [ ] 빌드 성공 확인 + - [ ] 기존 테스트 통과 + ``` + +### 4. Gitea API로 MR 생성 +```bash +# Gitea remote URL에서 owner/repo 추출 +REMOTE_URL=$(git remote get-url origin) + +# Gitea API 호출 +curl -X POST "GITEA_URL/api/v1/repos/{owner}/{repo}/pulls" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{ + "title": "MR 제목", + "body": "MR 본문", + "head": "현재브랜치", + "base": "타겟브랜치" + }' +``` + +### 5. 결과 출력 +- MR URL 출력 +- 리뷰어 지정 안내 +- 다음 단계: 리뷰 대기 → 승인 → 머지 + +## 필요 환경변수 +- `GITEA_TOKEN`: Gitea API 접근 토큰 (없으면 안내) diff --git a/.claude/skills/fix-issue/SKILL.md b/.claude/skills/fix-issue/SKILL.md new file mode 100644 index 00000000..70452ea9 --- /dev/null +++ b/.claude/skills/fix-issue/SKILL.md @@ -0,0 +1,49 @@ +--- +name: fix-issue +description: Gitea 이슈를 분석하고 수정 브랜치를 생성합니다 +allowed-tools: "Bash, Read, Write, Edit, Glob, Grep" +argument-hint: "" +--- + +Gitea 이슈 #$ARGUMENTS 를 분석하고 수정 작업을 시작합니다. + +## 수행 단계 + +### 1. 이슈 조회 +```bash +curl -s "GITEA_URL/api/v1/repos/{owner}/{repo}/issues/$ARGUMENTS" \ + -H "Authorization: token ${GITEA_TOKEN}" +``` +- 이슈 제목, 본문, 라벨, 담당자 정보 확인 +- 이슈 내용을 사용자에게 요약하여 보여줌 + +### 2. 브랜치 생성 +이슈 라벨에 따라 브랜치 타입 결정: +- `bug` 라벨 → `bugfix/ISSUE-번호-설명` +- 그 외 → `feature/ISSUE-번호-설명` +- 긴급 → `hotfix/ISSUE-번호-설명` + +```bash +git checkout develop +git pull origin develop +git checkout -b {type}/ISSUE-{number}-{slug} +``` + +### 3. 이슈 분석 +이슈 내용을 바탕으로: +- 관련 파일 탐색 (Grep, Glob 활용) +- 영향 범위 파악 +- 수정 방향 제안 + +### 4. 수정 계획 제시 +사용자에게 수정 계획을 보여주고 승인을 받은 후 작업 진행: +- 수정할 파일 목록 +- 변경 내용 요약 +- 예상 영향 + +### 5. 작업 완료 후 +- 변경 사항 요약 +- `/create-mr` 실행 안내 + +## 필요 환경변수 +- `GITEA_TOKEN`: Gitea API 접근 토큰 diff --git a/.claude/skills/init-project/SKILL.md b/.claude/skills/init-project/SKILL.md new file mode 100644 index 00000000..f0d4c308 --- /dev/null +++ b/.claude/skills/init-project/SKILL.md @@ -0,0 +1,90 @@ +--- +name: init-project +description: 팀 표준 워크플로우로 프로젝트를 초기화합니다 +allowed-tools: "Bash, Read, Write, Edit, Glob, Grep" +argument-hint: "[project-type: java-maven|java-gradle|react-ts|auto]" +--- + +팀 표준 워크플로우에 따라 프로젝트를 초기화합니다. +프로젝트 타입: $ARGUMENTS (기본: auto — 자동 감지) + +## 프로젝트 타입 자동 감지 + +$ARGUMENTS가 "auto"이거나 비어있으면 다음 순서로 감지: +1. `pom.xml` 존재 → **java-maven** +2. `build.gradle` 또는 `build.gradle.kts` 존재 → **java-gradle** +3. `package.json` + `tsconfig.json` 존재 → **react-ts** +4. 감지 실패 → 사용자에게 타입 선택 요청 + +## 수행 단계 + +### 1. 프로젝트 분석 +- 빌드 파일, 설정 파일, 디렉토리 구조 파악 +- 사용 중인 프레임워크, 라이브러리 감지 +- 기존 `.claude/` 디렉토리 존재 여부 확인 + +### 2. CLAUDE.md 생성 +프로젝트 루트에 CLAUDE.md를 생성하고 다음 내용 포함: +- 프로젝트 개요 (이름, 타입, 주요 기술 스택) +- 빌드/실행 명령어 (감지된 빌드 도구 기반) +- 테스트 실행 명령어 +- 프로젝트 디렉토리 구조 요약 +- 팀 컨벤션 참조 (`.claude/rules/` 안내) + +### 3. .claude/ 디렉토리 구성 +이미 팀 표준 파일이 존재하면 건너뜀. 없는 경우: +- `.claude/settings.json` — 프로젝트 타입별 표준 권한 설정 +- `.claude/rules/` — 팀 규칙 파일 (team-policy, git-workflow, code-style, naming, testing) +- `.claude/skills/` — 팀 스킬 (create-mr, fix-issue, sync-team-workflow) + +### 4. Git Hooks 설정 +```bash +git config core.hooksPath .githooks +``` +`.githooks/` 디렉토리에 실행 권한 부여: +```bash +chmod +x .githooks/* +``` + +### 5. 프로젝트 타입별 추가 설정 + +#### java-maven +- `.sdkmanrc` 생성 (java=17.0.18-amzn 또는 프로젝트에 맞는 버전) +- `.mvn/settings.xml` Nexus 미러 설정 확인 +- `mvn compile` 빌드 성공 확인 + +#### java-gradle +- `.sdkmanrc` 생성 +- `gradle.properties.example` Nexus 설정 확인 +- `./gradlew compileJava` 빌드 성공 확인 + +#### react-ts +- `.node-version` 생성 (프로젝트에 맞는 Node 버전) +- `.npmrc` Nexus 레지스트리 설정 확인 +- `npm install && npm run build` 성공 확인 + +### 6. .gitignore 확인 +다음 항목이 .gitignore에 포함되어 있는지 확인하고, 없으면 추가: +``` +.claude/settings.local.json +.claude/CLAUDE.local.md +.env +.env.* +*.local +``` + +### 7. workflow-version.json 생성 +`.claude/workflow-version.json` 파일을 생성하여 현재 글로벌 워크플로우 버전 기록: +```json +{ + "applied_global_version": "1.0.0", + "applied_date": "현재날짜", + "project_type": "감지된타입" +} +``` + +### 8. 검증 및 요약 +- 생성/수정된 파일 목록 출력 +- `git config core.hooksPath` 확인 +- 빌드 명령 실행 가능 확인 +- 다음 단계 안내 (개발 시작, 첫 커밋 방법 등) diff --git a/.claude/skills/sync-team-workflow/SKILL.md b/.claude/skills/sync-team-workflow/SKILL.md new file mode 100644 index 00000000..ad0e5eea --- /dev/null +++ b/.claude/skills/sync-team-workflow/SKILL.md @@ -0,0 +1,73 @@ +--- +name: sync-team-workflow +description: 팀 글로벌 워크플로우를 현재 프로젝트에 동기화합니다 +allowed-tools: "Bash, Read, Write, Edit, Glob, Grep" +--- + +팀 글로벌 워크플로우의 최신 버전을 현재 프로젝트에 적용합니다. + +## 수행 절차 + +### 1. 글로벌 버전 조회 +Gitea API로 template-common 리포의 workflow-version.json 조회: +```bash +GITEA_URL=$(python3 -c "import json; print(json.load(open('.claude/workflow-version.json')).get('gitea_url', 'http://211.208.115.83:3000'))" 2>/dev/null || echo "http://211.208.115.83:3000") + +curl -sf "${GITEA_URL}/api/v1/repos/gcsc/template-common/raw/workflow-version.json" +``` + +### 2. 버전 비교 +로컬 `.claude/workflow-version.json`과 비교: +- 버전 일치 → "최신 버전입니다" 안내 후 종료 +- 버전 불일치 → 미적용 변경 항목 추출하여 표시 + +### 3. 프로젝트 타입 감지 +자동 감지 순서: +1. `.claude/workflow-version.json`의 `project_type` 필드 확인 +2. 없으면: `pom.xml` → java-maven, `build.gradle` → java-gradle, `package.json` → react-ts + +### 4. 파일 다운로드 및 적용 +Gitea API로 해당 타입 + common 템플릿 파일 다운로드: + +#### 4-1. 규칙 파일 (덮어쓰기) +팀 규칙은 로컬 수정 불가 — 항상 글로벌 최신으로 교체: +``` +.claude/rules/team-policy.md +.claude/rules/git-workflow.md +.claude/rules/code-style.md (타입별) +.claude/rules/naming.md (타입별) +.claude/rules/testing.md (타입별) +``` + +#### 4-2. settings.json (부분 갱신) +- `deny` 목록: 글로벌 최신으로 교체 +- `allow` 목록: 기존 사용자 커스텀 유지 + 글로벌 기본값 병합 +- `hooks`: 글로벌 최신으로 교체 + +#### 4-3. 스킬 파일 (덮어쓰기) +``` +.claude/skills/create-mr/SKILL.md +.claude/skills/fix-issue/SKILL.md +.claude/skills/sync-team-workflow/SKILL.md +``` + +#### 4-4. Git Hooks (덮어쓰기 + 실행 권한) +```bash +chmod +x .githooks/* +``` + +### 5. 로컬 버전 업데이트 +`.claude/workflow-version.json` 갱신: +```json +{ + "applied_global_version": "새버전", + "applied_date": "오늘날짜", + "project_type": "감지된타입" +} +``` + +### 6. 변경 보고 +- `git diff`로 변경 내역 확인 +- 업데이트된 파일 목록 출력 +- 변경 로그(글로벌 workflow-version.json의 changes) 표시 +- 필요한 추가 조치 안내 (빌드 확인, 의존성 업데이트 등) diff --git a/.claude/workflow-version.json b/.claude/workflow-version.json new file mode 100644 index 00000000..fb423eb2 --- /dev/null +++ b/.claude/workflow-version.json @@ -0,0 +1 @@ +{"applied_global_version": "1.2.0"} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..6f831b50 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,33 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{java,kt}] +indent_style = space +indent_size = 4 + +[*.{js,jsx,ts,tsx,json,yml,yaml,css,scss,html}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + +[*.{sh,bash}] +indent_style = space +indent_size = 4 + +[Makefile] +indent_style = tab + +[*.{gradle,groovy}] +indent_style = space +indent_size = 4 + +[*.xml] +indent_style = space +indent_size = 4 diff --git a/.env b/.env index ba05b9ba..8492e15d 100644 --- a/.env +++ b/.env @@ -1,33 +1,16 @@ # ============================================ # 프로덕션 환경 (Production) -# - 빌드: npm run build:prod (또는 npm run build) -# - 실제 운영 서버 배포용 +# - 빌드: yarn build:prod (또는 yarn build) # ============================================ -# 배포 경로 (서브 경로 배포 시 설정) -# 반드시 '/'로 시작하고 '/'로 끝나야 함 -VITE_BASE_URL=/kcgnv/ +# 배포 경로 +VITE_BASE_URL=/ -# API 서버 (프록시 타겟) -VITE_API_URL=https://mda.kcg.go.kr +# API 서버 (SNP-Batch API) +VITE_API_URL=http://211.208.115.83:8041/snp-api -# 지도 타일 서버 -VITE_MAP_TILE_URL=https://mda.kcg.go.kr +# 선박 데이터 쓰로틀링 (ms, 0=무제한) +VITE_SHIP_THROTTLE=0 -# 선박 신호 WebSocket -VITE_SIGNAL_WS=wss://mda.kcg.go.kr/v3/connect - -# 선박 신호 API -VITE_SIGNAL_API=https://mda.kcg.go.kr/signal-api - -# 항적 조회 API -VITE_TRACK_API=https://mda.kcg.go.kr - -# 항적 조회 WebSocket (STOMP) -VITE_TRACKING_WS=wss://mda.kcg.go.kr/ws-tracks/websocket - -# 선박 데이터 쓰로틀링 (ms, 위성망 대역폭 절약) -VITE_SHIP_THROTTLE=30 - -# 메인 프로젝트 URL (세션 만료 시 리다이렉트) -VITE_MAIN_APP_URL=https://mda.kcg.go.kr +# 인증 우회 (민간 데모) +VITE_DEV_SKIP_AUTH=true diff --git a/.env.dev b/.env.dev deleted file mode 100644 index 7d751e87..00000000 --- a/.env.dev +++ /dev/null @@ -1,32 +0,0 @@ -# ============================================ -# 개발 서버 배포 환경 (Development Server) -# - 빌드: yarn build:dev (또는 npm run build:dev) -# - 개발 서버 /kcgv 경로 배포용 -# ============================================ - -# 배포 경로 (개발서버 서브 경로) -VITE_BASE_URL=/kcgnv/ - -# API 서버 (개발서버) -VITE_API_URL=http://10.26.252.39:9090 - -# 지도 타일 서버 -VITE_MAP_TILE_URL=http://10.26.252.39:9090 - -# 선박 신호 WebSocket -VITE_SIGNAL_WS=ws://10.26.252.39:9090/connect - -# 선박 신호 API -VITE_SIGNAL_API=http://10.26.252.39:9090/signal-api - -# 항적 조회 API (별도 서버) -VITE_TRACK_API=http://10.26.252.51:8090 - -# 항적 조회 WebSocket (STOMP) -VITE_TRACKING_WS=ws://10.26.252.51:8090/ws-tracks/websocket - -# 선박 데이터 쓰로틀링 (ms) -VITE_SHIP_THROTTLE=30 - -# 메인 프로젝트 URL (세션 만료 시 리다이렉트) -VITE_MAIN_APP_URL=http://10.26.252.39:9090 diff --git a/.env.development b/.env.development index 6f09b3ff..f480fa97 100644 --- a/.env.development +++ b/.env.development @@ -1,36 +1,16 @@ # ============================================ # 로컬 개발 환경 (Local Development) # - 서버: yarn dev -# - 로컬 개발 전용 # ============================================ -# 배포 경로 (프록시 모드: localhost:9090/kcgnv/ → localhost:3000/kcgnv/) -VITE_BASE_URL=/kcgnv/ +# 배포 경로 +VITE_BASE_URL=/ -# API 서버 (프록시 타겟) -VITE_API_URL=http://10.26.252.39:9090 - -# 지도 타일 서버 -VITE_MAP_TILE_URL=http://10.26.252.39:9090 - -# 선박 신호 WebSocket -VITE_SIGNAL_WS=ws://10.26.252.39:9090/connect - -# 선박 신호 API -VITE_SIGNAL_API=http://10.26.252.39:9090/signal-api - -# 항적 조회 API (별도 서버) -VITE_TRACK_API=http://10.26.252.51:8090 - -# 항적 조회 WebSocket (STOMP) -VITE_TRACKING_WS=ws://10.26.252.51:8090/ws-tracks/websocket +# API 서버 (SNP-Batch API) +VITE_API_URL=http://211.208.115.83:8041/snp-api # 선박 데이터 쓰로틀링 (ms, 0=무제한) VITE_SHIP_THROTTLE=0 -# 메인 프로젝트 URL (세션 만료 시 리다이렉트) -VITE_MAIN_APP_URL=http://localhost:9090 - -# 로컬 개발 인증 우회 (포트가 달라 localStorage 공유 불가) -# true면 세션 없을 때 모의 사용자로 자동 로그인 -VITE_DEV_SKIP_AUTH=false +# 인증 우회 (민간 데모) +VITE_DEV_SKIP_AUTH=true diff --git a/.env.qa b/.env.qa deleted file mode 100644 index 1ec19406..00000000 --- a/.env.qa +++ /dev/null @@ -1,32 +0,0 @@ -# ============================================ -# QA 환경 (Quality Assurance) -# - 빌드: npm run build:qa -# - QA/스테이징 서버 배포용 -# ============================================ - -# 배포 경로 (QA 환경 서브 경로) -VITE_BASE_URL=/kcgv/ - -# API 서버 (QA 서버) -VITE_API_URL=http://10.188.141.123:9090 - -# 지도 타일 서버 -VITE_MAP_TILE_URL=http://10.188.141.123:9090 - -# 선박 신호 WebSocket (프로덕션 서버 사용) -VITE_SIGNAL_WS=wss://mda.kcg.go.kr/v3/connect - -# 선박 신호 API (프로덕션 서버 사용) -VITE_SIGNAL_API=https://mda.kcg.go.kr/signal-api - -# 항적 조회 API (QA 서버) -VITE_TRACK_API=http://10.188.141.123:9090 - -# 항적 조회 WebSocket (QA 서버) -VITE_TRACKING_WS=ws://10.188.141.123:9090/ws-tracks/websocket - -# 선박 데이터 쓰로틀링 (ms) -VITE_SHIP_THROTTLE=30 - -# 메인 프로젝트 URL (세션 만료 시 리다이렉트) -VITE_MAIN_APP_URL=http://10.188.141.123:9090 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6171b0d5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# 오프라인 캐시 바이너리 보호 (Windows autocrlf 변환 방지) +*.tgz binary + diff --git a/.githooks/commit-msg b/.githooks/commit-msg new file mode 100755 index 00000000..93bb350c --- /dev/null +++ b/.githooks/commit-msg @@ -0,0 +1,60 @@ +#!/bin/bash +#============================================================================== +# commit-msg hook +# Conventional Commits 형식 검증 (한/영 혼용 지원) +#============================================================================== + +COMMIT_MSG_FILE="$1" +COMMIT_MSG=$(cat "$COMMIT_MSG_FILE") + +# Merge 커밋은 검증 건너뜀 +if echo "$COMMIT_MSG" | head -1 | grep -qE "^Merge "; then + exit 0 +fi + +# Revert 커밋은 검증 건너뜀 +if echo "$COMMIT_MSG" | head -1 | grep -qE "^Revert "; then + exit 0 +fi + +# Conventional Commits 정규식 +# type(scope): subject +# - type: feat|fix|docs|style|refactor|test|chore|ci|perf (필수) +# - scope: 영문, 숫자, 한글, 점, 밑줄, 하이픈 허용 (선택) +# - subject: 1~72자, 한/영 혼용 허용 (필수) +PATTERN='^(feat|fix|docs|style|refactor|test|chore|ci|perf)(\([a-zA-Z0-9가-힣._-]+\))?: .{1,72}$' + +FIRST_LINE=$(head -1 "$COMMIT_MSG_FILE") + +if ! echo "$FIRST_LINE" | grep -qE "$PATTERN"; then + echo "" + echo "╔══════════════════════════════════════════════════════════════╗" + echo "║ 커밋 메시지가 Conventional Commits 형식에 맞지 않습니다 ║" + echo "╚══════════════════════════════════════════════════════════════╝" + echo "" + echo " 올바른 형식: type(scope): subject" + echo "" + echo " type (필수):" + echo " feat — 새로운 기능" + echo " fix — 버그 수정" + echo " docs — 문서 변경" + echo " style — 코드 포맷팅" + echo " refactor — 리팩토링" + echo " test — 테스트" + echo " chore — 빌드/설정 변경" + echo " ci — CI/CD 변경" + echo " perf — 성능 개선" + echo "" + echo " scope (선택): 한/영 모두 가능" + echo " subject (필수): 1~72자, 한/영 모두 가능" + echo "" + echo " 예시:" + echo " feat(auth): JWT 기반 로그인 구현" + echo " fix(배치): 야간 배치 타임아웃 수정" + echo " docs: README 업데이트" + echo " chore: Gradle 의존성 업데이트" + echo "" + echo " 현재 메시지: $FIRST_LINE" + echo "" + exit 1 +fi diff --git a/.githooks/post-checkout b/.githooks/post-checkout new file mode 100755 index 00000000..bae360fe --- /dev/null +++ b/.githooks/post-checkout @@ -0,0 +1,25 @@ +#!/bin/bash +#============================================================================== +# post-checkout hook +# 브랜치 체크아웃 시 core.hooksPath 자동 설정 +# clone/checkout 후 .githooks 디렉토리가 있으면 자동으로 hooksPath 설정 +#============================================================================== + +# post-checkout 파라미터: prev_HEAD, new_HEAD, branch_flag +# branch_flag=1: 브랜치 체크아웃, 0: 파일 체크아웃 +BRANCH_FLAG="$3" + +# 파일 체크아웃은 건너뜀 +if [ "$BRANCH_FLAG" = "0" ]; then + exit 0 +fi + +# .githooks 디렉토리 존재 확인 +REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +if [ -d "${REPO_ROOT}/.githooks" ]; then + CURRENT_HOOKS_PATH=$(git config core.hooksPath 2>/dev/null || echo "") + if [ "$CURRENT_HOOKS_PATH" != ".githooks" ]; then + git config core.hooksPath .githooks + chmod +x "${REPO_ROOT}/.githooks/"* 2>/dev/null + fi +fi diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 00000000..681c3ced --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,36 @@ +#!/bin/bash +#============================================================================== +# pre-commit hook (React JavaScript) +# ESLint 검증 — 실패 시 커밋 차단 +#============================================================================== + +# npm 확인 +if ! command -v npx &>/dev/null; then + echo "경고: npx가 설치되지 않았습니다. 검증을 건너뜁니다." + exit 0 +fi + +# node_modules 확인 +if [ ! -d "node_modules" ]; then + echo "경고: node_modules가 없습니다. 'yarn install' 실행 후 다시 시도하세요." + exit 0 +fi + +# ESLint 검증 (설정 파일이 있는 경우만) +if [ -f ".eslintrc.js" ] || [ -f ".eslintrc.json" ] || [ -f ".eslintrc.cjs" ] || [ -f "eslint.config.js" ] || [ -f "eslint.config.mjs" ]; then + echo "pre-commit: ESLint 검증 중..." + npx eslint src/ --ext .js,.jsx --quiet 2>&1 + LINT_RESULT=$? + + if [ $LINT_RESULT -ne 0 ]; then + echo "" + echo "╔══════════════════════════════════════════════════════════╗" + echo "║ ESLint 에러! 커밋이 차단되었습니다. ║" + echo "║ 'npx eslint src/ --fix'로 자동 수정을 시도해보세요. ║" + echo "╚══════════════════════════════════════════════════════════╝" + echo "" + exit 1 + fi + + echo "pre-commit: ESLint 통과" +fi diff --git a/.gitignore b/.gitignore index 33c0f474..ba1152d6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,18 +2,13 @@ node_modules package-lock.json -# Offline cache - git에 포함 (폐쇄망 배포용) -!.yarn-offline-cache/ - -docs - # Build dist/ build/ -# Environment -.env -.env.* +# Environment (production secrets) +.env.local +.env.*.local # IDE .idea/ @@ -24,25 +19,20 @@ build/ # Logs npm-debug.log* +yarn-debug.log* +yarn-error.log* -# Claude -.claude/ +# OS +Thumbs.db +ehthumbs.db +Desktop.ini -*.md -!README.md +# Claude Code (개인 파일만 무시, 팀 파일은 추적) +.claude/settings.local.json +.claude/scripts/ # TypeScript files (메인 프로젝트 참조용, 빌드/커밋 제외) **/*.ts **/*.tsx -# tracking VesselListManager (참조용 전체 제외 - replay 패키지에서 별도 구현) +# tracking VesselListManager (참조용) src/tracking/components/VesselListManager/ -# 단, d.ts 타입 선언 파일은 필요시 포함 가능 -# !**/*.d.ts - -# Publish 폴더 (퍼블리시 원본 포함, 없어도 빌드 가능) -nul -확인요청.txt - -# Build artifacts -*.zip -httpd.conf \ No newline at end of file diff --git a/.node-version b/.node-version new file mode 100644 index 00000000..a45fd52c --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +24 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..42a1c98a --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v22.22.0 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..3cd8426e --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,62 @@ +# Ship GIS - 해양 선박위치정보 GIS 프론트엔드 + +## 프로젝트 개요 +해양 선박위치정보를 지도 위에 실시간으로 시각화하는 GIS 프론트엔드 애플리케이션. +민간용 데모 버전으로, OSM + OpenSeaMap 기반 지도와 AIS API 폴링 방식의 선박 데이터를 사용. + +## 기술 스택 +- **프레임워크**: React 18 + Vite 5 +- **지도 엔진**: OpenLayers 9 + Deck.gl 9 (MapLibre 전환 예정) +- **상태관리**: Zustand 4 +- **HTTP**: Axios +- **스타일**: SASS +- **라우팅**: React Router DOM 6 + +## 빌드 / 실행 +```bash +yarn install # 의존성 설치 +yarn dev # 로컬 개발 서버 (port 3000) +yarn build # 프로덕션 빌드 +``` + +## 데이터 소스 +- **선박 위치**: SNP-Batch API (`/api/ais-target/search`) HTTP 폴링 + - 초기: 최근 60분 전체 로드 + - 이후: 1분마다 최근 2분 증분 조회 +- **인증**: 임시 비활성화 (`VITE_DEV_SKIP_AUTH=true`) + +## 환경변수 +```env +VITE_BASE_URL=/ # 배포 경로 +VITE_API_URL=http://211.208.115.83:8041/snp-api # API 서버 +VITE_DEV_SKIP_AUTH=true # 인증 우회 +``` + +## 핵심 디렉토리 구조 +``` +src/ +├── api/ # API 클라이언트 (aisTargetApi, signalApi, trackApi) +├── areaSearch/ # 항적분석 모듈 +├── assets/ # 이미지, 아이콘 에셋 +├── common/ # STOMP 클라이언트 (비활성화) +├── components/ # 공통 컴포넌트 (layout, ship, map, auth, common) +├── hooks/ # 커스텀 훅 (useShipData, useShipLayer 등) +├── map/ # 지도 컨테이너, 레이어, 측정 도구 +├── pages/ # 페이지 (Home, Replay) +├── replay/ # 리플레이 모듈 +├── scss/ # 글로벌 SCSS +├── stores/ # Zustand 스토어 (ship, map, auth, tracking 등) +├── tracking/ # 항적조회 모듈 +├── types/ # 상수 정의 +├── utils/ # 유틸리티 +└── workers/ # Web Worker (signalWorker) +``` + +## Git 저장소 +- **Remote**: https://gitea.gc-si.dev/gc/ship-gis.git +- **브랜치**: main (보호), develop (작업 브랜치) + +## 팀 워크플로우 +- 버전: v1.2.0 +- 커밋 형식: Conventional Commits (한/영 혼용) +- 브랜치 전략: main ← develop ← feature/* diff --git a/public/fgb/해경관할구역.fgb b/public/fgb/해경관할구역.fgb deleted file mode 100644 index 379f4a08f1acd48b9537c097df849a9960ff4415..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291840 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