- countCache 기반 5초 주기 O(n) 전체 카운트 → countRegistry 기반 incremental delta 카운트
- 변경된 선박만 카운트 증감 (mergeFeatures, deleteFeature, clearDarkSignals)
- fullRecount는 필터 변경/통합모드 전환 시에만 사용
- processTimeoutsThrottled 분리: 타임아웃 체크만 담당 (5초 주기)
- 미사용 parseAvetdr 함수 제거, throttle 설정 정리
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
- Vite 마이그레이션, OpenLayers+Deck.gl 지도 연동
- STOMP WebSocket 선박 실시간 데이터 수신
- 선박 범례/필터/카운트, 다크시그널 처리
- Ctrl+Drag 박스선택, 우클릭 컨텍스트 메뉴
- 측정도구, 상세모달, 호버 툴팁
- darkSignalIds Set 패턴, INSHORE/OFFSHORE 타임아웃
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>