release: 2026-03-16 (81건 커밋) #93

병합
jhkang develop 에서 main 로 30 commits 를 머지했습니다 2026-03-16 18:36:00 +09:00
소유자

由대━利� �끂�듃 ��� [2026-03-16]

異붽��

  • 蹂닿퀬�꽌 �솗�궛�삁痢� 吏��룄 罹≪쿂 湲곕뒫 (OilSpreadMapPanel, MAP_CAPTURE_IMG DB 而щ읆)
  • �떎�떆媛� �뱶濡� 吏��룄 酉� ��� �뱶濡� �쐞移� �븘�씠肄� + �겢由� �뒪�듃由� �뿰寃�
  • CCTV 吏��룄/由ъ뒪�듃 酉� �쟾�솚 + CCTV �븘�씠肄� + �떎�겕 �뙘�뾽 UI
  • KBS CCTV HLS 吏곸젒 �옱�깮 + CCTV �쐞移� 吏��룄 + 醫뚰몴 �젙�솗�룄 媛쒖꽑
  • �궗�슜�옄 留ㅻ돱�뼹 �뙘�뾽 湲곕뒫 異붽��
  • �솗�궛�삁痢� 吏��룄 諛앹�� �빐�룄 �뒪����씪 �쟻�슜 (�쑁吏� �쉶�깋 + 諛붾떎 �뙆�옉)
  • KOSPS/�븰�긽釉� 以�鍮꾩쨷 �뙘�뾽 + 湲곕낯 紐⑤뜽 POSEIDON 蹂�寃�
  • �삤�뿼遺꾩꽍 �썝 遺꾩꽍 湲곕뒫 ��� 以묒떖�젏/諛섍꼍 �엯�젰�쑝濡� �썝�삎 �삤�뿼 硫댁쟻 怨꾩궛
  • �삤�씪�렂�뒪 諛곗튂 媛��씠�뱶 UI 媛쒖꽑

�닔�젙

  • geo.ts 以묐났 �븿�닔 �젣嫄� 諛� null 醫뚰몴 李몄“ �삤瑜� �닔�젙

蹂�寃�

  • �솗�궛 �삁痢� �슂�빟 �룿�듃/�젅�씠�븘�썐�쓣 �삤�뿼 醫낇빀 �긽�솴怨� �넻�씪
  • �삤�뿼遺꾩꽍 UI 媛쒖꽑 ��� HTML �뵒�옄�씤 李멸퀬 諛섏쁺
  • 踰붾�� UI 媛쒖꽑 ��� HTML 李멸퀬 �뵒�옄�씤 諛섏쁺
  • �뱶濡� �븘�씠肄� 荑쇰뱶肄ν꽣 + �븿�젙 MarineTraffic �궪媛곹삎 �뒪����씪

湲고��

  • �봽濡좏듃�뿏�뱶 �룷�듃 蹂�寃�(5174) + CORS �뿀�슜

而ㅻ컠 81嫄�, develop �넂 main

�뀒�뒪�듃

  • 鍮뚮뱶 �꽦怨� �솗�씤
  • 蹂닿퀬�꽌 吏��룄 罹≪쿂 ����옣/�몴�떆 �솗�씤
  • �뱶濡� �떎�떆媛� 吏��룄 酉� �솗�씤
  • �궗�슜�옄 留ㅻ돱�뼹 �뙘�뾽 �솗�씤
