From 9ffaf35aebc4beda0db979b61bc93d72a9863e72 Mon Sep 17 00:00:00 2001 From: htlee Date: Mon, 9 Mar 2026 06:05:10 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EC=9A=B4=EC=98=81=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EB=A0=88=EB=B2=A8=20=EC=A0=95=EB=A6=AC=20+=20daily?= =?UTF-8?q?=20=ED=8C=8C=ED=8B=B0=EC=85=98=20=EC=98=81=EA=B5=AC=20=EB=B3=B4?= =?UTF-8?q?=EC=A1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- .../batch/reader/FiveMinTrackCache.java | 6 +++--- .../batch/reader/HourlyTrackCache.java | 6 +++--- .../batch/writer/CompositeTrackWriter.java | 2 +- src/main/resources/application-prod.yml | 19 +++++++------------ 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/java/gc/mda/signal_batch/batch/reader/FiveMinTrackCache.java b/src/main/java/gc/mda/signal_batch/batch/reader/FiveMinTrackCache.java index 4e4a420..630b1cb 100644 --- a/src/main/java/gc/mda/signal_batch/batch/reader/FiveMinTrackCache.java +++ b/src/main/java/gc/mda/signal_batch/batch/reader/FiveMinTrackCache.java @@ -60,7 +60,7 @@ public class FiveMinTrackCache { for (VesselTrack track : tracks) { put(track); } - log.info("[CACHE-MONITOR] L1.putAll: input={}, cacheBefore={}, cacheAfter={}, stats=[{}]", + log.debug("[CACHE-MONITOR] L1.putAll: input={}, cacheBefore={}, cacheAfter={}, stats=[{}]", tracks.size(), beforeSize, cache.estimatedSize(), getStats()); } @@ -89,7 +89,7 @@ public class FiveMinTrackCache { } int totalTracks = result.values().stream().mapToInt(List::size).sum(); - log.info("[CACHE-MONITOR] L1.getTracksInRange [{}, {}): mmsi={}, tracks={}, cacheTotal={}", + log.debug("[CACHE-MONITOR] L1.getTracksInRange [{}, {}): mmsi={}, tracks={}, cacheTotal={}", start, end, result.size(), totalTracks, cache.estimatedSize()); return result; } @@ -133,7 +133,7 @@ public class FiveMinTrackCache { } int totalTracks = result.values().stream().mapToInt(List::size).sum(); - log.info("[CACHE-MONITOR] L1.getTracksForVessels [{}, {}): requestedMmsi={}, lookups={}, hits={}, resultMmsi={}, tracks={}", + log.debug("[CACHE-MONITOR] L1.getTracksForVessels [{}, {}): requestedMmsi={}, lookups={}, hits={}, resultMmsi={}, tracks={}", start, end, mmsiKeys.size(), lookupCount, hitCount, result.size(), totalTracks); return result; } diff --git a/src/main/java/gc/mda/signal_batch/batch/reader/HourlyTrackCache.java b/src/main/java/gc/mda/signal_batch/batch/reader/HourlyTrackCache.java index 086d804..ffa0f57 100644 --- a/src/main/java/gc/mda/signal_batch/batch/reader/HourlyTrackCache.java +++ b/src/main/java/gc/mda/signal_batch/batch/reader/HourlyTrackCache.java @@ -64,7 +64,7 @@ public class HourlyTrackCache { for (VesselTrack track : tracks) { put(track); } - log.info("[CACHE-MONITOR] L2.putAll: input={}, cacheBefore={}, cacheAfter={}, stats=[{}]", + log.debug("[CACHE-MONITOR] L2.putAll: input={}, cacheBefore={}, cacheAfter={}, stats=[{}]", tracks.size(), beforeSize, cache.estimatedSize(), getStats()); } @@ -92,7 +92,7 @@ public class HourlyTrackCache { } int totalTracks = result.values().stream().mapToInt(List::size).sum(); - log.info("[CACHE-MONITOR] L2.getTracksInRange [{}, {}): mmsi={}, tracks={}, cacheTotal={}", + log.debug("[CACHE-MONITOR] L2.getTracksInRange [{}, {}): mmsi={}, tracks={}, cacheTotal={}", start, end, result.size(), totalTracks, cache.estimatedSize()); return result; } @@ -133,7 +133,7 @@ public class HourlyTrackCache { } int totalTracks = result.values().stream().mapToInt(List::size).sum(); - log.info("[CACHE-MONITOR] L2.getTracksForVessels [{}, {}): requestedMmsi={}, lookups={}, hits={}, resultMmsi={}, tracks={}", + log.debug("[CACHE-MONITOR] L2.getTracksForVessels [{}, {}): requestedMmsi={}, lookups={}, hits={}, resultMmsi={}, tracks={}", start, end, mmsiKeys.size(), lookupCount, hitCount, result.size(), totalTracks); return result; } diff --git a/src/main/java/gc/mda/signal_batch/batch/writer/CompositeTrackWriter.java b/src/main/java/gc/mda/signal_batch/batch/writer/CompositeTrackWriter.java index c8bb679..1efeca5 100644 --- a/src/main/java/gc/mda/signal_batch/batch/writer/CompositeTrackWriter.java +++ b/src/main/java/gc/mda/signal_batch/batch/writer/CompositeTrackWriter.java @@ -86,7 +86,7 @@ public class CompositeTrackWriter implements ItemWriter if (hourlyTrackCache != null) { long l2Before = hourlyTrackCache.size(); hourlyTrackCache.putAll(normalTracks); - log.info("[CACHE-MONITOR] CompositeTrackWriter → L2.putAll: tracks={}, L2 before={}, after={}", + log.debug("[CACHE-MONITOR] CompositeTrackWriter → L2.putAll: tracks={}, L2 before={}, after={}", normalTracks.size(), l2Before, hourlyTrackCache.size()); } } else if ("daily".equals(targetTable)) { diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 404108a..5bfc97c 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -87,19 +87,12 @@ spring: logging: level: root: INFO - gc.mda.signal_batch: DEBUG - gc.mda.signal_batch.global.util: INFO - gc.mda.signal_batch.global.websocket.service: INFO - gc.mda.signal_batch.batch.writer: INFO - gc.mda.signal_batch.batch.reader: INFO - gc.mda.signal_batch.batch.processor: INFO - gc.mda.signal_batch.domain: INFO - gc.mda.signal_batch.monitoring: DEBUG - gc.mda.signal_batch.monitoring.controller: INFO - org.springframework.batch: INFO + gc.mda.signal_batch: INFO + gc.mda.signal_batch.monitoring: INFO + org.springframework.batch: WARN org.springframework.jdbc: WARN org.postgresql: WARN - com.zaxxer.hikari: INFO + com.zaxxer.hikari: WARN # 개발 환경 배치 설정 (성능 최적화) vessel: # spring 하위가 아닌 최상위 레벨 @@ -267,8 +260,10 @@ vessel: # spring 하위가 아닌 최상위 레벨 retention-days: 60 # 구역별 선박 항적: 60일 t_grid_vessel_tracks: retention-days: 30 # 해구별 선박 항적: 30일 + t_vessel_tracks_daily: + retention-months: 0 # 일별 항적: 영구 보관 t_abnormal_tracks: - retention-months: 0 # 비정상 항적: 무한 보관 + retention-months: 0 # 비정상 항적: 영구 보관 # S&P AIS API 캐시 TTL (운영: 120분) app: