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

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

[2026-03-02.2] 릴리즈

변경

  • SignalKindCode 매핑 규칙 개선 — aton/tug/tender→DEFAULT, shipName BUOY 검출 추가
  • 응답 경로 signal_kind_code 치환 1회화 — 캐시 저장 시 치환, 응답 시 DB/캐시 값 직접 사용
  • ChunkedTrackStreamingService 전수 최적화 — isQueryCancelled 버그수정, QueryContext 스레드 안전성, 쿼리 메트릭 DB 저장, 데드코드 400줄 삭제, VesselInfo N+1 해소

배포 전 확인

  • DDL create_query_metrics_table.sql 운영 DB 실행 완료
  • 배포 후 WebSocket 리플레이 정상 동작 확인 (단일/동시/취소 쿼리)
  • GET /api/monitoring/query-metrics 응답 확인
## [2026-03-02.2] 릴리즈 ### 변경 - SignalKindCode 매핑 규칙 개선 — aton/tug/tender→DEFAULT, shipName BUOY 검출 추가 - 응답 경로 signal_kind_code 치환 1회화 — 캐시 저장 시 치환, 응답 시 DB/캐시 값 직접 사용 - ChunkedTrackStreamingService 전수 최적화 — isQueryCancelled 버그수정, QueryContext 스레드 안전성, 쿼리 메트릭 DB 저장, 데드코드 400줄 삭제, VesselInfo N+1 해소 ## 배포 전 확인 - [x] DDL `create_query_metrics_table.sql` 운영 DB 실행 완료 - [ ] 배포 후 WebSocket 리플레이 정상 동작 확인 (단일/동시/취소 쿼리) - [ ] `GET /api/monitoring/query-metrics` 응답 확인
htlee added 7 commits 2026-03-02 15:39:31 +09:00
- 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>
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>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
claude-bot 이 변경사항을 승인하였습니다. 2026-03-02 15:40:24 +09:00
claude-bot left a comment
멤버

릴리즈 승인 (via /release skill)

릴리즈 승인 (via /release skill)
htlee merged commit 7a21d5b8b0 into main 2026-03-02 15:40:24 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 2명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

마감일이 설정되지 않았습니다.

Reference: gc/signal-batch#90
No description provided.