커밋 그래프

164 커밋

작성자 SHA1 메시지 날짜
9caac0a9bd docs: 릴리즈 노트 정리 (2026-03-18)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:56:42 +09:00
492e5a04c9 Merge pull request 'feat: 선박 그룹 관리 + 우클릭 컨텍스트 메뉴 확장' (#57) from feature/vessel-group-context-menu into develop 2026-03-18 13:55:59 +09:00
0d3d4c0ae6 docs: 릴리즈 노트 업데이트
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:47:51 +09:00
3524b8c634 chore: 팀 워크플로우 v1.6.1 동기화
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:46:05 +09:00
94b48945f0 feat(map): 모든 선박 우클릭 컨텍스트 메뉴 — 선명/MMSI 복사
기존 대상선박 전용 우클릭 메뉴를 모든 선박 아이콘으로 확장.
선명 복사, MMSI 복사 항목을 상단에 추가하고,
항적조회는 대상선박(isPermitted)에만 조건부 표시.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:45:52 +09:00
ed3aef8e2a feat(vesselSelect): 선박 그룹 저장/불러오기 + 컬럼 정렬 + 선택 초기화
다중 항적 조회 모달에서 반복 선택을 줄이기 위해 선박 그룹 관리 기능 추가.
계정별 localStorage 영속화(usePersistedState), 최대 10개 그룹, 동명 덮어쓰기.
그리드 헤더 클릭으로 6개 컬럼 asc/desc 정렬, 푸터에 선택 초기화 버튼 추가.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:45:35 +09:00
72491ef64c Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-10)' (#55) from release/2026-03-10 into develop 2026-03-10 14:44:50 +09:00
37ee016cb7 docs: 릴리즈 노트 정리 (2026-03-10) 2026-03-10 14:44:22 +09:00
6356d6cb2e Merge pull request 'feat(map): OSM 베이스맵 추가 + 3-way 라디오 그룹 전환' (#54) from feature/multi-track-select into develop 2026-03-10 14:41:42 +09:00
07ad74c56c docs: 릴리즈 노트 업데이트 2026-03-10 14:40:40 +09:00
b9097c91cf feat(map): OSM 베이스맵 추가 + 3-way 라디오 그룹 전환 2026-03-10 14:29:49 +09:00
75737c38cd Merge pull request 'chore: 팀 워크플로우 v1.6.1 동기화 + 관리 파일 .gitignore 전환' (#53) from feature/multi-track-select into develop 2026-03-08 13:24:11 +09:00
f1b0858edf docs: 릴리즈 노트 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:22:16 +09:00
118f13551f chore: 팀 워크플로우 v1.6.1 동기화 + 관리 파일 .gitignore 전환
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:19:56 +09:00
628d79f2b8 Merge pull request 'feat(vesselSelect): 다중 선박 항적 조회 + 경고 링 개선' (#51) from feature/multi-track-select into develop 2026-03-08 13:01:35 +09:00
baf827657e feat(vesselSelect): 다중 선박 항적 조회 + 경고 링 개선
- 대상 선박 멀티 선택 모달 (features/vesselSelect, widgets/vesselSelect)
  · 업종/상태 필터 분리 + 그룹별 전체 on/off
  · 드래그 선택 (클릭+드래그로 범위 체크/언체크)
  · 기간 프리셋 7/14/21/28일, 최대 조회 28일 제한(초과 시 자동 조정)
  · MAX_VESSEL_SELECT=20, MAX_QUERY_DAYS=28
- trackReplay 확장: beginMultiQuery, queryMultiTrack, 다중 CSV 내보내기
- GlobalTrackReplayPanel: 기간 편집/재조회, 선박 목록 on/off 토글
- 경고 브리딩 효과: filled circle → stroked ring
  · Globe: zoom-interpolated offset 기반 반경
  · Mercator: ScatterplotLayer → IconLayer + SVG ring (깜빡임 해결)
- hideLiveShips 조회 시 기본 체크
- Topbar "다중항적" 버튼 강조 스타일
- 공지사항 id:2 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:54:20 +09:00
81fb4a2bca feat(shipIcon): 선종별 SVG 아이콘 시스템 도입 + 대상 선박 브리딩 링
gc-wing-simple의 SVG 기반 선종별 아이콘 시스템을 도입하여 기타 AIS 선박을
8종 선종별 색상+형태(이동:화살표/정지:원형)로 구분하고, 대상 선박에는
legacy code 색상 + 브리딩 링 강조 효과를 적용한다.

- shipKind.ts: 선종별 SVG 생성기 + 아이콘 스펙 사전 생성
- Mercator: 기타 AIS 20px SVG IconLayer, 대상 선박 26px SVG IconLayer
- Globe: signalKindCode 기반 색상, 대상 선박 1.3x 크기
- 브리딩 rAF: 시안(선택)/주황(강조) 링, 2000ms 주기
- 범례: "기타 AIS(선종)" 7항목으로 변경
- shipIconCache.ts, SHIP_ICON_MAPPING 삭제

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:14:33 +09:00
5c5af7e856 Merge pull request 'chore: CLAUDE_BOT_TOKEN 갱신' (#50) from chore/bot-token-fix into develop 2026-03-06 08:04:01 +09:00
2827f7e47d chore: CLAUDE_BOT_TOKEN 갱신 2026-03-06 08:02:27 +09:00
cd30d6d78e Merge pull request 'feat(trackReplay): 항적 기간 조정/재조회 + CSV 내보내기' (#47) from feature/announcement-popup into develop
Reviewed-on: #47
2026-02-25 03:08:24 +09:00
85dc7146be feat(trackReplay): 항적 기간 조정/재조회 + CSV 내보내기
- 패널에 시작/종료 datetime-local 입력 + 재조회 버튼 추가
- TrackQueryContext에 legacy 메타데이터(업종/소유주/허가번호 등) 포함
- CSV 다운로드: points(포인트별 lon/lat/timestamp/speedKnots) + vessel(선박 메타)
- speed는 haversine 거리/시간 기반 계산값(knots)
- trackQueryService에 queryTrackByDateRange 추가
- 패널 체크박스 정리: 가상선박/반복 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 03:00:41 +09:00
28988941fc Merge pull request 'feat(announcement): 공지 팝업 + Ocean 수심 커스텀 + 선박명 가독성' (#45) from feature/announcement-popup into develop
Reviewed-on: #45
2026-02-21 00:23:48 +09:00
4f82f6eb64 fix(ocean): 기본값 전환 시 네이티브 색상 복원
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:22:35 +09:00
b6652815b3 Merge pull request 'feat(announcement): 공지 팝업 모듈 + Ocean 기본값 수정' (#43) from feature/announcement-popup into develop
Reviewed-on: #43
2026-02-21 00:13:20 +09:00
d7834fe1e9 fix: Ocean 수심 커스텀 복원 + 선박명 테두리 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:10:56 +09:00
3240f6d348 feat(announcement): 공지 팝업 모듈 + Ocean 기본값 수정
- features/announcement/ 자체 완결 블록 (타입, 상수, 훅, 모달 UI)
- useAnnouncementPopup: lastSeenAnnouncementId 기반 계정별 1회 표시
- AnnouncementModal: 업데이트 안내 (Ocean 맵/자유시점/선박사진)
- Ocean DEFAULT_OCEAN_MAP_SETTINGS: depthStops 빈 배열 (네이티브 색상 유지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:43:43 +09:00
cd9311944b Merge pull request 'feat(ocean-map): Ocean 전용 지도 모듈 추가' (#42) from feature/ocean-map-module into develop
Reviewed-on: #42
2026-02-20 23:16:47 +09:00
12fdae9a2e feat(ocean-map): Ocean 전용 지도 모듈 추가
MapTiler Ocean 완전 스타일 기반 별도 베이스맵 모드.
features/oceanMap/ 자체 완결 블록 — 기존 enhanced 코드 변경 없음.

- resolveOceanStyle: Ocean style.json fetch + 한국어 라벨
- useOceanMapSettings: 런타임 커스텀 (수심색상/등심선/hillshade/라벨)
- OceanMapSettingsPanel: 9개 섹션 설정 UI
- 사이드바 Ocean 토글 + 설정 패널 baseMap 분기
- resolveMapStyle dynamic import로 번들 분리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:14:48 +09:00
ebf25d9ee5 Merge pull request 'feat(map): 자유 시점 토글 추가 (모드별 독립 상태)' (#40) from feature/free-camera-toggle into develop
Reviewed-on: #40
2026-02-20 11:47:21 +09:00
7ae867fe35 feat(map): 자유 시점 토글 추가 (모드별 독립 상태)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:45:28 +09:00
51ba126086 Merge pull request 'feat(ship-image): 모달 개선 + 링 캐러셀 + 지도 클릭 자동 모달' (#38) from feature/ship-image-thumbnails into develop
Reviewed-on: #38
2026-02-20 10:29:18 +09:00
a511e797d3 feat(ship-image): 모달 고정 크기 + 링 캐러셀 + 지도 클릭 자동 모달 + shipPhotos 토글 제거 2026-02-20 10:27:55 +09:00
de0d74ce3f Merge pull request 'chore: 기타AIS 토글 기본값 on으로 변경' (#36) from feature/ship-image-thumbnails into develop
Reviewed-on: #36
2026-02-20 04:07:01 +09:00
93db39e0d5 chore: 기타AIS 토글 기본값 on으로 변경 2026-02-20 04:05:01 +09:00
03337fc99c Merge pull request 'feat(ship-image): 선박 이미지 썸네일 및 갤러리 기능' (#34) from feature/ship-image-thumbnails into develop
Reviewed-on: #34
2026-02-20 04:02:25 +09:00
d66d0f0c89 fix(map): Globe 사진 인디케이터 오프셋 제거
- circle-translate 제거하여 선박 아이콘과 동일 중심 위치에 표시
2026-02-20 04:00:45 +09:00
d5a8be3b96 fix(map): Globe 사진 인디케이터 네이티브 레이어 전환
- Globe Deck.gl ScatterplotLayer 아티팩트(파란 막대) 수정
- MapLibre 네이티브 circle 레이어로 사진 인디케이터 구현
2026-02-20 03:57:45 +09:00
e72e2f14f6 feat(ship-image): 선박 이미지 썸네일 및 갤러리 기능
- AIS 타겟에 shipImagePath/shipImageCount 필드 추가
- 선박 이미지 API 연동 (fetchShipImagesByImo)
- 지도 위 사진 인디케이터 (ScatterplotLayer)
- 호버 툴팁에 썸네일 표시
- 정보 패널 카드 갤러리 (스크롤+화살표)
- 고화질 이미지 모달 (initialIndex 지원)
- Vite 프록시 /shipimg 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 03:45:25 +09:00
71f235097c feat(api): signal-batch v2 API 마이그레이션 (#32) 2026-02-20 00:33:08 +09:00
1e742e5a3d Merge pull request 'fix(hook): commit-msg 정규식 통일 (template-common v1.2.0)' (#31) from fix/sync-commit-msg into develop 2026-02-18 21:17:32 +09:00
9437f5be3d fix(hook): commit-msg 정규식 통일 (template-common v1.2.0) 2026-02-18 21:16:43 +09:00
7cdc8bef2f Merge pull request 'fix(map): Globe 렌더링 안정화 및 툴팁 유지 개선' (#29) from feature/globe-rendering-optimization into develop
Reviewed-on: #29
2026-02-17 16:49:48 +09:00
59a5e6beac fix(map): 패널 선택 fly-to 즉시 반응 개선
- shipData를 ref로 관리하여 AIS poll마다 effect 재실행 방지
- isStyleLoaded 가드 제거 → try/catch로 즉시 실행
- duration 700→400ms로 단축
- selectedMmsi만 의존성으로 → 선택 시 1회만 fly-to 실행

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:47:38 +09:00
f9da13b694 fix(map): 패널 선택 시 fly-to 복원, 지도 클릭은 제외
- mapInitiatedSelectRef 도입: 지도 클릭 선택과 패널 선택을 구분
- 좌측 패널(선박 목록, 알람 목록) 선택 시 해당 위치로 fly-to
- 지도에서 직접 클릭/우클릭 선택 시에는 fly-to 비활성화
- onMapSelectMmsi 래퍼로 지도 내 선택 경로 통합 (Globe+Mercator)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:44:55 +09:00
7bca216c53 fix(map): Globe 렌더링 안정화 및 툴팁 유지 개선
- isStyleLoaded() 가드를 try/catch 패턴으로 교체 (AIS poll setData 중 렌더링 차단 방지)
- Globe 툴팁 buildTooltipRef 패턴 도입 (AIS poll 주기 변경 시 사라짐 방지)
- Globe 우클릭 컨텍스트 메뉴 isStyleLoaded 가드 제거
- 항적 가상 선박을 IconLayer에서 ScatterplotLayer(원형)로 변경
- useNativeMapLayers isStyleLoaded 가드 제거 (항적 레이어 셋업 스킵 방지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:38:51 +09:00
ccaf20804d Merge pull request 'feat(map): 오버레이 가시성 개선 + 경고 선박 강조' (#27) from feature/overlay-alarm-visibility into develop
Reviewed-on: #27
2026-02-17 11:01:56 +09:00
168bea0621 feat(map): 오버레이 가시성 개선 + 경고 선박 강조
Part A — 오버레이 라인 가시성:
- Globe/Mercator 쌍끌이·FC·선단 라인 굵기 ~2x 증가
- Globe 범위 원·선단 원 대시 패턴 추가
- Globe 오버레이 호버 시 브리딩(breathing) 맥동 rAF

Part B — 경고 선박 강조:
- DashboardPage → Map3D alarmMmsiMap 전달
- Globe: 경고 맥동 레이어(ships-globe-alarm-pulse) + 배지(ships-globe-alarm-badge)
- Mercator: Deck.gl ScatterplotLayer 맥동 + TextLayer 배지
- 경고 종류별 배지(이/수/환/휴/A), z-index 상향, 호버 스케일 확대
- 경고 필터 OFF 시 맥동/배지 자동 비표시

Part C — Mercator 선명 라벨:
- MapLibre 라벨 → Deck.gl TextLayer 교체 (z-order 안정)

Part D — 프로젝션 전환 안정화:
- Globe→Mercator 전환 시 Globe custom layer 맵에서 분리
- alarm rAF에 projectionBusyRef 가드 추가
- overlay.setProps() stale WebGL 자원 참조 방지

Part E — 김개발(DEV) 모드 더미 데이터:
- mockOverlayData.ts: 서해 12척 가상 선박 (5종 경고 시나리오)
- 김개발 로그인 시 자동 주입, 일반 계정 미노출

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 10:52:51 +09:00
383b41f49a fix(sidebar): 검색 복원, 경고 필터, 내부 스크롤 수정 (#25) 2026-02-17 08:12:14 +09:00
9048dfdfc6 Merge pull request 'feat: 모바일 반응형 UI (drawer, 아코디언, 범례)' (#22) from feature/mobile-responsive-ui into develop
Reviewed-on: #22
2026-02-17 07:14:45 +09:00
d9b8e9ca44 fix(topbar): 통계 토글 탭을 하단 우측으로 이동
- 통계 펼치기 버튼을 topbar 내부에서 하단 우측 탭으로 이동
- 통계 바를 absolute→flow 레이아웃으로 변경 (지도 줌 겹침 방지)
- 모바일 grid-rows를 auto로 변경하여 통계 바 높이 수용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 07:11:42 +09:00