perf(frontend): 프로젝트 분석 페이지 성능 최적화
- 백엔드 집계 API(/api/analysis)를 연동하여 프론트엔드 데이터 처리 로직 제거 - 불필요해진 project-analysis-data.js 파일 삭제 - 페이지 로딩 및 데이터 분석 속도를 획기적으로 개선
This commit is contained in:
@@ -3,6 +3,7 @@ import { apiGet } from './api-helper.js';
|
||||
|
||||
/**
|
||||
* 분석 페이지에 필요한 모든 초기 데이터(마스터 데이터)를 병렬로 가져옵니다.
|
||||
* 이 데이터는 필터 옵션을 채우는 데 사용됩니다.
|
||||
* @returns {Promise<{workers: Array, projects: Array, tasks: Array}>}
|
||||
*/
|
||||
export async function getMasterData() {
|
||||
@@ -15,30 +16,22 @@ export async function getMasterData() {
|
||||
return { workers, projects, tasks };
|
||||
} catch (error) {
|
||||
console.error('마스터 데이터 로딩 실패:', error);
|
||||
// 하나라도 실패하면 페이지 기능에 문제가 생길 수 있으므로 에러를 던집니다.
|
||||
throw new Error('페이지 초기화에 필요한 데이터를 불러오는 데 실패했습니다.');
|
||||
throw new Error('필터링에 필요한 데이터를 불러오는 데 실패했습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 지정된 기간의 작업 보고서 데이터를 가져옵니다.
|
||||
* 백엔드에 집계 API가 있다면 그쪽을 사용하는 것이 더 효율적입니다.
|
||||
* (예: /api/analysis/reports?startDate=...&endDate=...)
|
||||
* 현재는 기존 방식을 유지합니다.
|
||||
* 지정된 기간의 모든 분석 데이터를 백엔드에서 직접 가져옵니다.
|
||||
* @param {string} startDate - 시작일 (YYYY-MM-DD)
|
||||
* @param {string} endDate - 종료일 (YYYY-MM-DD)
|
||||
* @returns {Promise<Array>}
|
||||
* @returns {Promise<object>} - 요약, 집계, 상세 데이터가 모두 포함된 분석 결과 객체
|
||||
*/
|
||||
export async function getWorkReports(startDate, endDate) {
|
||||
export async function getAnalysisReport(startDate, endDate) {
|
||||
try {
|
||||
// API 엔드포인트를 명확하게 수정합니다.
|
||||
// 기존: /workreports?start=...
|
||||
// 변경: /daily-work-reports/search?startDate=...&endDate=... (가정)
|
||||
// 우선 기존 URL 구조를 최대한 따르되, 좀 더 명시적인 경로로 변경 제안
|
||||
const reports = await apiGet(`/workreports/search?startDate=${startDate}&endDate=${endDate}`);
|
||||
return reports;
|
||||
const analysisData = await apiGet(`/analysis?startDate=${startDate}&endDate=${endDate}`);
|
||||
return analysisData;
|
||||
} catch (error) {
|
||||
console.error('작업 보고서 데이터 로딩 실패:', error);
|
||||
throw new Error(`작업 보고서 데이터를 불러오는 데 실패했습니다: ${error.message}`);
|
||||
console.error('분석 보고서 데이터 로딩 실패:', error);
|
||||
throw new Error(`분석 데이터를 불러오는 데 실패했습니다: ${error.message}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user