## 由대━利� �끂�듃 ��� [2026-03-16] ### 異붽�� - 蹂닿퀬�꽌 �솗�궛�삁痢� 吏��룄 罹≪쿂 湲곕뒫 (OilSpreadMapPanel, MAP_CAPTURE_IMG DB 而щ읆) - �떎�떆媛� �뱶濡� 吏��룄 酉� ��� �뱶濡� �쐞移� �븘�씠肄� + �겢由� �뒪�듃由� �뿰寃� - CCTV 吏��룄/由ъ뒪�듃 酉� �쟾�솚 + CCTV �븘�씠肄� + �떎�겕 �뙘�뾽 UI - KBS CCTV HLS 吏곸젒 �옱�깮 + CCTV �쐞移� 吏��룄 + 醫뚰몴 �젙�솗�룄 媛쒖꽑 - �궗�슜�옄 留ㅻ돱�뼹 �뙘�뾽 湲곕뒫 異붽�� - �솗�궛�삁痢� 吏��룄 諛앹�� �빐�룄 �뒪����씪 �쟻�슜 (�쑁吏� �쉶�깋 + 諛붾떎 �뙆�옉) - KOSPS/�븰�긽釉� 以�鍮꾩쨷 �뙘�뾽 + 湲곕낯 紐⑤뜽 POSEIDON 蹂�寃� - �삤�뿼遺꾩꽍 �썝 遺꾩꽍 湲곕뒫 ��� 以묒떖�젏/諛섍꼍 �엯�젰�쑝濡� �썝�삎 �삤�뿼 硫댁쟻 怨꾩궛 - �삤�씪�렂�뒪 諛곗튂 媛��씠�뱶 UI 媛쒖꽑 ### �닔�젙 - geo.ts 以묐났 �븿�닔 �젣嫄� 諛� null 醫뚰몴 李몄“ �삤瑜� �닔�젙 ### 蹂�寃� - �솗�궛 �삁痢� �슂�빟 �룿�듃/�젅�씠�븘�썐�쓣 �삤�뿼 醫낇빀 �긽�솴怨� �넻�씪 - �삤�뿼遺꾩꽍 UI 媛쒖꽑 ��� HTML �뵒�옄�씤 李멸퀬 諛섏쁺 - 踰붾�� UI 媛쒖꽑 ��� HTML 李멸퀬 �뵒�옄�씤 諛섏쁺 - �뱶濡� �븘�씠肄� 荑쇰뱶肄ν꽣 + �븿�젙 MarineTraffic �궪媛곹삎 �뒪����씪 ### 湲고�� - �봽濡좏듃�뿏�뱶 �룷�듃 蹂�寃�(5174) + CORS �뿀�슜 --- 而ㅻ컠 81嫄�, develop �넂 main ## �뀒�뒪�듃 - [ ] 鍮뚮뱶 �꽦怨� �솗�씤 - [ ] 蹂닿퀬�꽌 吏��룄 罹≪쿂 ����옣/�몴�떆 �솗�씤 - [ ] �뱶濡� �떎�떆媛� 吏��룄 酉� �솗�씤 - [ ] �궗�슜�옄 留ㅻ돱�뼹 �뙘�뾽 �솗�씤
jhkang added 30 commits 2026-03-16 18:35:23 +09:00
해양수산부 공공데이터 CSV → INSERT SQL 변환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CCTV 오일 유출 감지:
- GPU 추론 서버 FastAPI 서비스 (oil_inference_server.py)
- Express 프록시 엔드포인트 (POST /api/aerial/oil-detect)
- 프론트엔드 API 연동 (oilDetection.ts, useOilDetection.ts)
- 4종 유류 클래스별 색상 오버레이 (OilDetectionOverlay.tsx)
- 캡처 기능 (비디오+오버레이 합성 PNG 다운로드)
- Rate limit HLS 스트리밍 skip + 한도 500 상향

