5d537a9c8a
fix: AIS Import Job 스케줄 :15초→:45초 변경 — 빈 응답 방지
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:05:24 +09:00
5a8159b2cf
docs: 릴리즈 노트 정리 (2026-03-17)
2026-03-17 10:02:15 +09:00
0f14991345
feat: recent-positions-detail API + AIS WebClient 버퍼 확장 ( #109 )
2026-03-17 10:01:53 +09:00
6751c84a0b
docs: 릴리즈 노트 정리 (2026-03-17)
2026-03-17 09:29:36 +09:00
7d320b24a8
fix: AIS API 계정 롤백 — 신규 계정 응답 없음 ( #107 )
2026-03-17 09:29:18 +09:00
d023626eb0
docs: 릴리즈 노트 정리 (2026-03-17)
2026-03-17 08:41:37 +09:00
27515e6452
chore: prod AIS API 접속 계정 변경 ( #105 )
2026-03-17 08:41:16 +09:00
345b9c8051
docs: 릴리즈 노트 정리 (2026-03-13)
2026-03-13 10:19:41 +09:00
f405149340
Merge pull request 'feat: 다중구역/STS API 최적화 + ChnPrmShip 전용 필터' ( #103 ) from feature/multi-zone-optimization into develop
2026-03-13 10:18:06 +09:00
60131481f3
docs: 릴리즈 노트 업데이트
2026-03-13 10:13:05 +09:00
c58aaca2ad
feat: 다중구역/STS API 최적화 + ChnPrmShip 전용 필터
...
- AreaSearch/VesselContact 동시성·메모리 관리 통합 (ActiveQueryManager + MemoryBudget)
- 순차 통과 SQL 동적 N-구역(2~10) 확장
- 성능 최적화: ArrayList 사전 할당, Coordinate 재사용, equirectangular 근사
- 3개 API에 chnPrmShipOnly 파라미터 추가 (~1,400 MMSI 필터링)
- 대시보드 DataPipeline 차트 개선
2026-03-13 10:12:22 +09:00
29566facb3
docs: 릴리즈 노트 정리 (2026-03-10)
2026-03-10 11:19:10 +09:00
3d1f9631eb
Merge pull request 'feat: 쿼리 메트릭 수집 확장 + 대시보드 성능 차트 추가' ( #101 ) from feature/dashboard-metrics-charts into develop
2026-03-10 11:17:33 +09:00
bfaf190b8c
docs: 릴리즈 노트 업데이트
2026-03-10 11:16:45 +09:00
7852f840e4
feat: 쿼리 메트릭 수집 확장 + 대시보드 성능 차트 추가
...
- client IP 수집 (REST: X-Forwarded-For 체인, WS: 세션 속성)
- 응답 크기 추정 (uniqueVessels*200 + points*40)
- timeseries API (/api/monitoring/query-metrics/timeseries)
- Dashboard 쿼리 성능 차트 5종 (응답시간, 볼륨, 캐시경로, 응답크기, Top 클라이언트)
2026-03-10 11:15:00 +09:00
02cc4a95b4
docs: 릴리즈 노트 정리 (2026-03-10)
2026-03-10 08:56:57 +09:00
b578879c6a
Merge pull request 'feat: API/WS 쿼리 메트릭 이력 조회 기능 구현' ( #99 ) from feature/query-metrics-history into develop
2026-03-10 08:49:37 +09:00
1a0d52911f
docs: 릴리즈 노트 업데이트
2026-03-10 08:46:03 +09:00
a0f24d5757
feat: API/WS 쿼리 메트릭 이력 조회 기능 구현
...
- QueryMetricsBufferService: ConcurrentLinkedQueue + 10초 batch flush
- GisServiceV2: REST API 메트릭 수집 추가
- ChunkedTrackStreamingService: saveAsync → buffer.enqueue 전환
- QueryMetricsController: /history (페이지네이션+필터), /summary (P95 포함)
- ApiMetrics.tsx: 요약카드 + 버튼그룹 필터 + 서버사이드 DataTable + 30s 폴링
- DataTable: server-side pagination props 확장 (하위 호환)
2026-03-10 08:41:56 +09:00
b16ceddf10
docs: 릴리즈 노트 정리 (2026-03-09)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:26:12 +09:00
171b35042b
Merge pull request 'fix: queryWithCache 단일 소스 응답 소실 버그 수정' ( #97 ) from fix/queryWithCache-clear-bug into develop
2026-03-09 11:22:50 +09:00
2d525ab75a
docs: 릴리즈 노트 업데이트
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:20:49 +09:00
104f65ad06
fix: queryWithCache 단일 소스 응답 소실 버그 수정
...
mergeTracksByVessel()이 입력 리스트를 그대로 반환할 때 allTracks.clear()가 반환값까지 비우는 문제
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:18:36 +09:00
0a115e4981
docs: 릴리즈 노트 정리 (2026-03-09)
2026-03-09 06:48:51 +09:00
5cf528fa72
Merge pull request 'chore: 운영 로그 레벨 정리 + daily 파티션 영구 보존' ( #95 ) from feature/logging-and-partition-tuning into develop
2026-03-09 06:46:46 +09:00
d5ba32b308
docs: 릴리즈 노트 업데이트
2026-03-09 06:46:00 +09:00
9ffaf35aeb
chore: 운영 로그 레벨 정리 + daily 파티션 영구 보존
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 06:05:10 +09:00
fab931c128
docs: 릴리즈 노트 정리 (2026-03-08)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:32:09 +09:00
66707e93cb
Merge pull request 'feat: L3 Daily 캐시 DP 사전 간소화 + 14일 확대' ( #93 ) from feature/cache-dp-simplification into develop
2026-03-08 09:30:20 +09:00
f628d381bb
docs: 릴리즈 노트 업데이트
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:29:26 +09:00
0a0109fa7e
feat: L3 Daily 캐시 DP 사전 간소화 + 14일 확대
...
- CacheTrackSimplifier: simplifyDpOnly() (DP-only 간소화), recalculateSpeeds() (Haversine 속도 재계산) 추가
- DailyTrackCacheManager: loadDay() 시 DP 사전 간소화 적용 (tolerance=0.001, ~100m)
- Daily 캐시 retention 7→14일, maxMemory 6→10GB
- Query/Batch DataSource: work_mem 256MB, synchronous_commit off 세션 튜닝
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:21:00 +09:00
c3a2ac3dea
chore: 팀 워크플로우 v1.6.1 동기화
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:20:41 +09:00
ff6b8e6073
chore: CLAUDE_BOT_TOKEN 갱신
2026-03-06 08:00:11 +09:00
cb41337e22
docs: 릴리즈 노트 정리 (2026-03-02)
2026-03-02 16:48:06 +09:00
2436751434
Merge pull request 'fix(websocket): cancelQuery idempotent 처리 — 완료된 쿼리 취소 시 에러 대신 정상 응답' ( #91 ) from feature/fix-cancel-query-and-quality into develop
2026-03-02 16:46:02 +09:00
bfed21dcb4
docs: 릴리즈 노트 업데이트
2026-03-02 16:44:46 +09:00
4fbf130326
fix(websocket): cancelQuery idempotent 처리 — 완료된 쿼리 취소 시 에러 대신 정상 응답
...
- parseTimestamp 실패 로깅 추가 (AreaSearchService)
- isNightTimeContact 야간 판정 로직 단순화 (VesselContactService)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 16:44:06 +09:00
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
007af70166
docs: 릴리즈 노트 정리 (2026-03-02)
2026-03-02 00:20:41 +09:00
047117033b
Merge pull request 'feat: 캐시 O(1) 조회 + 메모리 예산 관리 + L2 블록 간소화 포팅' ( #86 ) from feature/perf-cache-optimization into develop
2026-03-02 00:13:55 +09:00
b95e0f1d1c
docs: 릴리즈 노트 업데이트
2026-03-02 00:12:41 +09:00
322b04b309
feat: 캐시 O(1) 조회 + 메모리 예산 관리 + L2 블록 간소화 포팅
...
Phase 1: L1/L2/L3 캐시 키 기반 직접 O(1) 조회 (전체 스캔 대체)
Phase 2: 64GB JVM 메모리 예산 논리적 파티셔닝 (캐시 35GB/쿼리 20GB)
Phase 3: L2 HourlyTrackCache 6시간 경과 엔트리 Nth-point 간소화
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 00:07:31 +09:00
5d1db92857
Merge pull request 'chore: settings.json에 CLAUDE_BOT_TOKEN 환경변수 추가' ( #85 ) from feature/dashboard-phase-1 into develop
2026-03-01 23:12:39 +09:00
770207ee6c
docs: 릴리즈 노트 업데이트
2026-03-01 23:11:06 +09:00