From 98502916de1e8a5f6a5d1d176470f3aba27e6518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A4=EC=A0=95=EB=AF=BC?= Date: Tue, 14 Apr 2026 22:17:51 +0900 Subject: [PATCH] Remove Realtime Database metrics for game list cache. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 경기 일정 캐시의 적중률(Hit/Miss)을 RTDB에 기록하던 로직을 제거 --- src/services/gameListService.ts | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/src/services/gameListService.ts b/src/services/gameListService.ts index b81b1da..9f65782 100644 --- a/src/services/gameListService.ts +++ b/src/services/gameListService.ts @@ -1,5 +1,3 @@ -import { ServerValue } from "firebase-admin/database"; -import { rtdb } from "../firebase.js"; import { fetchGameList, LEAGUE_CODES, @@ -27,25 +25,6 @@ function memGet(key: string): GameListResult | null { return e.data; } -function todayYmd(): string { - const n = new Date(); - return `${n.getFullYear()}${String(n.getMonth() + 1).padStart(2, "0")}${String(n.getDate()).padStart(2, "0")}`; -} - -/** - * 메모리 캐시 hit/miss 카운터를 RTDB에 기록한다. - * - * 경로: `/metrics/gameListCache/{YYYYMMDD}/{hit|miss}` — 일자별 버킷. - * 요청 지연을 막기 위해 await 하지 않고 fire-and-forget으로 처리하고, - * 오류는 삼킨다(메트릭 실패가 서비스 실패로 이어지면 안 됨). - */ -function recordCacheMetric(kind: "hit" | "miss"): void { - rtdb - .ref(`metrics/gameListCache/${todayYmd()}/${kind}`) - .set(ServerValue.increment(1)) - .catch(() => undefined); -} - function memSet(key: string, data: GameListResult): void { if (memCache.size >= MEM_MAX) { const oldest = memCache.keys().next().value; @@ -70,11 +49,7 @@ export async function getGameList( const key = `${dateStr}|${resolvedSeries ?? ""}|${resolvedLeague ?? ""}`; const hit = memGet(key); - if (hit) { - recordCacheMetric("hit"); - return hit; - } - recordCacheMetric("miss"); + if (hit) return hit; const result = await fetchGameList({ date,