release: 2026-04-16.7 (4건 커밋) #67

병합
htlee develop 에서 main 로 6 commits 를 머지했습니다 2026-04-16 15:26:35 +09:00
소유자

릴리즈: 2026-04-16.7 — riskScore 해상도 개선 + vessel_type 매핑 + 중국 그리드 정합성

변경 (feat)

  • 경량 분석 riskScore 해상도 개선compute_lightweight_risk_scoredark_suspicion_score(0~100 패턴 기반 의심도) / dist_from_baseline_nm(EEZ 외 기선 근접도 12·24NM 차등) / dark_history_24h(반복 이력) 반영. 허가·반복 이중계산 방지 축소 로직
  • vessel_type 매핑 — fleet_vessels 등록선 fishery_code (PT/PT-S/OT/GN/PS/FC) 를 TRAWL/GILLNET/PURSE/CARGO 로 매핑하는 vessel_type_mapping.py 신설. 경량 경로의 vessel_type='UNKNOWN' 하드코딩 제거
  • VesselType 값 확장 — 기존 TRAWL/PURSE/LONGLINE/TRAP/UNKNOWN 에 GILLNET(유자망) / CARGO(운반선) 2종 추가
  • 중국 선박 분석 그리드 정합성 — Tab 1 상단 RealAllVessels 편의 export 를 mmsiPrefix='412' 로 고정 + 제목 "중국 선박 전체 분석 결과 (실시간)" 로 변경
  • 선박 유형 한글 카탈로그shared/constants/vesselTypes.ts 신설. 저인망/선망/유자망/연승/통발/운반선/미분류 한글 라벨 + Badge intent

운영 배포 검증 (redis-211 15:15 사이클)

  • risk_score 분포: 45점 60.8% → 0% (top20 분포에서 사라짐, 11~40 범위 고르게 분산)
  • vessel_type: UNKNOWN 98.6% → 89.1% (886척이 구체 유형으로 전환 — TRAWL 518 / LONGLINE 171 / TRAP 78 / PURSE 73 / GILLNET 38 / CARGO 8)
  • 412354335 샘플: 45 MEDIUM 고정 → 20 LOW (dark_suspicion_score=40 × 0.3 + 축소 허가 8)

