- InfoLayerSection을 공통 컴포넌트로 이동 (prediction → common/layer)
- HNSLeftPanel에 InfoLayerSection 통합 (레이어 표시/불투명도/밝기/색상)
- HNS 분석 생성 시 spilQty, spilUnitCd, fcstHr, algoCd, critMdlCd 전달
- DB migration 033: SPIL_QTY NUMERIC(22,10) 확장 (대용량 유출량 지원)
- bg/stroke/fg grayscale을 쿨톤으로 전환 (#121418, #24272D 등)
- Primary #0099DD + Red #D61111 + Yellow #FEDA4A 적용
- ColorPaletteContent 디자인 페이지 값 동기화
- CLAUDE.md 완료된 진행 중 작업 섹션 제거
- Incidents 통합 분석 시 이전 분석 결과를 분할 화면으로 표출
- 유출유/HNS/구난 분석 선택 모달(AnalysisSelectModal) 추가
- prediction /analyses/:acdntSn/oil-summary API 신규 (primary + byModel)
- HNS 분석 생성 시 acdntSn 연결 지원
- GSC 사고 목록 응답에 acdntSn 노출
- 민감자원 누적/카테고리 관리 및 HNS 확산 레이어 유틸(hnsDispersionLayers) 추가
- 등농도선(marching squares) 레이어 추가 — AEGL-1/2/3 경계선 PathLayer 표출
- 풍속 기반 sim 도메인 동적 산정 (L = 10~50km)
- 히트맵 영역 기준 지도 자동 fit-bounds
- 분석 복원 시 spilUnitCd로 연속/순간 유출 분기
- admin 패널 전반 디자인 토큰 정리 (color-danger, accent rgba)
- 우측 패널에 HNS 대기확산/긴급구난 완료 이력 목록 및 체크박스 연동
- incidents 목록에 hasHnsCompleted/hasRescueCompleted 플래그 추가
- hns/rescue 목록 API에 acdntSn 필터 추가
- /gsc/accidents 셀렉트박스 소스를 gsc.tgs_acdnt_info → wing.ACDNT 로 전환
- gsc → wing.ACDNT 동기화 마이그레이션 032 추가
- 백엔드 vessels 라우터/서비스/스케줄러 추가 (1분 주기 한국 해역 폴링)
- 공통 useVesselSignals 훅 + vesselApi/vesselSignalClient 서비스 추가
- MapView에 VesselLayer/VesselInteraction/MapBoundsTracker 통합 (호버·팝업·상세 모달)
- OilSpill/HNS/Rescue/Incidents 뷰에 선박 신호 연동
- vesselMockData 정리, aerial IMAGE_API_URL 기본값 변경
- 사고별 이미지 분석 API 및 항공 미디어 조회 연동
- 사고 마커 팝업 디자인 개선, 필터링된 사고만 지도 표시
- 이미지 분석 시 사고명 파라미터 지원, 기본 예측시간 6시간으로 변경
- 유출량 정밀도 NUMERIC(14,10) 확대 (migration 031)
- OpenDrift 유종 매핑 수정 (원유, 등유)
- RescueView: CenterMap을 MapView(useBaseMapStyle) 기반 OSM 지도로 교체
- RescueScenarioView: BASE_STYLE → useBaseMapStyle로 전환하여 OSM 통일
- 긴급구난 시나리오 시드 데이터 10건으로 확장 (모델 이론 기반)
- 관리자 비식별화조치 R&D 패널 5종 추가 (HNS대기, KOSPS, POSEIDON, Rescue, 시스템아키텍처)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- GeoJSON 기반 영해기선 거리 계산 및 구역(3/12/25/50해리) 판별
- point-in-polygon 및 point-to-segment 거리 알고리즘 적용
- 해양환경관리법 제22조 기반 배출 규정 표출
- 서해 NLL 경로 좌표 추가 (백령도 부근까지 연장)
- 지도 스타일 상수를 mapStyles.ts로 추출
- useBaseMapStyle 훅 생성 (mapToggles 기반 스타일 반환)
- 9개 탭 컴포넌트의 하드코딩 스타일을 공유 훅으로 교체
- 각 Map에 S57EncOverlay 추가
- 초기 mapToggles를 모두 false로 변경 (기본지도 표시)
- ENC 타일 프록시 엔드포인트 추가 (style, sprite, font, globe, enc 벡터타일)
- S57EncOverlay 컴포넌트 구현 (공식 style.json 기반 레이어 동적 추가/제거)
- 맵 토글 라디오 버튼 방식으로 변경 (한 번에 하나만 활성화)
- 언마운트 시 map.style 파괴 상태 안전 처리