feat: AI 분석 통계 서버사이드 전환 + 어구/선단 UI 개선 #184

병합
htlee feature/korea-server-analysis-integration 에서 develop 로 1 commits 를 머지했습니다 2026-03-24 15:55:55 +09:00
소유자

변경 사항

Backend

  • /api/vessel-analysis 응답에 stats 필드 추가 (dark/spoofing/risk/cluster/gear 서버 집계)
  • GroupPolygonService.getGearStats() — 어구 그룹 수/어구 수 SQL 집계
  • VesselAnalysisService.getLatestResultsWithStats() — DB 순회 시 집계 동시 계산

Frontend

  • useVesselAnalysis.ts: 클라이언트 사이드 stats 계산 useMemo 완전 제거
  • AnalysisStatsPanel.tsx: gearStats useMemo 제거 (14K+ 선박 regex 순회 제거)
  • 가상 선박 마커 (ship-triangle + COG 회전 + zoom interpolate)
  • 어구 겹침 해결 (queryRenderedFeatures → 다중 선택 팝업 + 호버 하이라이트)
  • cnFishingSuspects에 모선 MMSI 포함
  • FleetClusterLayer 패널 아코디언 + 높이 제한 + maxZoom 12

Python

  • vessel_store.py: COG bearing 계산 (마지막 2점 좌표 기반 atan2)

테스트

  • Backend 빌드 (mvn compile)
  • Frontend 빌드 (tsc --noEmit)
  • API 검증: stats 필드 정상 반환 (gearGroups=68, gearCount=248)
  • DB 정합성 확인 (group_polygon_snapshots SQL 집계 일치)
  • 서버 수동 배포 및 동작 확인 완료
## 변경 사항 ### Backend - `/api/vessel-analysis` 응답에 `stats` 필드 추가 (dark/spoofing/risk/cluster/gear 서버 집계) - `GroupPolygonService.getGearStats()` — 어구 그룹 수/어구 수 SQL 집계 - `VesselAnalysisService.getLatestResultsWithStats()` — DB 순회 시 집계 동시 계산 ### Frontend - `useVesselAnalysis.ts`: 클라이언트 사이드 stats 계산 useMemo 완전 제거 - `AnalysisStatsPanel.tsx`: gearStats useMemo 제거 (14K+ 선박 regex 순회 제거) - 가상 선박 마커 (ship-triangle + COG 회전 + zoom interpolate) - 어구 겹침 해결 (queryRenderedFeatures → 다중 선택 팝업 + 호버 하이라이트) - cnFishingSuspects에 모선 MMSI 포함 - FleetClusterLayer 패널 아코디언 + 높이 제한 + maxZoom 12 ### Python - `vessel_store.py`: COG bearing 계산 (마지막 2점 좌표 기반 atan2) ## 테스트 - [x] Backend 빌드 (mvn compile) - [x] Frontend 빌드 (tsc --noEmit) - [x] API 검증: stats 필드 정상 반환 (gearGroups=68, gearCount=248) - [x] DB 정합성 확인 (group_polygon_snapshots SQL 집계 일치) - [x] 서버 수동 배포 및 동작 확인 완료
htlee added 1 commit 2026-03-24 15:55:40 +09:00
- Backend: /api/vessel-analysis 응답에 stats 집계 필드 추가
- Backend: GroupPolygonService.getGearStats() 어구 SQL 집계
- Frontend: 클라이언트 사이드 stats/gearStats 계산 로직 완전 제거
- Frontend: 가상 선박 마커, 어구 겹침 팝업, 패널 아코디언
- Frontend: cnFishingSuspects에 모선 포함
- Python: vessel_store COG bearing 계산 (마지막 2점 기반)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
claude-bot 이 변경사항을 승인하였습니다. 2026-03-24 15:55:48 +09:00
claude-bot left a comment
멤버

MR 승인 (via /mr skill)

MR 승인 (via /mr skill)
htlee merged commit 686f259a72 into develop 2026-03-24 15:55:55 +09:00
htlee 삭제된 브랜치 feature/korea-server-analysis-integration 2026-03-24 15:55:55 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 2명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

마감일이 설정되지 않았습니다.

의존성

No dependencies set.

Reference: gc/kcg-monitoring#184
No description provided.