커밋 목록

  • 9063095 docs: 릴리즈 노트 정리 (2026-04-16.7)
  • 65b98c5 feat: 경량 분석 riskScore 해상도 개선 + vessel_type 매핑 + 중국 그리드 정합성 (#65)
  • 6fb0b04 feat(prediction): 경량 분석 riskScore 해상도 개선 + vessel_type 매핑
  • 524df19 feat(frontend): 선박 유형 한글 카탈로그 + 중국 선박 분석 그리드 정합성

검증 체크리스트

  • Python 문법 검증 (risk.py / scheduler.py / vessel_type_mapping.py)
  • npx tsc --noEmit 0 errors / ESLint 0 warnings
  • prediction 재배포 후 첫 사이클 upsert 8127건 정상
  • DB 실측 분포 SQL 기대치 부합

후속 작업 (별도 PR)

  • spoofing_score 산출 로직 재설계 — 중국 MID 412 선박 전원 0 수렴. BD-09 필터 + teleport 25kn 임계 재검토
## 릴리즈: 2026-04-16.7 — riskScore 해상도 개선 + vessel_type 매핑 + 중국 그리드 정합성 ### 변경 (feat) - **경량 분석 riskScore 해상도 개선** — `compute_lightweight_risk_score` 에 `dark_suspicion_score`(0~100 패턴 기반 의심도) / `dist_from_baseline_nm`(EEZ 외 기선 근접도 12·24NM 차등) / `dark_history_24h`(반복 이력) 반영. 허가·반복 이중계산 방지 축소 로직 - **vessel_type 매핑** — fleet_vessels 등록선 `fishery_code` (PT/PT-S/OT/GN/PS/FC) 를 `TRAWL/GILLNET/PURSE/CARGO` 로 매핑하는 `vessel_type_mapping.py` 신설. 경량 경로의 `vessel_type='UNKNOWN'` 하드코딩 제거 - **VesselType 값 확장** — 기존 TRAWL/PURSE/LONGLINE/TRAP/UNKNOWN 에 `GILLNET`(유자망) / `CARGO`(운반선) 2종 추가 - **중국 선박 분석 그리드 정합성** — Tab 1 상단 `RealAllVessels` 편의 export 를 `mmsiPrefix='412'` 로 고정 + 제목 "중국 선박 전체 분석 결과 (실시간)" 로 변경 - **선박 유형 한글 카탈로그** — `shared/constants/vesselTypes.ts` 신설. 저인망/선망/유자망/연승/통발/운반선/미분류 한글 라벨 + Badge intent ### 운영 배포 검증 (redis-211 15:15 사이클) - **risk_score 분포**: 45점 **60.8% → 0%** (top20 분포에서 사라짐, 11~40 범위 고르게 분산) - **vessel_type**: UNKNOWN **98.6% → 89.1%** (886척이 구체 유형으로 전환 — TRAWL 518 / LONGLINE 171 / TRAP 78 / PURSE 73 / GILLNET 38 / CARGO 8) - **412354335 샘플**: 45 MEDIUM 고정 → **20 LOW** (dark_suspicion_score=40 × 0.3 + 축소 허가 8) ### 커밋 목록 - `9063095` docs: 릴리즈 노트 정리 (2026-04-16.7) - `65b98c5` feat: 경량 분석 riskScore 해상도 개선 + vessel_type 매핑 + 중국 그리드 정합성 (#65) - `6fb0b04` feat(prediction): 경량 분석 riskScore 해상도 개선 + vessel_type 매핑 - `524df19` feat(frontend): 선박 유형 한글 카탈로그 + 중국 선박 분석 그리드 정합성 ### 검증 체크리스트 - [x] Python 문법 검증 (risk.py / scheduler.py / vessel_type_mapping.py) - [x] `npx tsc --noEmit` 0 errors / ESLint 0 warnings - [x] prediction 재배포 후 첫 사이클 upsert 8127건 정상 - [x] DB 실측 분포 SQL 기대치 부합 ### 후속 작업 (별도 PR) - **spoofing_score 산출 로직 재설계** — 중국 MID 412 선박 전원 0 수렴. BD-09 필터 + teleport 25kn 임계 재검토
htlee added 6 commits 2026-04-16 15:26:26 +09:00
경량 경로 선박 60.8%가 45점 고정으로 수렴하고 98.6%가 vessel_type
UNKNOWN 으로만 기록되던 문제를 해결한다.

riskScore (compute_lightweight_risk_score)
- dark_suspicion_score(0~100) 직접 반영: min(30, score*0.3)
- EEZ_OR_BEYOND 기선 근접도 가산 (12NM 내 +15, 24NM 내 +8)
- dark_history_24h 가산 (dark_suspicion_score 미반영 케이스만)
- 허가 이력 +20 → +8/+15 차등 (dark_suspicion_score 있을 때 이중계산 방지)
- gap_duration_min 4구간 차등 (fallback: 720m/180m/60m/30m)

vessel_type (신규 vessel_type_mapping.py)
- fleet_vessels fishery_code → VesselType 매핑:
  PT/PT-S/OT → TRAWL, GN → GILLNET, PS → PURSE, FC → CARGO
- GILLNET / CARGO 2개 값 신규 추가 (기존 TRAWL/PURSE/LONGLINE/TRAP/UNKNOWN)
- scheduler.py 경량 경로에서 등록선은 매핑, 미등록선은 UNKNOWN 유지

배포 후 검증 (redis-211 15:15 사이클)
- risk_score 분포: 45점 60.8% → 0% (11~40 범위 고르게 분산)
- vessel_type: UNKNOWN 98.6% → 89.1% (886척이 구체 유형으로 전환,
  TRAWL 518 / LONGLINE 171 / TRAP 78 / PURSE 73 / GILLNET 38 / CARGO 8)
- 412354335 샘플: 45 MEDIUM 고정 → 20 LOW (dss=40 × 0.3 + 축소 허가)
vessel_type 카탈로그
- shared/constants/vesselTypes.ts 신규 — TRAWL/PURSE/GILLNET/LONGLINE/
  TRAP/CARGO/UNKNOWN 7종 + getVesselTypeLabel / getVesselTypeIntent
  헬퍼. 기존 alertLevels 카탈로그 패턴 답습
- catalogRegistry 에 VESSEL_TYPES 등록 — design-system 쇼케이스에 자동
  노출

RealVesselAnalysis 필터 props 확장
- Props 에 mmsiPrefix / minRiskScore / size 추가 (all·spoofing mode)
- 선박 유형 컬럼을 한글 라벨로 렌더
- RealAllVessels 편의 export 를 mmsiPrefix='412' 로 고정 + 제목을
  '중국 선박 전체 분석 결과 (실시간)' 로 변경

효과
- Tab 1 상단 그리드가 중국 선박만 표시해 페이지 성격과 일치
- 선박 유형 '저인망/선망/유자망/연승/통발/운반선/미분류' 한글 표시
- 55점 HIGH 같은 중국 선박이 상단/하단 양쪽에 일관되게 노출
claude-bot 이 변경사항을 승인하였습니다. 2026-04-16 15:26:34 +09:00
claude-bot left a comment
멤버

릴리즈 승인 (via /release skill)

릴리즈 승인 (via /release skill)
htlee merged commit c8673246f3 into main 2026-04-16 15:26:35 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 2명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

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

의존성

No dependencies set.

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