선박 항적 실시간 수집 및 배치 집계 시스템 (Spring Boot + Spring Batch)
Go to file
htlee 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
.claude chore: settings.json에 CLAUDE_BOT_TOKEN 환경변수 추가 2026-03-01 23:09:35 +09:00
.gitea/workflows feat: React 19 SPA Dashboard Phase 1 + 안전 배포 시스템 2026-02-19 17:05:38 +09:00
.githooks chore: 팀 워크플로우 v1.2.0→v1.5.0 동기화 2026-03-01 22:53:57 +09:00
.mvn chore: 팀 워크플로우 v1.2.0 초기 구성 (java-maven) 2026-02-18 20:52:38 +09:00
deploy feat: React 19 SPA Dashboard Phase 1 + 안전 배포 시스템 2026-02-19 17:05:38 +09:00
docs docs: 릴리즈 노트 업데이트 2026-03-02 13:44:23 +09:00
frontend feat: DataPipeline 일별 차트 시각화 개선 — Stacked Bar + Duration Bar 2026-02-21 12:27:52 +09:00
scripts feat: React 19 SPA Dashboard Phase 1 + 안전 배포 시스템 2026-02-19 17:05:38 +09:00
sql refactor: SNP API 전환 및 레거시 코드 전면 정리 2026-02-19 09:59:49 +09:00
src refactor(websocket): ChunkedTrackStreamingService 전수 최적화 — 버그수정 + 메트릭 DB + 데드코드 제거 2026-03-02 15:10:12 +09:00
.editorconfig chore: 팀 워크플로우 v1.2.0 초기 구성 (java-maven) 2026-02-18 20:52:38 +09:00
.gitattributes feat: REST V2 캐시 우선 조회 + Semaphore 부하 제어 + 응답 포인트 상한 2026-02-11 06:43:02 +09:00
.gitignore feat: React 19 SPA Dashboard Phase 1 + 안전 배포 시스템 2026-02-19 17:05:38 +09:00
.sdkmanrc refactor: SNP API 전환 및 레거시 코드 전면 정리 2026-02-19 09:59:49 +09:00
CLAUDE.md chore: 팀 워크플로우 v1.2.0 초기 구성 (java-maven) 2026-02-18 20:52:38 +09:00
mvnw feat: REST V2 캐시 우선 조회 + Semaphore 부하 제어 + 응답 포인트 상한 2026-02-11 06:43:02 +09:00
mvnw.cmd Initial commit 2025-11-19 16:03:16 +09:00
pom.xml feat: React 19 SPA Dashboard Phase 1 + 안전 배포 시스템 2026-02-19 17:05:38 +09:00
run-on-query-server-dev.sh feat: 대기열 기반 쿼리 관리 및 타임아웃 최적화 (Phase 5) 2026-02-06 15:34:02 +09:00
vessel-batch-control.sh feat: 대기열 기반 쿼리 관리 및 타임아웃 최적화 (Phase 5) 2026-02-06 15:34:02 +09:00