커밋 그래프

305 커밋

작성자 SHA1 메시지 날짜
07d47c999e Merge pull request 'release: 2026-03-24.3 (37건 커밋)' (#185) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m51s
2026-03-24 15:57:20 +09:00
686f259a72 Merge pull request 'feat: AI 분석 통계 서버사이드 전환 + 어구/선단 UI 개선' (#184) from feature/korea-server-analysis-integration into develop 2026-03-24 15:55:55 +09:00
433141a3e8 feat: AI 분석 통계 서버사이드 전환 + 어구/선단 UI 개선
- Backend: /api/vessel-analysis 응답에 stats 집계 필드 추가
- Backend: GroupPolygonService.getGearStats() 어구 SQL 집계
- Frontend: 클라이언트 사이드 stats/gearStats 계산 로직 완전 제거
- Frontend: 가상 선박 마커, 어구 겹침 팝업, 패널 아코디언
- Frontend: cnFishingSuspects에 모선 포함
- Python: vessel_store COG bearing 계산 (마지막 2점 기반)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:55:15 +09:00
1029e07432 Merge pull request 'release: 2026-03-24.4 (캐시 TTL 수정)' (#183) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m56s
2026-03-24 14:21:16 +09:00
f5ffb4c079 Merge pull request 'fix(backend): 그룹 폴리곤 캐시 TTL 5분 제한' (#182) from fix/group-polygon-cache-ttl into develop 2026-03-24 14:21:15 +09:00
205de674bb fix(backend): 그룹 폴리곤 캐시 TTL 5분 제한
- Caffeine 전역 TTL(2일) 대신 서비스 내 수동 5분 TTL 체크
- 5분마다 DB에서 최신 스냅샷 재조회 보장
2026-03-24 14:20:53 +09:00
89786f1ec3 Merge pull request 'release: 2026-03-24.3 (어구그룹 탐지 수정)' (#181) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m48s
2026-03-24 14:18:24 +09:00
7d9cfe4456 Merge pull request 'fix(prediction): 어구그룹 탐지 — 전체 AIS 선박 대상으로 확장' (#180) from fix/gear-group-detection into develop 2026-03-24 14:18:13 +09:00
4c22d5f1f9 fix(prediction): 어구그룹 탐지 — 전체 AIS 선박 대상으로 확장
- detect_gear_groups: vessel_dfs(분류 대상만) → vessel_store.get_all_latest_positions()(전체 14K선박)
- build_all_group_snapshots: 동일하게 all_positions 기반으로 전환
- vessel_store: get_all_latest_positions() 메서드 추가
- 결과: 0 gear groups → 210 gear groups (GEAR_IN_ZONE 57, GEAR_OUT_ZONE 45)
2026-03-24 14:17:44 +09:00
03747d3c63 Merge pull request 'release: 2026-03-24.2 (폴리곤 서버사이드 이관)' (#179) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m55s
2026-03-24 14:09:37 +09:00
bbe8bf3570 Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-24.2)' (#178) from release/2026-03-24.2 into develop 2026-03-24 14:09:20 +09:00
f5654477b2 docs: 릴리즈 노트 정리 (2026-03-24.2) 2026-03-24 14:09:03 +09:00
020cc12197 Merge pull request 'feat: 선단/어구그룹 폴리곤 서버사이드 이관 + 히스토리 추적' (#177) from feature/server-side-polygons into develop 2026-03-24 14:08:37 +09:00
f24eedbd9e docs: 릴리즈 노트 업데이트 2026-03-24 14:08:07 +09:00
00067fa165 fix: 불법어선 탭 복원 (임시 숨김 해제) 2026-03-24 14:05:50 +09:00
9cad89113d feat(frontend): FleetClusterLayer 서버사이드 폴리곤 전환
- vesselAnalysis.ts: GroupPolygonDto 타입 + fetchGroupPolygons/Detail/History
- useGroupPolygons.ts: 5분 폴링 훅 (fleetGroups/gearInZone/gearOutZone)
- FleetClusterLayer: 클라이언트 convexHull/padPolygon 제거 → API GeoJSON 렌더링
- KoreaDashboard/KoreaMap: groupPolygons 훅 연결 + props 전달
2026-03-24 13:42:14 +09:00
b0fafca8c9 feat(backend): 그룹 폴리곤 API — 목록/상세/히스토리 엔드포인트
- GroupPolygonController: GET /api/vessel-analysis/groups (목록, 상세, 히스토리)
- GroupPolygonService: JdbcTemplate + ST_AsGeoJSON + Caffeine 5분 캐시
- GroupPolygonDto: GeoJSON polygon + members JSONB 응답 구조
- CacheConfig: GROUP_POLYGONS 캐시 키 추가
2026-03-24 13:32:36 +09:00
2441e3068a feat(prediction): 선단/어구그룹 폴리곤 서버사이드 생성 + PostGIS 저장
- DB migration 009: group_polygon_snapshots 테이블 (PostGIS geometry)
- polygon_builder.py: Shapely 기반 convex hull + buffer 폴리곤 생성
- scheduler.py: 5분 주기 분석 사이클에 폴리곤 생성 Step 4.5 통합
- fleet_tracker.py: get_company_vessels() 메서드 추가
- kcgdb.py: save_group_snapshots(), cleanup_group_snapshots() 추가
- requirements.txt: shapely>=2.0 추가
2026-03-24 13:30:31 +09:00
5384092b21 Merge pull request 'release: 2026-03-24.1 (5건 커밋)' (#176) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 2m0s
2026-03-24 10:18:04 +09:00
053ab25ae7 Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-24)' (#175) from release/2026-03-24.1 into develop 2026-03-24 10:16:57 +09:00
360ca0e382 docs: 릴리즈 노트 정리 (2026-03-24) 2026-03-24 10:16:34 +09:00
6765c0bc5f Merge pull request 'feat: 웹폰트 내장 + 이란 시설물 색상/가독성 개선' (#174) from feature/embed-fonts into develop 2026-03-24 10:13:59 +09:00
72291b2060 docs: 릴리즈 노트 업데이트 2026-03-24 10:13:23 +09:00
3f2052a46e feat: 웹폰트 내장 + 이란 시설물 색상/가독성 개선
- @fontsource-variable Inter, Noto Sans KR, Fira Code 자체 호스팅
- 전체 font-family 통일 (CSS, deck.gl, 인라인 스타일)
- 이란 시설물 색상 사막 대비 고채도 팔레트로 교체
- 이란 라벨 fontWeight 600→700, alpha 200→255
- 접힘 패널 상하 패딩 균일화
2026-03-24 10:11:59 +09:00
a404d81173 Merge pull request 'release: 2026-03-24.2' (#173) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m51s
2026-03-24 09:37:13 +09:00
ea739ab03a Merge pull request 'style: 폰트 외곽 테두리 축소 (outlineWidth 8→3)' (#172) from fix/outline-width-thin into develop 2026-03-24 09:36:37 +09:00
7ce71209cc style: 폰트 외곽 테두리 최소 두께로 축소 (outlineWidth 8→3) 2026-03-24 09:36:22 +09:00
90d1fc249d Merge pull request 'release: 2026-03-24.1 (불법어선 탭 숨김)' (#171) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 2m4s
2026-03-24 09:34:33 +09:00
4b165afcb8 Merge pull request 'fix: 불법어선 탭 임시 숨김' (#170) from fix/hide-illegal-fishing-tab into develop 2026-03-24 09:34:23 +09:00
c9d504a28f fix: 불법어선 탭 임시 숨김 (준비 중) 2026-03-24 09:34:09 +09:00
a3a933f096 Merge pull request 'release: 2026-03-24 (14건 커밋)' (#169) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 2m14s
2026-03-24 09:29:49 +09:00
684c74b6eb Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-24)' (#168) from release/2026-03-24 into develop 2026-03-24 09:29:24 +09:00
911a7473be docs: 릴리즈 노트 정리 (2026-03-24) 2026-03-24 09:29:02 +09:00
872cd82cc0 Merge pull request 'feat: LayerPanel 트리 + 이란 리플레이 실데이터 + 글꼴 커스텀' (#167) from feat/iran-replay-realdata into develop 2026-03-24 09:28:43 +09:00
6c91655dfb docs: 릴리즈 노트 업데이트 2026-03-24 09:28:08 +09:00
44aa449b03 feat: 지도 글꼴 크기 커스텀 시스템 (4개 그룹 슬라이더)
- FontScaleContext + FontScalePanel: 시설/선박/분석/지역 4그룹 × 0.5~2.0 범위
- LAYERS 패널 하단 슬라이더 UI, localStorage 영속화
- Korea static 14개 + Iran 4개 + 분석 3개 + KoreaMap 5개 TextLayer 적용
- MapLibre 선박 라벨/국가명 실시간 반영
- 모든 useMemo deps + updateTriggers에 fontScale 포함
2026-03-24 09:27:11 +09:00
6d4ac4d3fe feat(frontend): 이란 리플레이 실데이터 전환 + 피격선박 이벤트 통합
- GeoEvent.type에 'sea_attack' 추가 + SEA ATK 배지 (#0ea5e9)
- damagedShips → GeoEvent 변환, mergedEvents에 합류
- 더미↔API 토글 UI (ReplayControls 배속 우측)
- useIranData: dataSource 분기 (dummy=sampleData, api=Backend DB)
- API 모드: events/aircraft/osint 시점 범위 조회 (3월1일~오늘)
- 중복 방지: API 모드에서 damageEvents 프론트 병합 건너뜀
- fetchAircraftByRange, fetchOsintByRange, fetchEventsByRange 서비스 함수
2026-03-24 07:52:22 +09:00
9e1b3730ff feat(backend): 이란 리플레이 시점 조회 API + Events CRUD
- Aircraft/OSINT Controller: from/to Instant 파라미터 추가 (기존 캐시 조회와 공존)
- AircraftService.getByDateRange(): DB에서 icao24별 최신 위치 조회
- OsintService.getByDateRange(): 날짜 범위 OSINT 조회
- Event 패키지 신규: Entity, Dto, Repository, Service, Controller
  - GET /api/events?from=&to= (인증 예외)
  - POST /api/events/import (벌크 import)
- AuthFilter: /api/events 인증 예외 추가
2026-03-24 07:52:06 +09:00
Nan Kyung Lee
81bced4367 feat(iran): S&P Global Marine Risk Note 반영 — 이란 상선공격 27척 피격 데이터
- S&P Global Market Intelligence (2026-03-19) 보고서 기반
- 이란 상선 공격 총 30건 중 식별 가능한 27척 데이터 추가
- 선박별: IMO, 국적, 유형, 피격 일시, 위치, 피해 정도
- 유형별: 탱커 52%, 벌크선 21%, 컨테이너 17%, 예인선 7%
- 해역별: UAE 48%, 오만 28%, 쿠웨이트/카타르 등
- 기존 리플레이 이벤트 ID와 연동

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 06:34:51 +09:00
dc8a30a58b feat: LayerPanel 공통 트리 구조 + SVG 아이콘 전수 전환
- LayerTreeNode 공통 인터페이스 + LayerTreeRenderer 재귀 컴포넌트
- 한국/이란 양쪽 트리 데이터 정의 + batchToggle 캐스케이드
- 위험시설/해외시설 emoji→SVG IconLayer 전환 (12 SVG 함수, 3 IconLayer)
- 부모 토글→하위 전체 ON/OFF, 카운트 합산 동기화
- 대시보드 탭 localStorage 영속화
2026-03-24 06:34:42 +09:00
ed77005619 Merge pull request 'release: 2026-03-23.6 (5건 커밋)' (#166) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 2m22s
2026-03-23 15:30:50 +09:00
13bdebb924 Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-23.6)' (#165) from release/2026-03-23.6 into develop 2026-03-23 15:30:16 +09:00
4a366b320a docs: 릴리즈 노트 정리 (2026-03-23.6) 2026-03-23 15:30:02 +09:00
faf43fc7db Merge pull request 'fix: LIVE 모드 렌더링 최적화 + 특정어업수역 폴리곤 수정' (#164) from fix/korea-rendering-perf into develop 2026-03-23 15:28:31 +09:00
786092edc1 docs: 릴리즈 노트 업데이트 2026-03-23 15:27:51 +09:00
e2b531d9c5 fix: LIVE 모드 렌더링 최적화 + 특정어업수역 폴리곤 수정
- useMonitor 1초 setInterval 제거 (LIVE 60배 과잉 재계산 해소)
- useKoreaFilters currentTime 의존성 제거 (5분 polling 시에만 재계산)
- useKoreaData aircraft/satellite LIVE/REPLAY 분리
- 특정어업수역 실제 폴리곤 좌표 적용 (bbox→원본 GeoJSON 변환)
- FishingZoneLayer zone 속성 매칭 수정
- 선박/분석 라벨 폰트 크기 80% 축소
2026-03-23 15:26:41 +09:00
bc355ff521 Merge pull request 'release: 2026-03-23.5 (2건 커밋)' (#163) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 2m2s
2026-03-23 14:52:26 +09:00
66f792724b docs: 릴리즈 노트 정리 (2026-03-23.5) (#162) 2026-03-23 14:52:11 +09:00
498c198336 feat: 이란 시설 deck.gl SVG 전환 + 아이콘 품질 통합 + AI 챗 (#161) 2026-03-23 14:51:14 +09:00
a1ba74697a Merge pull request 'release: 2026-03-23.4 (2건 커밋)' (#160) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m50s
2026-03-23 13:20:00 +09:00