From 187c3fec07b9a2f2b9bc4337bb3a67e10b7e0160 Mon Sep 17 00:00:00 2001 From: hyungi Date: Mon, 28 Jul 2025 14:43:22 +0900 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EB=B6=84=EC=84=9D=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 600줄에 달하는 project-analysis.js를 API, Data, UI, Controller 네 개의 모듈로 분리 - 복잡한 데이터 처리 로직과 UI 렌더링 로직을 분리하여 유지보수성 극대화 - 전역 상태를 최소화하고 데이터 흐름을 명확하게 개선 --- api.hyungi.net/models/dailyWorkReportModel.js | 2 +- web-ui/js/daily-report-viewer.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/api.hyungi.net/models/dailyWorkReportModel.js b/api.hyungi.net/models/dailyWorkReportModel.js index f22fe05..0ac8159 100644 --- a/api.hyungi.net/models/dailyWorkReportModel.js +++ b/api.hyungi.net/models/dailyWorkReportModel.js @@ -761,7 +761,7 @@ const getStatistics = async (start_date, end_date) => { WHERE report_date BETWEEN ? AND ? `; const [overallRows] = await db.query(overallSql, [start_date, end_date]); - + const dailyStatsSql = ` SELECT report_date, diff --git a/web-ui/js/daily-report-viewer.js b/web-ui/js/daily-report-viewer.js index c201d3e..6710b93 100644 --- a/web-ui/js/daily-report-viewer.js +++ b/web-ui/js/daily-report-viewer.js @@ -14,12 +14,12 @@ let currentProcessedData = null; async function searchReports() { const dateInput = document.getElementById('reportDate'); const selectedDate = dateInput.value; - - if (!selectedDate) { + + if (!selectedDate) { showError('날짜를 선택해주세요.'); - return; - } - + return; + } + showLoading(true); currentProcessedData = null; // 새 검색이 시작되면 이전 데이터 초기화 @@ -27,11 +27,11 @@ async function searchReports() { const rawData = await fetchReportData(selectedDate); currentProcessedData = processReportData(rawData, selectedDate); renderReport(currentProcessedData); - } catch (error) { + } catch (error) { showError(error.message); renderReport(null); // 에러 발생 시 데이터 없는 화면 표시 - } finally { - showLoading(false); + } finally { + showLoading(false); } } @@ -68,7 +68,7 @@ function initializePage() { setTimeout(() => window.location.href = '/index.html', 2000); return; } - + setupEventListeners(); // 페이지 로드 시 오늘 날짜로 자동 검색