6a597958e1
Merge pull request 'fix(metrics): REST API 경로 client_id 수집 누락 수정' ( #119 ) from fix/client-id-rest-api into develop
2026-03-27 08:06:20 +09:00
74aace919b
docs: 릴리즈 노트 업데이트
2026-03-27 08:05:47 +09:00
df957be2fe
fix(metrics): REST API 경로 client_id 수집 누락 수정
...
- JWT 쿠키 파싱을 WebSocketStompConfig.extractClientIdFromRequest() static 메서드로 추출
- GisControllerV2 → GisServiceV2 → enqueueRestMetric에 clientId 전달 추가
- WebSocket 경로는 이미 정상 (htlee@gcsc.co.kr 수집 확인)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 08:01:43 +09:00
da6db06dcc
docs: 릴리즈 노트 정리 (2026-03-27)
2026-03-27 07:16:56 +09:00
4d4ab5a6bc
Merge pull request 'fix(dashboard): Top 클라이언트 IP/ID 토글 및 메트릭 표시 오류 수정' ( #117 ) from fix/dashboard-top-client-display into develop
2026-03-27 07:13:59 +09:00
13c263e649
docs: 릴리즈 노트 업데이트
2026-03-27 07:12:50 +09:00
d19a33b233
fix(dashboard): Top 클라이언트 IP/ID 토글 및 메트릭 표시 오류 수정
...
- 토글 활성 상태 시각적 구분 강화 (bg-secondary + font-medium)
- IP 모드 "-" 표시 수정 — 백엔드 client 필드명 매핑 보정
- ID 데이터 없을 때 섹션 사라지는 대신 안내 메시지 표시
- 쿼리 이력(ApiMetrics)에 client_id 컬럼 추가
- history SQL에 client_id 컬럼 포함
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 07:04:36 +09:00
d6ab622480
docs: 릴리즈 노트 정리 (2026-03-27)
2026-03-27 06:38:22 +09:00
d31eeef193
Merge pull request 'feat: WebSocket 리플레이 캐시 통합 + 쿼리 메트릭 사용자 ID 수집' ( #115 ) from feature/ws-cache-integration-and-client-metrics into develop
2026-03-27 06:36:30 +09:00
296b89327b
docs: 릴리즈 노트 업데이트
2026-03-27 06:34:25 +09:00
3333b2cec1
feat(metrics): 쿼리 메트릭 사용자 ID 수집 + 대시보드 IP/ID 토글
...
GC_SESSION JWT 쿠키에서 인증된 사용자 email을 추출하여 쿼리 메트릭에 기록.
대시보드 Top 클라이언트를 IP 기준 또는 사용자 ID 기준으로 전환 가능.
백엔드:
- WebSocket 핸드셰이크에서 GC_SESSION 쿠키 JWT payload → email 추출
- QueryMetric에 clientId 필드 추가, t_query_metrics에 client_id 컬럼 자동 생성
- timeseries API에 groupBy=ip|id 파라미터 추가
프론트엔드:
- Dashboard Top 클라이언트 섹션에 IP/ID 세그먼트 토글 추가
- 토글 전환 시 즉시 재조회
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 06:27:43 +09:00
8a97321a90
feat(websocket): 리플레이 쿼리 L1/L2 캐시 통합 — DB 의존 제거
...
WebSocket 리플레이 쿼리가 캐시 범위 내 조회에도 100% DB 경로를 사용하던 문제 수정.
- HOURLY/FIVE_MINUTE 전략에 L1(FiveMinTrackCache)/L2(HourlyTrackCache) 캐시 직접 조회 적용
- currentHourStart 기준 L1/L2 자동 라우팅 (현재시간 정각 이후→L1, 이전→L2)
- 뷰포트 필터를 캐시 데이터에서 직접 수행 (경량 WKT 파싱, JTS 불필요)
- vessel info SQL 컬럼명 오류 수정 (ship_nm → name)
- QueryBenchmark에 cacheHourlyRanges/cacheFiveMinRanges 추가, determinePath 3레벨 캐시 반영
- collectViewportVesselIds에서 HOURLY/5MIN DB 쿼리 제거 (캐시에서 처리)
당일 3시간 쿼리: DB 100% → CACHE 100%, 14일 쿼리: CACHE 100% (L3 범위 내)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 06:27:22 +09:00
aae05be18f
docs: 릴리즈 노트 정리 (2026-03-19)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:48:01 +09:00
2dab7bf0dc
Merge pull request 'chore: AIS API 접속 계정 변경' ( #113 ) from feature/update-ais-api-credentials into develop
2026-03-19 07:47:38 +09:00
99b9391967
docs: 릴리즈 노트 업데이트
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:47:19 +09:00
971f7bae11
chore: AIS API 접속 계정 변경
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:46:56 +09:00
3b0c09575e
fix(ci): 배포 health check 대기 90초→180초 확장 — 기동 타임아웃 실패 대응
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 05:17:23 +09:00
3a89354e88
docs: 릴리즈 노트 정리 (2026-03-18)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:08:36 +09:00
31ca5b10c3
Merge pull request 'fix: AIS Import Job 스케줄 :15초→:45초 변경 — 빈 응답 방지' ( #111 ) from feature/fix-ais-import-timing into develop
2026-03-18 17:07:08 +09:00
0f2dae72ad
docs: 릴리즈 노트 업데이트
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:05:56 +09:00
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