kcg-ai-monitoring/docs/sfr-traceability.md
htlee 831045ace9 docs: 프로젝트 산출문서 2026-04-17 기준 정비
- docs/architecture.md: shared/components/ui 9개·i18n 네임스페이스 갱신
- docs/sfr-traceability.md: v3.0 전면 재작성 (운영 상태 기반 531 라인)
- docs/sfr-user-guide.md: 헤더 + SFR-01/02/09/10/11/12/13/17 구현 현황 갱신
- docs/data-sharing-analysis.md / next-refactoring.md / page-workflow.md: stale 3건 제거
2026-04-17 06:52:51 +09:00

27 KiB
Raw Blame 히스토리

SFR 요구사항 추적 매트릭스 (Requirements Traceability Matrix)

프로젝트: AI 기반 불법조업 감시 시스템 (KCG AI Monitoring) 문서 버전: 3.0 최종 업데이트: 2026-04-17 근거 문서: 제안요청서 (RFP) 소프트웨어 기능 요구사항 (SFR)


기술 스택 및 아키텍처 현황 (2026-04-17 기준)

전체 스택

레이어 기술 상태
Frontend React 19 + TypeScript 5.9 + Vite 8 + Tailwind CSS 4 + Zustand 5 + MapLibre GL 5 + deck.gl 9 + ECharts 6 + react-i18next 운영 배포 (rocky-211 nginx)
Backend Spring Boot 3.5.7 + Java 21 + PostgreSQL 14.19 + Flyway V001~V029 + Spring Security + JWT + Caffeine + 트리 RBAC 운영 배포 (rocky-211 :18080)
Prediction Python 3.11+ + FastAPI + APScheduler, 14 알고리즘, 7단계 분류 파이프라인 운영 배포 (redis-211 :18092, 5분 주기)
Database PostgreSQL kcgaidb / 48 테이블 / schema kcg + snpdb(AIS 원천) 운영
Design System /design-system.html 쇼케이스 SSOT + shared/constants/ 25개 카탈로그 + shared/components/ui/ 9개 공통 컴포넌트 SSOT 전영역 준수 (2026-04-17 PR #C 완료)
i18n 10 네임스페이스 × ko/en, common.json 에 aria/error/dialog/message 54키 추가 alert/confirm/aria-label 하드코딩 제거 완료 (2026-04-17 PR #B)

데이터 흐름

snpdb(AIS 원천) → prediction(14 algo, 5분 주기) → kcgaidb(직접 write)
                                                    ↓
Frontend ← Backend /api/analysis/* + /api/events + /api/alerts + ... (65+ API)
  • Backend ↔ Prediction: HTTP 호출 없이 kcgaidb DB 공유로만 연동
  • Frontend ↔ Backend: REST API + JWT 쿠키 인증

배포 토폴로지

서비스 서버 포트 배포
Frontend dist rocky-211 (nginx 443) HTTPS Gitea Actions 자동배포 (main push)
Backend JAR rocky-211 :18080 systemd kcg-ai-backend, 수동 scp + restart
Prediction FastAPI redis-211 :18092 systemd kcg-ai-prediction, 수동 rsync + restart
PostgreSQL 211.208.115.83 :5432 kcgaidb / schema kcg / user kcg-app
Redis redis-211 :6379 AI 채팅 컨텍스트 캐시

요약

구분 2026-04-06 2026-04-17
전체 SFR 20건 20건
UI 완료 20건 (100%) 20건 (100%)
백엔드 연동 완료 0건 (0%) 15건 (75%)
prediction 연동 완료 0건 (0%) 10건 (50%)
운영 배포 - rocky-211 + redis-211

2026-04-06 이후 구현 진척

항목 상태
UI 프로토타입 완료 (31페이지)
기술 스택 모노레포 전환 (frontend + backend + prediction + database)
백엔드 (Spring Boot) JWT + 트리 RBAC + 감사 로그 + 데모 계정 5종 + 65+ API
prediction (Python) 14 algo + 7단계 파이프라인 + DAR-03 G-01~G-06 + pair tier + NAME_FUZZY 매칭
DB 마스터 48 테이블 (V001~V029), 한중어업협정 906척 레지스트리
실 API 연동 Dashboard/Monitoring/Statistics/EventList/Enforcement/Detection 4종/ChinaFishing/TransferDetection/VesselDetail/LiveMapView/ParentReview/Exclusion/LabelSession/AIAlert/AccessControl/Permission/Audit 등
i18n alert/confirm/aria-label 하드코딩 제거 (2026-04-17 PR #B)
디자인 시스템 SSOT raw button/input/select/tab/checkbox → 공통 컴포넌트, 라이트/다크 쌍 (2026-04-17 PR #C)
백엔드 계층 분리 controller → service → repository 일관성, RestClientConfig @Bean (2026-04-17 PR #A)
iran 백엔드 프록시 완전 제거 (2026-04-17 PR #A)

여전히 미적용 (후속 과제)

  • 코드 스플리팅 (React.lazy + manualChunks)
  • JSX placeholder/텍스트 한글 35건 i18n 전환
  • spoofing_score 산출 재설계 (중국 MID 412 전원 0 수렴)
  • external.iran_backend 매니페스트 노드 완전 삭제 (1~2 릴리즈 후)

SFR 목록

범례: 운영 / 🟡 구조 완성, 데이터 미연동 / 🔲 UI 프로토타입만

SFR 요구사항 명칭 구현 화면 백엔드 Prediction
SFR-01 시스템 로그인 및 권한 관리 LoginPage, AccessControl, PermissionsPanel JWT + 트리 RBAC -
SFR-02 시스템 기본 환경설정 및 공통 기능 SystemConfig, NoticeManagement, 공통 컴포넌트 🟡 MasterData API -
SFR-03 통합 데이터 허브 수집·연계 관리 DataHub 🔲 Mock snpdb + signal-batch
SFR-04 AI 불법조업 예측모델 관리 AIModelManagement 🔲 Mock -
SFR-05 격자 기반 불법조업 위험도 지도 RiskMap 🔲 Mock 🟡 prediction_risk_grid
SFR-06 단속 계획·경보 연계 EnforcementPlan /api/enforcement/plans -
SFR-07 AI 경비함정 단일 함정 순찰·경로 PatrolRoute 🔲 Mock -
SFR-08 AI 경비함정 다함정 협력형 경로 FleetOptimization 🔲 Mock -
SFR-09 불법 어선 패턴 탐지 (Dark Vessel) DarkVesselDetection, TransferDetection /api/analysis/* Dark 11패턴 + Transship 5단계
SFR-10 불법 어망·어구 탐지 및 관리 GearDetection, GearIdentification /api/vessel-analysis/groups + /api/analysis/gear-detections DAR-03 G-01~G-06 + pair tier
SFR-11 단속·탐지 이력 관리 EnforcementHistory, EventList /api/events + /api/enforcement/records prediction_events
SFR-12 모니터링 및 경보 현황판 Dashboard, MonitoringDashboard, ChinaFishing /api/stats + /api/alerts + /api/analysis/* prediction_kpi_realtime + stats
SFR-13 통계·지표·성과 분석 Statistics /api/stats (daily/monthly/hourly) prediction_stats_*
SFR-14 외부 서비스 제공 결과 연계 ExternalService 🔲 Mock -
SFR-15 단속요원 이용 모바일 대응 서비스 MobileService 🟡 /api/alerts 연동 -
SFR-16 함정용 단말 Agent 개발 ShipAgent 🔲 Mock -
SFR-17 현장 함정 즉각 AI 알림 발송 AIAlert /api/alerts -
SFR-18 기계학습 운영 기능 (MLOps) MLOpsPage 🔲 Mock -
SFR-19 LLM 운영 기능 MLOpsPage (LLMOps 탭) 🔲 Mock -
SFR-20 자연어 처리 AI 의사결정 지원 Q&A AIAssistant 🟡 /api/prediction/chat stub -

상세 추적 내역

SFR-01: 시스템 로그인 및 권한 관리

제안요청서 정의: 사용자 유형별 안전한 인증 및 역할 기반 권한 관리 체계로 시스템 접근 보안 확보 + 사용자 활동 감사 추적.

구현 화면: features/auth/LoginPage.tsx, features/admin/AccessControl.tsx, features/admin/PermissionsPanel.tsx, features/admin/UserRoleAssignDialog.tsx

백엔드 연동 운영:

  • /api/auth/login|logout|me — JWT 쿠키 기반 인증
  • /api/perm-tree + /api/roles/* + /api/admin/users/* — 트리 기반 RBAC (47 리소스 노드, Level 0 13개 + Level 1 32개 + 5 operation)
  • /api/admin/audit-logs + /api/admin/access-logs + /api/admin/login-history + 통계 3종 — 감사 로그 전수 수집
  • @Auditable AOP + AccessLogFilter — 자동 audit_log 기록
  • 비밀번호 정책: 9자 이상 + 영문/숫자/특수, 5회 실패 계정 잠금 (Caffeine 10분 TTL)
  • 데모 계정 5종 (admin/operator/analyst/field/viewer)

미구현 (기업 연동): 해양경찰 SSO / GPKI / 공무원증 인증 — 현재 자체 ID/PW + JWT


SFR-02: 시스템 기본 환경설정 및 공통 기능

제안요청서 정의: 공통 코드, 기준정보, 알림, GIS 지도 웹서비스, 파일 처리, 검색·페이징·엑셀 내보내기.

구현 화면: features/admin/SystemConfig.tsx, features/admin/NoticeManagement.tsx

공통 컴포넌트:

  • shared/components/common/DataTable.tsx (검색·정렬·페이징·엑셀·출력)
  • ExcelExport / Pagination / SearchInput / FileUpload / PrintButton / SaveButton / NotificationBanner / PageToolbar
  • shared/components/ui/ 9종 (Button, Input, Select, Textarea, Checkbox, Radio, Card, Badge, TabBar+TabButton)
  • shared/components/layout/ 3종 (PageContainer, PageHeader, Section)

백엔드 연동 🟡 부분:

  • /api/codes + /api/codes/{id}/children — CodeMaster (875건)
  • /api/gear-types — GearTypeMaster CRUD
  • /api/patrol-ships — 함정 마스터
  • /api/vessel-permits — 선박 허가 마스터 (2026-04-17 MasterDataService 계층 분리)
  • 🔲 SystemConfig / NoticeManagement — UI 는 완성, 백엔드 API 미연동 (Mock)

지도 운영: MapLibre GL 5 + deck.gl 9 기반 lib/map/BaseMap + createStaticLayers/createMarkerLayer/createRadiusLayer + useMapLayers RAF 기반 레이어 동기화

미구현: 알림 발송 엔진(푸시/이메일), 엑셀 서버사이드 렌더링, 공통 코드 CRUD UI


SFR-03: 통합 데이터 허브 수집·연계 관리

제안요청서 정의: AIS, V-PASS, 위성, 해양환경 등 이기종 데이터 통합 수집 + 실시간 모니터링 + 이상 감지.

구현 화면: features/admin/DataHub.tsx (🔲 Mock)

실제 파이프라인 운영: prediction(redis-211:18092, 5분 주기)

  • snpdb(signal.t_vessel_tracks_5min, signal.t_vessel_static, signal.snp_ais_tracks) → AIS 원천 수집
  • signal-batch(192.168.1.18:18090) → 정적정보 보강 (shipKindCode/status/heading/draught)
  • vessel_store cache (24h sliding window, ~55,000 선박, 2.3M points)
  • 분류 파이프라인 7단계 (preprocess → behavior → resample → feature → classify → cluster → seasonal)

미구현: DataHub 화면의 실시간 수집 상태 대시보드 (현재 Mock), V-PASS·위성·해양환경 연동, 이상 감지 자동 알림


SFR-04: AI 불법조업 예측모델 관리

제안요청서 정의: AI 모델 등록/버전 관리/배포/모니터링.

구현 화면: features/ai-operations/AIModelManagement.tsx (🔲 Mock)

DB : ai_model_versions, ai_model_metrics (V013)

미구현: MLflow/Kubeflow 연동, 모델 배포 파이프라인, A/B 테스트, 실시간 모델 성능 추적 (현재 전부 Mock)


SFR-05: 격자 기반 불법조업 위험도 지도

제안요청서 정의: 격자 단위 위험도 예측 + 지도 시각화.

구현 화면: features/risk-assessment/RiskMap.tsx (🔲 Mock)

DB : prediction_risk_grid (V015) — prediction 이 격자별 위험도 저장

미구현: RiskMap 화면의 prediction_risk_grid 조회 연동, HexagonLayer/HeatmapLayer 실시간화


SFR-06: 단속 계획·경보 연계

제안요청서 정의: 고위험 구역 탐지 기반 단속 계획 수립 + 경보 연계.

구현 화면: features/risk-assessment/EnforcementPlan.tsx

백엔드 연동 :

  • /api/enforcement/plans (GET/POST) — EnforcementPlan CRUD
  • /api/enforcement/records 연계 — 단속 이력 등록
  • PatrolAssignment — 함정 배정
  • 단일 함정 / 다함정 순찰 작전 탭 (2026-04-14 확장)

Prediction 연계: 위험도 기반 자동 계획은 Mock (후속 과제)


SFR-07: AI 경비함정 단일 함정 순찰·경로 추천

제안요청서 정의: 단일 함정 최적 순찰 경로 AI 추천.

구현 화면: features/patrol/PatrolRoute.tsx (🔲 Mock)

DB : patrol_ship_master (6 함정) + patrol_assignments

미구현: A* / Dijkstra 기반 경로 최적화 알고리즘, 연료/시간 제약 고려, 실시간 위험도 반영


SFR-08: AI 경비함정 다함정 협력형 경로 최적화

제안요청서 정의: 다수 함정 협력 운용 최적화.

구현 화면: features/patrol/FleetOptimization.tsx (🔲 Mock)

미구현: VRP(Vehicle Routing Problem) / MIP 최적화 엔진, 함대 자원 할당 알고리즘


SFR-09: 불법 어선 패턴 탐지 (Dark Vessel / Spoofing / 환적)

제안요청서 정의: AIS 끊김·스푸핑·환적 등 의심 패턴 탐지.

구현 화면: features/detection/DarkVesselDetection.tsx, features/vessel/TransferDetection.tsx

Prediction 연동 운영:

  • Dark Vessel: 11패턴 P1~P11 기반 0~100점 연속 점수, 4 tier (CRITICAL≥70/HIGH≥50/WATCH≥30/NONE)
  • Transshipment: 5단계 필터 파이프라인 (이종 쌍 → 감시영역 → RENDEZVOUS 90분+ → 점수 50+ → 밀집 방폭), 3,647/h → 2/cycle
  • Spoofing: 1h 윈도우 teleport + extreme speed — ⚠️ 중국 MID 412 전원 0 수렴 (후속 재설계)
  • 2026-04-16.7: 경량 riskScore dark_suspicion_score(0~100) × 0.3 + 기선 근접 + 반복 이력, 45점 포화 해소

백엔드 연동 : /api/analysis/vessels + /api/analysis/dark + /api/analysis/transship + /api/analysis/history

  • DarkDetailPanel: ScoreBreakdown + P1~P11 카탈로그
  • 2026-04-17 alertLevels 헬퍼(ALERT_LEVEL_TIER_SCORE 등) 적용

SFR-10: 불법 어망·어구 탐지 및 관리 (DAR-03)

제안요청서 정의: 불법 어구 설치/투기/이동 탐지 + 한·중 어구 비교 판별.

구현 화면: features/detection/GearDetection.tsx, features/detection/GearIdentification.tsx

Prediction 연동 운영 (DAR-03 G-01~G-06):

  • G-01 수역-어구 불일치 (ZONE_I~IV 폴리곤)
  • G-02 금어기 조업 (fishery_permit_cn.fishing_period_1/2 파싱)
  • G-03 미등록/허가외 어구 (fishery_code 허용 어구 맵)
  • G-04 MMSI cycling (≤30분 on/off 반복)
  • G-05 고정어구 500m drift
  • G-06 쌍끌이 공조 — tier 분류: STRONG / PROBABLE / SUSPECT
  • 페어 탐색 find_pair_candidates (bbox + 궤적 유사도 2차)
  • 한중어업협정 906척 NAME_EXACT + NAME_FUZZY 매칭 53%+

백엔드 연동 :

  • /api/vessel-analysis/groups + /groups/{key}/detail|correlations|candidates/{mmsi}/metrics|resolve — 모선 워크플로우 (VesselAnalysisGroupService, 2026-04-17 PARENT_RESOLVE @Auditable 추가)
  • /api/analysis/gear-detections (2026-04-16.6 신설) — 자동 탐지 결과 MMSI 중복 제거
  • 24h 궤적 리플레이 (gearReplayStore + useGearReplayLayers + TripsLayer)
  • GearDetailPanel: 후보 클릭 → 모선 확정/제외 UI

마스터: fishery_permit_cn (V029, 29 컬럼) + fleet_vessels 확장 (permit_year/fishery_code)


SFR-11: 단속·탐지 이력 관리

제안요청서 정의: 이벤트/경보 수집 → 단속 등록 → 이력 조회.

구현 화면: features/enforcement/EnforcementHistory.tsx, features/enforcement/EventList.tsx

백엔드 연동 운영:

  • /api/events (GET/PATCH ack/status) + /api/events/stats — 이벤트 조회/확인/상태 변경
  • /api/events/{id} — 이벤트 상세
  • /api/enforcement/records (GET/POST/PATCH) — 단속 이력 CRUD
  • /api/alerts — 발송된 알림 이력
  • @Auditable (2026-04-17): ENFORCEMENT_CREATE / ENFORCEMENT_UPDATE / ENFORCEMENT_PLAN_CREATE
  • 2026-04-17 PR #C: EventList 액션 버튼(확인/선박상세/단속등록/오탐처리) → Button variant + text--600 dark:text--400

Prediction 연동: prediction_events → event_generator 4룰 (g06_pair_trawl / g01_zone_gear / g04_mmsi_cycling / g05_gear_drift)


SFR-12: 모니터링 및 경보 현황판 (대시보드)

제안요청서 정의: 실시간 상황 인식 대시보드.

구현 화면: features/dashboard/Dashboard.tsx, features/monitoring/MonitoringDashboard.tsx, features/detection/ChinaFishing.tsx (중국어선 3탭)

백엔드 연동 운영:

  • /api/stats/kpi + /api/events + /api/alerts — KPI/이벤트/알림 통합
  • /api/analysis/stats (2026-04-16.6 신설) — MMSI별 최신 row COUNT FILTER 집계 (total/dark/spoofing/transship/risk분포/zone분포/avgRiskScore)
  • /api/analysis/vessels|dark|transship — 실시간 선박 분석 테이블
  • /api/prediction/health|status — 시스템 상태

Prediction 연동 : prediction_kpi_realtime + prediction_stats_hourly/daily/monthly 5분 주기 갱신

특이운항 미니맵 + 판별 패널 (2026-04-16.6): classifyAnomaly → groupAnomaliesToSegments → VesselMiniMap (24h 궤적 + severity 색 segment) + VesselAnomalyPanel


SFR-13: 통계·지표·성과 분석

제안요청서 정의: 월별/일별/시간별 통계 + 위반 유형 분석.

구현 화면: features/statistics/Statistics.tsx, features/statistics/ReportManagement.tsx

백엔드 연동 운영:

  • /api/stats/monthly|daily|hourly — 시계열 통계
  • /api/admin/stats/audit|access|login (2026-04-17 AdminStatsService 계층 분리)

Prediction 연동 : stats_aggregator → prediction_stats_monthly/daily/hourly

Report 관리: 🔲 Mock (실제 리포트 PDF/HWP 생성은 미연동)


SFR-14: 외부 서비스 제공 결과 연계

제안요청서 정의: 유관기관(해수부/법무부/국방부) API 연계.

구현 화면: features/statistics/ExternalService.tsx (🔲 Mock)

미구현: 유관기관 OpenAPI 연동, 결과 공유 포맷 표준화


SFR-15: 단속요원 이용 모바일 대응 서비스

제안요청서 정의: 현장 단속요원 모바일 UI.

구현 화면: features/field-ops/MobileService.tsx

백엔드 연동 🟡: /api/alerts 연동으로 긴급 알림 수신, 지도·KPI 는 Mock

미구현: 실제 모바일 앱 패키징 (React Native / PWA), 오프라인 동기화, 푸시 알림


SFR-16: 함정용 단말 Agent 개발

제안요청서 정의: 함정 탑재 단말 Agent.

구현 화면: features/field-ops/ShipAgent.tsx (🔲 Mock)

DB : deviceStatuses 카탈로그 (ONLINE/OFFLINE/SYNCING/NOT_DEPLOYED)

미구현: 실제 함정 단말 SDK, GPS/AIS 수신 모듈, 백그라운드 동기화


SFR-17: 현장 함정 즉각 AI 알림 메시지 발송

제안요청서 정의: 고위험 이벤트 발생 시 즉각 SMS/푸시 알림.

구현 화면: features/field-ops/AIAlert.tsx

백엔드 연동 : /api/alerts (2026-04-17 AlertService 계층 분리) — PredictionAlert Entity + eventId 필터 DB : prediction_alerts 테이블 (V018)

미구현: 실제 SMS/푸시 발송 게이트웨이 연동, 템플릿 엔진


SFR-18: 기계학습 운영 기능 (MLOps)

제안요청서 정의: AI 모델 학습/배포/모니터링 자동화.

구현 화면: features/ai-operations/MLOpsPage.tsx (🔲 Mock)

미구현: MLflow/Kubeflow 파이프라인 실연동, 실험 추적, 모델 레지스트리


SFR-19: 대규모 언어모델(LLM) 운영 기능

제안요청서 정의: LLM 학습/추론 운영.

구현 화면: features/ai-operations/MLOpsPage.tsx LLMOps 탭 (🔲 Mock)

미구현: LLM 학습 파이프라인, 검색 서비스, 토큰 사용량 모니터링


SFR-20: 자연어 처리 AI 의사결정 지원 Q&A

제안요청서 정의: 운영자 자연어 질의 → AI 분석 기반 응답.

구현 화면: features/ai-operations/AIAssistant.tsx

백엔드 연동 🟡 stub: /api/prediction/chat — 현재 stub 응답. Redis 컨텍스트 캐시 인프라 준비 완료

미구현 (Phase 9): Ollama 또는 외부 LLM 연동, RAG (Retrieval-Augmented Generation), 법령 DB 임베딩


부록 A: 파일 경로 매핑 (2026-04-17)

SFR 주요 파일 경로
SFR-01 frontend/src/features/auth/LoginPage.tsx, features/admin/AccessControl.tsx, features/admin/PermissionsPanel.tsx, backend/.../auth/*, permission/*, audit/*
SFR-02 features/admin/SystemConfig.tsx, NoticeManagement.tsx, shared/components/common/*, shared/components/ui/*, backend/.../master/MasterDataController+Service.java
SFR-03 features/admin/DataHub.tsx, prediction/ 전체 (14 algo + 7 파이프라인), signal-batch 프록시
SFR-04 features/ai-operations/AIModelManagement.tsx, DB ai_model_versions/metrics
SFR-05 features/risk-assessment/RiskMap.tsx, DB prediction_risk_grid
SFR-06 features/risk-assessment/EnforcementPlan.tsx, backend/.../enforcement/EnforcementController+Service.java
SFR-07 features/patrol/PatrolRoute.tsx
SFR-08 features/patrol/FleetOptimization.tsx
SFR-09 features/detection/DarkVesselDetection.tsx, features/detection/components/DarkDetailPanel.tsx, features/vessel/TransferDetection.tsx, prediction/algorithms/dark_vessel.py, spoofing.py, transship.py, risk.py
SFR-10 features/detection/GearDetection.tsx, GearIdentification.tsx, features/detection/components/GearDetailPanel.tsx, GearReplayController.tsx, prediction/algorithms/pair_trawl.py, gear_violation.py, vessel_type_mapping.py, backend/.../analysis/VesselAnalysisGroupService.java
SFR-11 features/enforcement/EnforcementHistory.tsx, EventList.tsx, backend/.../event/EventController+Service.java, AlertService.java, enforcement/EnforcementService.java
SFR-12 features/dashboard/Dashboard.tsx, features/monitoring/MonitoringDashboard.tsx, features/detection/ChinaFishing.tsx, features/detection/components/VesselMiniMap.tsx, VesselAnomalyPanel.tsx, backend/.../analysis/VesselAnalysisController+Service.java
SFR-13 features/statistics/Statistics.tsx, ReportManagement.tsx, backend/.../stats/, admin/AdminStatsService.java
SFR-14 features/statistics/ExternalService.tsx
SFR-15 features/field-ops/MobileService.tsx
SFR-16 features/field-ops/ShipAgent.tsx
SFR-17 features/field-ops/AIAlert.tsx, backend/.../event/AlertController+Service.java
SFR-18 features/ai-operations/MLOpsPage.tsx
SFR-19 features/ai-operations/MLOpsPage.tsx (LLMOps 탭)
SFR-20 features/ai-operations/AIAssistant.tsx, backend/.../analysis/PredictionProxyController.java (/api/prediction/chat)

부록 B: 공통 컴포넌트 매핑

컴포넌트 파일 관련 SFR
DataTable shared/components/common/DataTable.tsx SFR-02, 10, 11, 13
PageContainer / PageHeader / Section shared/components/layout/* 전체
Button / Input / Select / Textarea / Checkbox / Radio shared/components/ui/* 전체 (2026-04-17 SSOT 전영역 준수)
Card / Badge shared/components/ui/* 전체
TabBar / TabButton (underline/pill/segmented) shared/components/ui/tabs.tsx SFR-09, 10, 12, 18 등
SearchInput / ExcelExport / Pagination / FileUpload / PrintButton / SaveButton / NotificationBanner / PageToolbar shared/components/common/* SFR-02, 11, 13
BaseMap + useMapLayers lib/map/* SFR-02, 05, 09, 10, 12
ScoreBreakdown shared/components/common/ScoreBreakdown.tsx SFR-09, 10
VesselMiniMap / VesselAnomalyPanel features/detection/components/* SFR-12
GearReplayController features/detection/components/* SFR-10

부록 C: 카탈로그 매핑 (shared/constants/ 25개)

  • 위험도 / 상태: alertLevels, violationTypes, eventStatuses, engineSeverities, performanceStatus (2026-04-17 catalogRegistry 등록), deviceStatuses, connectionStatuses, statusIntent
  • 단속 / 순찰: enforcementActions, enforcementResults, patrolStatuses, trainingZoneTypes
  • 탐지: darkVesselPatterns(11), vesselAnalysisStatuses, vesselTypes(7종), gearGroupTypes, gearViolationCodes(G-01~G-06), zoneCodes
  • 인증 / 권한: userRoles, userAccountStatuses, loginResultStatuses, permissionStatuses
  • 모선 워크플로우: parentResolutionStatuses, modelDeploymentStatuses
  • API 통신: httpStatusCodes, kpiUiMap
  • 알림: (i18n common.aria / error / dialog / message 2026-04-17 추가)

부록 D: Zustand Store 매핑

Store 파일 관련 SFR
kpiStore stores/kpiStore.ts SFR-12, 13
vesselStore stores/vesselStore.ts SFR-09, 12
eventStore stores/eventStore.ts SFR-11, 12, 17
enforcementStore stores/enforcementStore.ts SFR-06, 11
patrolStore stores/patrolStore.ts SFR-07, 08
gearStore stores/gearStore.ts SFR-10
gearReplayStore stores/gearReplayStore.ts SFR-10 (24h 리플레이)
transferStore stores/transferStore.ts SFR-09
settingsStore stores/settingsStore.ts SFR-01, 02 (테마/언어)

부록 E: 백엔드 계층 (2026-04-17 정비 완료)

모든 컨트롤러가 controller → service → repository 일관성 유지. controller 가 repository 를 직접 주입하는 사례 0건.

컨트롤러 서비스 관련 SFR
AuthController / PermTreeController / UserManagementController / RoleManagementService - SFR-01
MasterDataController MasterDataService SFR-02
AdminStatsController AdminStatsService SFR-13
AdminLogController (직접 Repository) SFR-01
VesselAnalysisController VesselAnalysisService SFR-09, 12
VesselAnalysisProxyController VesselAnalysisGroupService (+@Auditable PARENT_RESOLVE) SFR-10
PredictionProxyController RestClient @Bean predictionRestClient SFR-03, 20
EventController EventService SFR-11, 12
AlertController AlertService SFR-12, 17
EnforcementController EnforcementService (+@Auditable ENFORCEMENT_*) SFR-06, 11
ParentInferenceWorkflowController ParentInferenceWorkflowService SFR-10
StatsController (Repository 조회) SFR-13

공통 Bean 설정: config/RestClientConfig.javapredictionRestClient + signalBatchRestClient


부록 F: 후속 과제 우선순위 (2026-04-17 기준)

1순위 — 탐지 품질 개선

  • spoofing_score 산출 재설계 — 중국 MID 412 전원 0 수렴. BD-09 필터 + teleport 25kn 임계 재검토
  • RiskMap 실시간화 (SFR-05) — prediction_risk_grid 연동, HexagonLayer/HeatmapLayer
  • spoofing + transship 프론트 실데이터 고도화

2순위 — 인프라

  • 코드 스플리팅 — React.lazy + manualChunks (현재 단일 번들 3MB+)
  • JSX placeholder/텍스트 한글 35건 i18n 전환
  • external.iran_backend 매니페스트 노드 완전 삭제 (1~2 릴리즈 후)

3순위 — Mock 화면 실연동

  • SFR-03 DataHub 실시간 상태 (prediction 연동)
  • SFR-04 AIModelManagement (MLflow 연동)
  • SFR-07, 08 경로 최적화 엔진
  • SFR-14 유관기관 OpenAPI
  • SFR-18, 19 MLOps/LLMOps
  • SFR-20 /api/prediction/chat 실 LLM 연동

4순위 — 기업 연동

  • SFR-01 SSO / GPKI / 공무원증 인증
  • SFR-15 모바일 앱 패키징 (PWA 또는 React Native)
  • SFR-16 함정 단말 SDK
  • SFR-17 SMS/푸시 발송 게이트웨이

변경 이력

버전 일자 변경 내용
1.0 2026-04-06 초기 작성 (프론트엔드 프로토타입 20 SFR UI 완료)
2.0 2026-04-06 SFR 상세 추적 매트릭스 완성
3.0 2026-04-17 전면 재작성 — 백엔드/prediction 운영 배포 반영, PR #A/#B/#C 구조 정비 결과, 부록 E 백엔드 계층 신설