release: 2026-03-02.2 (105건 커밋) #90

병합
htlee develop 에서 main 로 7 commits 를 머지했습니다 2026-03-02 15:40:24 +09:00

7 커밋

작성자 SHA1 메시지 날짜
69b8ce8adc docs: 릴리즈 노트 정리 (2026-03-02)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:39:18 +09:00
95b1ba6913 Merge pull request 'refactor(websocket): ChunkedTrackStreamingService 전수 최적화' (#89) from feature/websocket-replay-optimization into develop 2026-03-02 15:34:41 +09:00
242c2d13f5 docs: 릴리즈 노트 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:28:45 +09:00
076cb6f8fe refactor(websocket): ChunkedTrackStreamingService 전수 최적화 — 버그수정 + 메트릭 DB + 데드코드 제거
Phase A: 버그 수정
- isQueryCancelled: queryCancelFlags 전체 순회 → queryId 직접 조회 (O(n)→O(1))
  한 쿼리 취소 시 서버 전체 쿼리 조기 종료되던 치명적 버그 해결
- QueryContext 내부 클래스 추출: 싱글턴 인스턴스 변수 5개를 쿼리별 로컬로 전환
  동시 쿼리 간 상태 교차 오염 원천 차단
- 대기열 타임아웃: 하드코딩 120초 → ActiveQueryManager 설정값 사용

Phase B: 쿼리 메트릭 DB 저장
- QueryMetricsService: signal.t_query_metrics 비동기 INSERT
- QueryMetricsController: GET /api/monitoring/query-metrics, /stats
- streamChunkedTracks finally 블록에서 자동 저장 (QueryBenchmark 데이터 연동)

Phase C: N+1 해소 + 데드코드 제거
- VesselInfo 배치 프리로드: viewportVesselIds 수집 후 1회 배치 조회
- 미사용 코드 ~400줄 삭제: simplificationStrategy, executorService, processQueryInChunks,
  batchGetVesselInfo, processChunk, selectTableByTimeRange, groupRangesByDate 등

Phase D: 코드 품질
- WKTReader: 싱글턴 공유 → ThreadLocal (스레드 안전성)
- avgSpeed 계산: 4곳 중복 → calculateAvgSpeed() 헬퍼 추출

2,984줄 → 2,575줄 (409줄 삭감)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:10:12 +09:00
119e8e5238 Merge pull request 'refactor: SignalKindCode 매핑 규칙 개선 — shipName BUOY 검출 + 치환 1회화' (#88) from feature/signal-kind-code-refactor into develop 2026-03-02 13:45:19 +09:00
e0fc760754 docs: 릴리즈 노트 업데이트 2026-03-02 13:44:23 +09:00
5e035f0362 refactor: SignalKindCode 매핑 규칙 개선 — shipName BUOY 검출 + 치환 1회화 + 응답 경로 최적화
- SignalKindCode 매핑 변경: aton→DEFAULT, tug/tender→DEFAULT,
  Vessel+towing/dredging/diving→DEFAULT, Vessel+leisure→DEFAULT
- shipName 기반 BUOY 검출: '.' '_' 문자 2개 이상 → BUOY
- 캐시 저장 시 1회 치환, API 응답 시 DB/캐시 값 직접 사용
- 응답 경로 6곳 resolve() 재계산 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 13:42:36 +09:00