AI 기반 불법조업 탐지·차단 플랫폼 (React 19 + MapLibre + deck.gl + Zustand + Tailwind CSS)
htlee
234169d540
refactor(frontend): admin 11개 페이지 디자인 시스템 하드코딩 색상 제거 (Phase 1-B)
129건 하드코딩 Tailwind 색상 → 시맨틱 토큰 치환:
- text-cyan-400 (45건) → text-label
- text-green-400/500 (51건) → text-label + Badge intent="success"
- text-red-400/500 (31건) → text-heading + Badge intent="critical"
- text-blue-400 (33건) → text-label + Badge intent="info"
- text-purple-400 (20건) → text-heading
- text-yellow/orange/amber (32건) → text-heading + Badge intent="warning"
raw <button> → <Button> 컴포넌트 교체 (DataHub/NoticeManagement/SystemConfig 등)
미사용 import 정리 (SaveButton/DataTable/lucide 아이콘)
대상: AIAgentSecurityPage, AISecurityPage, AccessControl, AccessLogs,
AdminPanel, AuditLogs, DataHub, LoginHistoryView, NoticeManagement,
PermissionsPanel, SystemConfig
검증: tsc 0 errors, eslint 0 errors, 하드코딩 색상 잔여 0건
|
2026-04-16 11:25:51 +09:00 |
|
.claude
|
chore: .env.development → .example + pre-commit 모노레포 대응
|
2026-04-07 13:52:53 +09:00 |
|
.gitea/workflows
|
feat: System Flow 뷰어 추가 (system-flow.html) — 102 노드, 133 엣지
|
2026-04-07 17:10:22 +09:00 |
|
.githooks
|
chore: .env.development → .example + pre-commit 모노레포 대응
|
2026-04-07 13:52:53 +09:00 |
|
backend
|
Merge remote-tracking branch 'origin/feature/performance-monitoring-menu' into merge-check/performance-monitoring-menu-into-develop
|
2026-04-16 07:59:56 +09:00 |
|
database/migration
|
feat: 메뉴 DB SSOT 구조화 — auth_perm_tree 기반 메뉴·권한·i18n 통합
|
2026-04-09 15:54:04 +09:00 |
|
deploy
|
docs: 배포 문서 보강 + CI/CD 모노레포 수정 + CLAUDE.md 배포 섹션
|
2026-04-07 13:43:19 +09:00 |
|
docs
|
docs: 릴리즈 노트 정리 (2026-04-16)
|
2026-04-16 11:09:17 +09:00 |
|
frontend
|
refactor(frontend): admin 11개 페이지 디자인 시스템 하드코딩 색상 제거 (Phase 1-B)
|
2026-04-16 11:25:51 +09:00 |
|
prediction
|
fix(prediction): match_ais_to_registry 대상을 전체 중국 선박으로 확장 (A-2 핵심 버그)
|
2026-04-16 10:32:54 +09:00 |
|
.gitignore
|
feat(detection): DAR-03 어구 탐지 워크플로우 + 모선 검토 UI + 24h 리플레이 통합
|
2026-04-15 13:26:15 +09:00 |
|
ATTRIBUTIONS.md
|
chore: 팀 워크플로우 기반 초기 프로젝트 구성
|
2026-04-06 14:11:29 +09:00 |
|
CLAUDE.md
|
docs: 디자인 시스템 SSOT 개발 지침 + 릴리즈 노트 갱신
|
2026-04-08 13:29:28 +09:00 |
|
Makefile
|
feat: S2 prediction 분석 엔진 모노레포 이식
|
2026-04-07 12:56:51 +09:00 |
|
README.md
|
chore: 팀 워크플로우 기반 초기 프로젝트 구성
|
2026-04-06 14:11:29 +09:00 |
AI 기반 불법조업 탐지·차단 플랫폼
해양경찰청 AIS 신호 기반 불법 조업 선박 탐지, 단속 의사결정 지원 플랫폼.
기술 스택
| 분류 |
기술 |
버전 |
| 프레임워크 |
React + TypeScript |
19.2 / 5.9 |
| 번들러 |
Vite (Rolldown) |
8.0 |
| 지도 |
MapLibre GL + deck.gl |
5.22 / 9.2 |
| 차트 |
ECharts |
6.0 |
| 상태관리 |
Zustand |
5.0 |
| 스타일 |
Tailwind CSS + CVA |
4.2 / 0.7 |
| 다국어 |
react-i18next |
ko / en |
| 린트 |
ESLint (Flat Config) |
10 |
실행
npm install
npm run dev # 개발 서버
npm run build # 프로덕션 빌드 (~480ms)
npm run lint # ESLint 검사
프로젝트 구조
src/
├── lib/charts/ ECharts 공통 (BaseChart + 프리셋)
├── lib/map/ MapLibre + deck.gl (BaseMap + 레이어 + hooks)
├── lib/i18n/ 다국어 (10 네임스페이스, ko/en)
├── lib/theme/ 디자인 토큰 + CVA 변형
├── data/mock/ 공유 더미 데이터 (7 모듈)
├── stores/ Zustand 스토어 (8개)
├── services/ API 서비스 샘플
├── shared/ 공유 UI 컴포넌트
├── features/ 도메인별 페이지 (13그룹, 31페이지)
├── app/ 라우터, 인증, 레이아웃
└── styles/ CSS (Dark/Light 테마)
문서
SFR 요구사항 대응 현황
20개 SFR 전체 UI 구현 완료. 백엔드 연동 대기 중.
| SFR |
기능 |
화면 |
상태 |
| SFR-01 |
로그인·권한 관리 |
/login, /access-control |
UI 완료 |
| SFR-02 |
환경설정·공지·공통 |
/system-config, /notices |
UI 완료 |
| SFR-03 |
통합 데이터 허브 |
/data-hub |
UI 완료 |
| SFR-04 |
AI 예측모델 관리 |
/ai-model |
UI 완료 |
| SFR-05 |
위험도 지도 |
/risk-map |
UI 완료 |
| SFR-06 |
단속 계획·경보 |
/enforcement-plan |
UI 완료 |
| SFR-07 |
단일함정 순찰경로 |
/patrol-route |
UI 완료 |
| SFR-08 |
다함정 경로최적화 |
/fleet-optimization |
UI 완료 |
| SFR-09 |
Dark Vessel 탐지 |
/dark-vessel |
UI 완료 |
| SFR-10 |
어구 탐지 |
/gear-detection |
UI 완료 |
| SFR-11 |
단속·탐지 이력 |
/enforcement-history |
UI 완료 |
| SFR-12 |
모니터링 대시보드 |
/dashboard, /monitoring |
UI 완료 |
| SFR-13 |
통계·성과 분석 |
/statistics |
UI 완료 |
| SFR-14 |
외부 서비스 연계 |
/external-service |
UI 완료 |
| SFR-15 |
모바일 서비스 |
/mobile-service |
UI 완료 |
| SFR-16 |
함정 Agent |
/ship-agent |
UI 완료 |
| SFR-17 |
AI 알림 발송 |
/ai-alert |
UI 완료 |
| SFR-18/19 |
MLOps / LLMOps |
/mlops |
UI 완료 |
| SFR-20 |
AI Q&A 지원 |
/ai-assistant |
UI 완료 |