HNS 대기확산:
- 초기 핀 포인트 제거 (지도 클릭으로 선택)
- 좌표 미선택 시 안내 메시지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- UsersPanel: 테이블+페이징+등록모달+상세모달(비밀번호초기화/잠금해제)
- PermissionsPanel: 사용자별 역할 할당 탭 추가
- BoardMgmtPanel: 공지사항/게시판/QNA 관리자 일괄 삭제
- VesselSignalPanel: VTS/VTS-AIS/V-PASS/E-NAVI/S&P AIS 타임라인 모니터링
- AdminSidebar/AdminPlaceholder/adminMenuConfig 신규
- 권한 미들웨어 부모 리소스 fallback 로직 추가
- 조직 목록 API, 관리자 삭제 API 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Express에서 /orgs가 /:id 뒤에 등록되어 'orgs'가 파라미터로 잡히던 버그 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 퀵 메뉴에 '사용자 매뉴얼' 버튼 추가 (위성영상 아래)
- UserManualPopup 컴포넌트 신규 생성 (77개 화면, 8개 챕터)
- 각 화면별 스크린샷 이미지 77장 포함 (/public/manual/)
- 라이트박스 이미지 확대, 전체 열기/닫기, 챕터 네비게이션
- KBS 재난안전포탈 CCTV를 iframe에서 HLS 직접 재생으로 전환
- 백엔드 KBS HLS 리졸버 엔드포인트 추가 (/api/aerial/cctv/kbs-hls/:cctvId/stream.m3u8)
- KBS API 3단계 리졸브: 팝업API → loomex API → m3u8 (5분 캐시)
- CCTV 미선택 시 MapLibre 지도에 마커 표시 + 팝업 영상 선택
- 우측 미니맵을 실제 MapLibre 지도로 교체
- KBS API 정확 좌표로 19개 CCTV 업데이트 + 신규 2건 추가 (울산 달동, 제주 도남동)
- PredictionInputSection 중복 className 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
고객요청사항 - 지도를 밝게 하거나, 선명하게 해서 확실히 구분해주세요.

