From 1e5b6061db9d8937b7667db4ee46867bdccc4611 Mon Sep 17 00:00:00 2001 From: Jihwan Lee Date: Fri, 25 Jul 2025 14:31:27 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/metricsService.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/services/metricsService.js b/services/metricsService.js index 2a231ee..71986c8 100644 --- a/services/metricsService.js +++ b/services/metricsService.js @@ -60,13 +60,24 @@ async function computeMetrics(stockCode, dateStr) { const equityTTM = last.equity_ttm; const shareCount = last.istc_totqy; - if (!profit || !ttmRevenue || !shareCount) { - throw new Error("TTM 데이터가 부족하여 EPS/BPS/PSR 계산이 불가능합니다."); - } - - // EPS/BPS 보정 계산 - const eps = last.eps != null ? last.eps : profit / shareCount; - const bps = last.bps != null ? last.bps : last.equity / shareCount; + const isValidTTM = + profit != null && + ttmRevenue != null && + equityTTM != null && + shareCount != null; + + const eps = + isValidTTM && last.eps != null + ? last.eps + : isValidTTM + ? profit / shareCount + : null; + const bps = + isValidTTM && last.bps != null + ? last.bps + : isValidTTM + ? last.equity / shareCount + : null; // 주가 가져오기 const { price: stockPrice, date: priceDate } = await fetchStockPrice(