kcg-ai-monitoring/frontend/src/data/mock/kpi.ts
htlee e6319a571c refactor: 모노레포 구조로 전환 (frontend/ + backend/ + database/)
Phase 1: 모노레포 디렉토리 구조 구축

- 기존 React 프로젝트를 frontend/ 디렉토리로 이동 (git mv)
- backend/ 디렉토리 생성 (Phase 2에서 Spring Boot 초기화)
- database/migration/ 디렉토리 생성 (Phase 2에서 Flyway 마이그레이션)
- 루트 .gitignore에 frontend/, backend/ 경로 반영
- 루트 CLAUDE.md를 모노레포 가이드로 갱신
- Makefile 추가 (dev/build/lint 통합 명령)
- frontend/vite.config.ts에 /api → :8080 백엔드 proxy 설정
- .githooks/pre-commit을 모노레포 구조에 맞게 갱신
  (frontend/ 변경 시 frontend/ 내부에서 검증)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 08:47:24 +09:00

52 lines
2.0 KiB
TypeScript

export interface KpiMetric {
id: string;
label: string;
value: number;
prev?: number;
unit?: string;
description?: string;
}
export interface MonthlyTrend {
month: string;
enforce: number;
detect: number;
accuracy: number;
}
export interface ViolationType {
type: string;
count: number;
pct: number;
}
/** Dashboard KPI (6 metrics) — src/features/dashboard/Dashboard.tsx */
export const MOCK_KPI_METRICS: KpiMetric[] = [
{ id: 'KPI-RT', label: '실시간 탐지', value: 47, prev: 42, description: 'AI 감시 탐지 선박' },
{ id: 'KPI-EEZ', label: 'EEZ 침범', value: 18, prev: 21, description: '배타적경제수역 침범' },
{ id: 'KPI-DV', label: '다크베셀', value: 12, prev: 9, description: 'AIS 미송출 선박' },
{ id: 'KPI-TR', label: '불법환적 의심', value: 8, prev: 6, description: '해상전재 의심 건' },
{ id: 'KPI-TK', label: '추적 중', value: 15, prev: 13, description: '함정 추적 진행' },
{ id: 'KPI-EN', label: '나포/검문', value: 3, prev: 2, description: '금일 단속 실적' },
];
/** Statistics monthly trend (7 months) — src/features/statistics/Statistics.tsx */
export const MOCK_MONTHLY_TRENDS: MonthlyTrend[] = [
{ month: '10월', enforce: 42, detect: 128, accuracy: 81 },
{ month: '11월', enforce: 38, detect: 145, accuracy: 84 },
{ month: '12월', enforce: 55, detect: 167, accuracy: 86 },
{ month: '1월', enforce: 61, detect: 189, accuracy: 88 },
{ month: '2월', enforce: 48, detect: 156, accuracy: 89 },
{ month: '3월', enforce: 52, detect: 172, accuracy: 90 },
{ month: '4월', enforce: 15, detect: 67, accuracy: 93 },
];
/** Statistics violation types (5 types) — src/features/statistics/Statistics.tsx */
export const MOCK_VIOLATION_TYPES: ViolationType[] = [
{ type: 'EEZ 침범', count: 124, pct: 35 },
{ type: '다크베셀', count: 89, pct: 25 },
{ type: 'MMSI 변조', count: 64, pct: 18 },
{ type: '불법환적', count: 43, pct: 12 },
{ type: '어구 불법', count: 35, pct: 10 },
];