Nan Kyung Lee
e18a1a4932
feat(layer): 위험/산업 인프라 레이어 그룹 및 UI 개선
...
- 위험시설: 석유화학단지(5), LNG기지(10), 유류탱크(15), 위험물항만(6) 추가
- 에너지/발전시설: 원자력(5), 화력(5) 추가; 발전/변전·풍력단지 그룹 이동
- 산업공정/제조시설: 조선소(6), 폐수처리(5), 시멘트/제철소(5) 추가
- 위험/산업 인프라 수퍼그룹 신설 (3단계 계층 구조)
- LayerPanel: 레이어 수량을 우측 숫자 뱃지로 표시 (괄호 제거)
- 해외시설 하위항목: 이란탭=호르무즈 10개국, 한국탭=중국·일본
- EventLog: 재난/안전뉴스 섹션 추가 (한국탭), OSINT 접기/펼치기
- OSINT 뉴스 2026-03-21 기준으로 업데이트
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 09:47:44 +09:00
83b3d80c6d
feat: Python 어선 분류기 + 배포 설정 + 백엔드 모니터링 프록시
...
- prediction/: FastAPI 7단계 분류 파이프라인 + 6개 탐지 알고리즘
- snpdb 궤적 조회 → 인메모리 캐시(13K척) → 분류 → kcgdb 저장
- APScheduler 5분 주기, Python 3.9 호환
- 버그 수정: @property last_bucket, SQL INTERVAL 바인딩, rollback, None 가드
- 보안: DB 비밀번호 하드코딩 제거 → env 환경변수 필수
- deploy/kcg-prediction.service: systemd 서비스 (redis-211, 포트 8001)
- deploy.yml: prediction CI/CD 배포 단계 추가 (192.168.1.18:32023)
- backend: PredictionProxyController (health/status/trigger 프록시)
- backend: AppProperties predictionBaseUrl + AuthFilter 인증 예외
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:07:40 +09:00
feabf16114
feat: 중국어선 분석 인프라 — 허가어선 API 연동 + vessel-analysis 백엔드 + 결과 포맷 확정
...
- Frontend: ChnPrmShipInfo 타입 + chnPrmShip.ts 서비스 (signal-batch 허가어선 API)
- Frontend: FieldAnalysisModal fetchVesselPermit → lookupPermittedShip 교체
- Frontend: 더미 라벨 정리 (LightGBM → 규칙기반, BD-09/레이더 → STANDBY/미연동)
- Frontend: VesselAnalysisResult 인터페이스 정의 (Python 분석 결과 수신용)
- Backend: vessel-analysis REST API (Entity/Repository/Service/Controller)
- Backend: DB 마이그레이션 005 (kcg.vessel_analysis_results 테이블)
- Backend: AuthFilter 인증 예외 + CacheConfig 캐시 등록
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 11:00:16 +09:00
Nan Kyung Lee
5cf69a1d22
feat: 현장분석 팝업 추가 — 중국 불법어업 현장분석 대시보드
...
- 한국 현황 탭 상단에 현장분석 버튼 추가 (지도 위 팝업)
- 통계 스트립: 총탐지/영해침범/조업중/AIS소실/클러스터/선종 분류
- 구역별 현황 + AI 파이프라인 상태 (LightGBM/BIRCH/UCAF)
- 선박 테이블: 필터/검색/경보 등급 정렬 + CSV 내보내기
- 선박 선택 시 허가 정보 조회 + 선박 사진 (S&P Global/MarineTraffic)
- 대응 명령 / ENG드론 버튼으로 경보 로그 기록
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 09:25:38 +09:00
Nan Kyung Lee
d000807909
fix: 중국어선감시 지도 멈춤 해결 — 마커 수 제한 + 이벤트 차단 CSS, 탑메뉴 불법어선 제거
2026-03-20 08:54:32 +09:00
Nan Kyung Lee
a467540dda
fix: 중국어선감시 활성화 시 지도 드래그 불가 — 마커 pointerEvents none 추가
2026-03-20 08:49:58 +09:00
Nan Kyung Lee
d40084da3b
feat: 한국 현황 상단에 중국어선감시 버튼 추가
2026-03-20 08:48:21 +09:00
Nan Kyung Lee
8f4558a81c
fix: 선박 팝업 텍스트 색상 고정 — 라이트 모드에서 정보 안 보이는 문제 해결
2026-03-20 08:45:43 +09:00
bb7c428528
docs: 릴리즈 노트 업데이트 + lint 에러 수정
2026-03-20 08:44:55 +09:00
Nan Kyung Lee
8b69bea667
fix: 한국/중국 선박 현황 패널 기본 접힘 처리
2026-03-20 07:27:47 +09:00
Nan Kyung Lee
7174dfd629
feat: 중국어선 조업분석, 어구/어망 분류, 이란 시설, 레이어 재구성
...
- 어선 분류 개선: AIS Ship Type 30 + category fallback + 선박명 패턴
- 어구/어망 카테고리 신설: 선박명_숫자_ / 선박명% 패턴으로 분류
- 중국어선 조업분석: GC-KCG-2026-001 + CSSA 보고서 기반 (안강망 추가)
- 중국어선 선단 탐지: 본선-부속선 쌍, 운반선 환적, 선망 선단
- 어구/어망 → 모선 연결선 시각화
- 어구 SVG 아이콘 5종 (트롤/자망/안강망/선망/기본)
- 이란 주변국 시설 레이어 (MEFacilityLayer 35개소)
- 사우스파르스 가스전 피격 + 카타르 라스라판 보복 공격 반영
- 한국 해군부대 10개소 추가
- 레이어 재구성: 선박(최상위) → 항공망(항공기+위성) → 해양안전 → 국가기관망
- 어선 국적별 하위 분류 (선박 분류 내 어선 펼치기)
- 오른쪽 패널 접기/펼치기 (한국현황, 중국현황, 조업분석, OSINT)
- 항공망 기본 접힘 처리
- 센서차트 기본 숨김
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 16:46:27 +09:00
Nan Kyung Lee
e9ce6ecdd2
feat(korea): 한국 현황 레이어 대규모 확장 — 국적 필터, 풍력단지, 항구, 군사시설, 정부기관, 미사일 낙하
...
- 국적 분류 필터 추가 (한국/중국/북한/일본/미분류)
- S&P Global / MarineTraffic 탭 디자인 개선
- CCTV 백엔드 프록시 연결 (CctvProxyController)
- 풍력단지 레이어 (8개소 해상풍력)
- 항구 레이어 (한국/중국/일본/북한/대만 46개)
- 공항 확장 (중국 20, 일본 18, 북한 5, 대만 9개 추가)
- 군사시설 레이어 (중국/일본/북한/대만 38개소)
- 정부기관 레이어 (중국/일본 32개소)
- 북한 발사/포병진지 레이어 (19개소)
- 북한 미사일 낙하 시각화 (2026년 4건, 궤적 라인, 인근 선박 감지)
- 항행정보/팝업 공통 스타일 정리
- 선박 현황 정렬 스타일 개선
- 레이어 패널 폰트 축소
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 10:34:16 +09:00
506584cd66
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-19)' ( #71 ) from docs/release-notes-2026-03-19 into develop
2026-03-19 10:24:04 +09:00
572de9827a
docs: 릴리즈 노트 정리 (2026-03-19)
2026-03-19 10:23:33 +09:00
424a95e78f
Merge pull request 'refactor+fix: 인라인 CSS 정리 + OSINT 중복 수집 방지 + MapLibre race condition 해소' ( #70 ) from refactor/inline-css-cleanup into develop
2026-03-19 10:21:21 +09:00
2c6f79c4d3
docs: 릴리즈 노트 업데이트
2026-03-19 10:20:24 +09:00
e304a841ed
fix: OSINT 기사 중복 수집 방지 + MapLibre symbol layer race condition 해소
...
- OsintCollector: title 기반 24h 중복 체크 추가 (GDELT/Google News)
- ShipLayer: hover를 feature-state로 분리하여 setData 빈도 감소
- ShipLayer: ships-korean-label 조건부 마운트 → visibility 제어로 변경
2026-03-19 10:19:06 +09:00
5210ddcda8
Merge pull request 'refactor: 인라인 CSS 정리 — 공통 클래스 + Tailwind 전환' ( #68 ) from refactor/inline-css-cleanup into develop
2026-03-18 14:23:45 +09:00
4dd1597111
refactor: 인라인 CSS 정리 — 공통 클래스 추출 + Tailwind 전환
...
- CollectorMonitor: 29건 인라인 → CSS 클래스 (~3건 동적만 잔존)
- 팝업 공통 CSS: .popup-header, .popup-body, .popup-grid, .popup-label 추출
- AirportLayer, DamagedShipLayer, InfraLayer, SubmarineCableLayer 적용
- LoginPage: var(--kcg-*) 인라인 → Tailwind 유틸리티 전환 (hover 포함)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 14:23:09 +09:00
5b39866f4d
Merge pull request 'fix: 한국 선박 클릭 시 지도 포커스 이동 + 모달' ( #66 ) from fix/ship-click-flyto into develop
2026-03-18 12:28:17 +09:00
448f1b6804
fix: 한국 선박 목록 클릭 시 지도 포커스 이동 + 모달 동시 호출
...
- onShipClick: focusMmsi + flyToTarget(zoom 10) 동시 설정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 12:28:00 +09:00
e5a79cf37a
Merge pull request 'fix: LIVE 모드 더미 피격선박 제거' ( #64 ) from fix/damaged-ships-live into develop
2026-03-18 12:12:05 +09:00
60edd6bcfd
fix: LIVE 모드 더미 피격선박 제거 + 선박 분류/배지 색상 통일
...
- DamagedShipLayer: 시나리오 범위(3/1~3/14) 밖이면 피격선박 미표시
- getMarineTrafficCategory: VesselType 문자열 매칭 우선 (Cargo→fishing 오분류 수정)
- EventLog 배지 색상: CSS 변수 통일 (LayerPanel/ShipLayer와 동일)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 12:11:46 +09:00
ff860ba639
Merge pull request 'fix: 선박 분류 오류 수정 + 배지 색상 통일' ( #62 ) from fix/ship-category-colors into develop
2026-03-18 11:58:45 +09:00
387c4e42c8
fix: 선박 분류 오류 수정 + 배지 색상 통일
...
- getMarineTrafficCategory: VesselType 문자열 매칭을 STAT5CODE 접두사보다 우선 적용
- STAT5CODE 매칭: 2번째 문자가 숫자인 경우만 적용 ("Cargo" → fishing 오분류 방지)
- EventLog 로컬 getShipMTCategory 제거 → 공통 getMarineTrafficCategory 통합
- EventLog 배지 색상: 하드코딩 hex → CSS 변수 (LayerPanel/ShipLayer와 동일)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 11:58:32 +09:00
5279a016d1
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-18)' ( #60 ) from chore/release-prep-10 into develop
2026-03-18 11:04:27 +09:00
0e2397da9b
docs: 릴리즈 노트 정리 (2026-03-18)
2026-03-18 11:04:09 +09:00
4f6fabf15a
Merge pull request 'feat: 센서 그래프 개선 + 지진 마커 + 시설 아이콘 정렬 + SSH 재시도' ( #59 ) from hotfix/ssh-retry-v2 into develop
2026-03-18 11:03:43 +09:00
a06fc0b4cc
docs: 릴리즈 노트 업데이트
2026-03-18 11:03:24 +09:00
7fa4e2bfb1
feat: 센서 그래프 개선 + 지진 마커 + 시설 아이콘 정렬 + SSH 재시도 v2
...
- SensorChart: 히스토리 1H/2H/3H/6H, 기압 SLP 보정, 데이터 범위 확장(y축 시작)
- SensorChart Tooltip: KST 시간 포맷, 위치 상단 고정, 스타일 통일
- 지진 포인트 클릭 → 지도 flyTo + SeismicMarker 진도별 펄스 원형 표시
- SatelliteMap flyTo 지원 추가
- OilFacilityLayer: planned ring SVG 내부로 이동 (아이콘 중심 정렬 수정)
- 밝은 테마 text-shadow CSS 변수 분리 (dark/light)
- deploy.yml: SSH SCP+실행 각 3회 재시도 (kex_exchange 거부 대응)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 11:02:55 +09:00
0cda5756a8
Merge pull request 'fix(deploy): SSH 연결 재시도 로직 추가' ( #57 ) from hotfix/ssh-retry into develop
2026-03-18 09:59:51 +09:00
b41324aa54
fix(deploy): SSH 연결 재시도 로직 추가 (kex_exchange 거부 대응)
...
- 본 명령 실행 전 SSH 연결 테스트 (최대 3회, 10초 간격)
- ServerAliveInterval=15 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:59:35 +09:00
d4442c8470
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-18)' ( #55 ) from chore/release-prep-9 into develop
2026-03-18 09:55:35 +09:00
1c563d1835
docs: 릴리즈 노트 정리 (2026-03-18)
2026-03-18 09:55:24 +09:00
80ce47baa1
Merge pull request 'feat: 센서 그래프 개선 + 한국 선박 지도 강조/인터랙션' ( #54 ) from feature/sensor-chart-v2-korean-highlight into develop
2026-03-18 09:54:55 +09:00
98aafa558d
docs: 릴리즈 노트 업데이트
2026-03-18 09:54:37 +09:00
e765cc6636
feat: 센서 그래프 개선 + 한국 선박 지도 강조/인터랙션
...
- SensorChart: 지진 ScatterChart(진도별 색상/크기) + 기압 관측소별 개별 라인
- 한국 선박 현황 ON/OFF 토글 → 지도 강조 링/라벨 표시 (기본 ON)
- 우측 패널 한국 선박 목록: hover 시 지도 강조 링, 클릭 시 모달 호출
- ShipLayer: hoveredMmsi/focusMmsi props, 외부 모달 트리거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:54:17 +09:00
a58c78c91e
Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-18)' ( #52 ) from chore/release-prep-8 into develop
2026-03-18 09:37:05 +09:00
23511e1f22
docs: 릴리즈 노트 정리 (2026-03-18)
2026-03-18 09:36:51 +09:00
fae47df1fc
Merge pull request 'fix: S&P Global 사진 URL 목록 API 연동 + 로그인 DEMO 표기' ( #51 ) from fix/ship-image-urls into develop
2026-03-18 09:35:36 +09:00
0deb55b44a
docs: 릴리즈 노트 업데이트
2026-03-18 09:35:15 +09:00
1e8c0659e5
fix: S&P Global 사진 URL 목록 API 연동 + 로그인 DEMO 표기
...
- ShipLayer: IMO 기반 /signal-batch/api/v1/shipimg/{imo} API로 실제 이미지 목록 조회
- 각 이미지 path + _2.jpg(원본) 사용 (기존 잘못된 _1→_2→_3 번호 패턴 제거)
- IMO별 이미지 목록 캐시(spgImageCache) 적용
- LoginPage: KCG 로고 우측 하단에 DEMO 문구 오버레이
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:34:51 +09:00
0b0c8dc5e6
Merge pull request 'feat: 센서 그래프 실데이터 + 선박 모달 UI 개선 + KST/UTC 라디오' ( #50 ) from feature/sensor-chart-live into develop
2026-03-18 09:29:41 +09:00
a8f6bfe1db
docs: 릴리즈 노트 업데이트
2026-03-18 09:28:53 +09:00
6c54500c70
feat: 센서 그래프 실데이터 + 선박 모달 UI 개선 + KST/UTC 라디오
...
- SensorChart: 백엔드 실데이터(지진/기압) + 동적 x축 시간 + 히스토리 10M/30M/1H/3H/6H
- LiveControls: KST/UTC 토글 → 라디오 버튼 그룹
- ShipLayer: 모달 고정크기(300px), 드래그 가능, S&P Global 다중사진 슬라이드
- 선박 모달 CSS 통일 (태그 스타일, 2컬럼 그리드, 긴 값 단독행)
- 센서 API: hours→min 파라미터 (기본 2880=48h), 인증 예외 처리
- useIranData/useKoreaData: 센서 10분 polling + 선박 60분 초기/6분 incremental merge
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:23:45 +09:00
7fabe16f4f
Merge remote-tracking branch 'origin/main' into develop
2026-03-18 08:58:09 +09:00
c9f295288c
fix(deploy): SSH set -e 제거 + curl fallback ( #49 )
...
Deploy KCG / deploy (push) Successful in 1m14s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:45:33 +09:00
7b05598714
fix(deploy): SSH 디버그 + printf 키 저장 ( #48 )
...
Deploy KCG / deploy (push) Failing after 1m12s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:42:19 +09:00
6182a79ae4
fix(deploy): SSH 호스트 내부 IP 고정 (signal-batch 패턴) ( #47 )
...
Deploy KCG / deploy (push) Failing after 1m11s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:38:49 +09:00
5d01b0e6e5
fix(deploy): gateway 감지 ip → /proc/net/route ( #46 )
...
Deploy KCG / deploy (push) Failing after 1m15s
Co-authored-by: htlee <htlee@gcsc.co.kr>
Co-committed-by: htlee <htlee@gcsc.co.kr>
2026-03-18 08:35:17 +09:00