- MapView에 lightMode prop 추가 및 해도 스타일(LIGHT_STYLE) 구현
- OpenFreeMap 벡터타일 기반: 육지(회색 #e8e8e8) + 바다(파랑 #a8cce0) 명확 구분
- 한글 지명 라벨 우선 표시 (name:ko → name 폴백)
- 도로/건물/경계선 회색 톤 통일, 해양 지명 이탤릭 표시
- 확산예측(OilSpillView)에 lightMode 적용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 지도/리스트 뷰 토글 버튼 추가 (🗺 지도 / ☰ 리스트)
- 리스트 뷰: 출처별(KHOA/KBS) · 지역별 그룹핑 테이블 그리드
  카메라명, 위치, 상태, 최종갱신 컬럼 표시
- 지도 마커: 📹 이모지 → CCTV 카메라 SVG 아이콘 (LIVE 표시등 애니메이션)
- 좌측 목록: CCTV SVG 아이콘으로 교체
- 지도 팝업 다크 테마 적용 (배경, 테두리, 삼각형, 버튼 모두 어두운 톤)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- AI 자동 추천: 클릭 시 "향후 오픈 예정" 팝업 표시
- 수동 배치 탭 제거
- 시뮬레이션: V자형 오일붐 자동 배치 + 차단 시뮬레이션 통합 실행
  알고리즘 설정(해류 직교 보정, 안전 마진, 최소 차단 효율, 파고 보정) 시뮬레이션 탭 내 통합
- 초기화: 확인 팝업 추가 (오일펜스만 초기화, 확산예측 결과 유지)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 오염분석 버튼을 다각형 분석 / 원 분석으로 분리
- 다각형 분석: Convex Hull(Graham Scan) + Shoelace 알고리즘으로
  확산 입자 외곽 다각형 면적(km²), 둘레(km), 꼭짓점 수 계산
- 원 분석: 향후 오픈 예정 팝업
- geo.ts에 convexHull, polygonAreaKm2, analyzeSpillPolygon 함수 추가
- OilSpillView → RightPanel에 oilTrajectory prop 전달
- 지도 범례에 최소화/펼치기 토글 버튼 추가
- CheckboxLabel 중복 className 경고 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 원 분석 버튼 클릭 시 입력 폼 토글 (중심 위도, 경도, 반경 km)
- 사고 지점 좌표를 기본값으로 자동 설정
- πr² 면적, 2πr 둘레 계산 결과 표시
- 결과: 오염 면적(km²), 원 둘레(km), 반경(km), 중심 좌표

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 다각형/원 분석 탭 버튼 사이즈 축소 + 활성 탭 스타일 통일
- 다각형 분석: 설명 텍스트 + 그라데이션 "다각형 분석수행" 버튼
- 원 분석: 반경(NM) 프리셋 버튼(1,3,5,10,15,20,30,50) + 직접 입력
  사고지점 기준 원형 영역 면적 계산 (NM² + km²)
- 분석 결과: NM²/km² 면적, 원 둘레, 반경 표시

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 모델별 색상 라인 (KOSPS/POSEIDON/OpenDrift/앙상블)
- 오일펜스 라인 아이콘 (점 3개)
- 도달시간별 선종 표시: 위험(<6h), 경고(6~12h), 주의(12~24h), 안전
- 범례 사이즈 축소 (폰트 10px, 패딩 축소)
- 접기/펼치기 토글 (▶/▼)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- KOSPS 모델 클릭 시 "준비중" alert 팝업
- 앙상블 모델 클릭 시 "준비중" alert 팝업
- 기본 선택 모델을 KOSPS → POSEIDON으로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- PredictionCard를 StatBox와 동일한 가로 레이아웃(라벨-값)으로 변경
- 폰트 사이즈 text-xs → text-[9px]로 축소하여 오염 종합 상황과 일치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 드론 미선택 시 MapLibre 지도에 드론 위치 표시 (부산/인천/목포)
- 드론 SVG 아이콘 (본체+팔4개+프로펠러+카메라, 상태별 색상)
- 송출중 드론은 빨간 LED 깜빡임 애니메이션
- 드론 클릭 → 다크 팝업 (함정명, 드론모델, IP, 상태)
  대기중: "스트림 시작" 버튼 / 송출중: "영상 보기" 버튼
- 스트림 선택 시 자동으로 영상 그리드로 전환

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 함정: 삼각형 아이콘 + 함정명 라벨 (좌하단)
- 드론: 원형 아이콘 (십자 프로펠러 + 본체 + 카메라 렌즈) (우상단)
- 함정↔드론 점선 연결선으로 소속 관계 표시
- 상태별 색상: 송출중(초록), 연결중(시안), 오류(빨강), 대기(회색)
- 송출중 드론 빨간 LED 깜빡임 유지
- 드론 모델명 라벨 (M300/M30T/Mavic3E)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 함정: MarineTraffic 스타일 삼각형 (선수 방향 위, 상태색 채움)
- 드론: 쿼드콥터 아이콘 (X자 팔 + 프로펠러 회전 애니메이션 + 카메라 렌즈)
- 함정↔드론 점선 연결선 유지
- 송출중 REC LED 깜빡임, 드론 모델명 라벨

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- aerialRouter/Service: stitch(이미지합성) + drone stream 기능 통합
- aerialService: IMAGE_API_URL(stitch) / OIL_INFERENCE_URL(inference) 분리
- aerialApi: stitchImages + DroneStream API 함수 공존
- MapView: analysis props(HEAD) + lightMode prop(INCOMING) 통합
- CctvView: 지도/리스트/그리드 3-way 뷰 채택 (INCOMING 확장)
- OilSpillView: analysis 상태 + 데모 자동 표시 useEffect 통합
- PredictionInputSection: POSEIDON/KOSPS 모델 추가 (ready 필드 포함)
- RightPanel: controlled props 방식 유지, 미사용 내부 상태 제거

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
claude-bot 이 변경사항을 승인하였습니다. 2026-03-16 18:35:58 +09:00
claude-bot left a comment
멤버

������ ���� (via /release skill)

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

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

의존성

No dependencies set.

Reference: gc/wing-ops#93
No description provided.