+ {/* 헤더 */}
+
+
+ AI 분석
+ {isLoading && (
+ 로딩중...
+ )}
+
+
+ {formatTime(lastUpdated)}
+
+
+
+
+ {/* 본문 */}
+ {expanded && (
+
+ {isEmpty ? (
+
+ 분석 데이터 없음
+
+ ) : (
+ <>
+
+ 전체
+ {stats.total}
+
+
+ 다크베셀
+ {stats.dark}
+
+
+ GPS스푸핑
+ {stats.spoofing}
+
+
+ 선단수
+ {stats.clusterCount}
+
+
+
+
+ {/* 위험도 수치 행 */}
+
+
+ 🔴
+ {stats.critical}
+
+
+ 🟠
+ {stats.high}
+
+
+ 🟡
+ {stats.medium}
+
+
+ 🟢
+ {stats.low}
+
+
+ >
+ )}
+
+ )}
+
+ );
+}
diff --git a/frontend/src/components/korea/ChineseFishingOverlay.tsx b/frontend/src/components/korea/ChineseFishingOverlay.tsx
index 64eb937..7579f8e 100644
--- a/frontend/src/components/korea/ChineseFishingOverlay.tsx
+++ b/frontend/src/components/korea/ChineseFishingOverlay.tsx
@@ -1,6 +1,6 @@
import { useMemo } from 'react';
import { Marker, Source, Layer } from 'react-map-gl/maplibre';
-import type { Ship } from '../../types';
+import type { Ship, VesselAnalysisDto } from '../../types';
import { analyzeFishing, GEAR_LABELS } from '../../utils/fishingAnalysis';
import type { FishingGearType } from '../../utils/fishingAnalysis';
import { getMarineTrafficCategory } from '../../utils/marineTraffic';
@@ -79,9 +79,10 @@ interface GearToParentLink {
interface Props {
ships: Ship[];
+ analysisMap?: Map