커밋 그래프

5 커밋

작성자 SHA1 메시지 날짜
c068f55077 feat: 배경지도 전환 및 테마 시스템 구현
- 배경지도 타입 전환 (일반/전자해도/야간)
- 테마 연동 색상 시스템 (선박 라벨, 속도벡터 등)
- mapStore에 subscribeWithSelector 적용
- 신호원 우선순위/항적 조회기간 상수 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 06:36:09 +09:00
8292251758 feat: TopBar 컴포넌트 및 추적 모드 기능 구현
[TopBar 구현]
- 좌표 표시 (마우스 위치 실시간 표시, 도분초/도 토글)
- 시간 표시 (UTC/KST 토글)
- 선박 검색 기능 (like 검색, 디바운싱)
- 지도/선박 모드 토글 버튼

[추적 모드 기능]
- PatrolShipSelector: 경비함정 선택 패널
  - 검색 기능 (함정명/ID like 검색)
  - 반경 설정 (10/25/50/100/200 NM)
  - 스크롤 가능한 함정 목록
- ShipContextMenu: 반경설정 서브메뉴 추가
  - 단일 경비함정 우클릭 시 반경 선택 가능
  - 화면 위치에 따른 서브메뉴 방향 자동 조정

[반경 필터링]
- 선박 렌더링: 반경 내 선박만 표시
- 범례 카운트 계산: 반경 내 선박 수 표시
- 검색 결과: 추적 모드 시 반경 내 선박만 검색
- Haversine 거리 계산 + Bounding Box 사전 필터링

[추적 선박 표시]
- ScatterplotLayer 3중 구조 (외곽링, 내부원, 중심점)
- 추적 중인 경비함정 위치에 시각적 마커 표시
2026-02-04 08:16:29 +09:00
ae48bca97a refactor: 카운트/필터 로직을 메인 프로젝트 렌더 사이클 구조로 전환
문제:
- 다크시그널 선박이 통합모드에서 렌더링 안 됨
  (통합모드 체크가 다크시그널 체크보다 먼저 실행)
- 카운트가 계속 증가 (cleanup과 카운트 계산의 동기화 불일치)

변경:
- applyFilterWithCache: 다크시그널 체크를 통합모드 체크보다 앞으로 이동
- shipStore: mutable Map/Set → immutable 패턴 전환 (featuresVersion/darkSignalVersion 제거)
- ShipBatchRenderer: calculateAndCleanupLiveShips 추가 (단일 패스 cleanup + 카운트)
- executeRender 내부에서 5초 쓰로틀 카운트 + filterHash 변경 즉시 재계산
- shipStore에서 updateCountsThrottled, recalculateCounts, calculateCounts 제거
- 모든 필터 토글에서 recalculateCounts() 호출 제거
- useShipLayer: features/darkSignalIds 참조 감시로 전환

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:40:20 +09:00
ce54d9d0db perf: Map/Set mutable update + 버전 카운터 패턴 적용
mergeFeatures, updateCountsThrottled, deleteFeatureById,
deleteFeaturesByIds, clearDarkSignals에서 new Map()/new Set()
전체 복사를 제거하고 기존 인스턴스를 직접 mutate.
Zustand 변경 감지는 featuresVersion/darkSignalVersion
카운터로 트리거.

5000척 기준 배치당 O(5000) Map 복사 → O(batch) 변경으로 개선.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:06:56 +09:00
f4f0cb274f dark 프로젝트 구현 현재 상태 스냅샷
- Vite 마이그레이션, OpenLayers+Deck.gl 지도 연동
- STOMP WebSocket 선박 실시간 데이터 수신
- 선박 범례/필터/카운트, 다크시그널 처리
- Ctrl+Drag 박스선택, 우클릭 컨텍스트 메뉴
- 측정도구, 상세모달, 호버 툴팁
- darkSignalIds Set 패턴, INSHORE/OFFSHORE 타임아웃

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:01:54 +09:00