백엔드:
- GET /dashboard/projects 엔드포인트 추가
- 프로젝트 목록 조회 API 구현
프론트엔드:
- parseMaterialInfo 결과를 useMemo로 캐싱
- parsedMaterialsMap으로 중복 계산 방지
- getParsedInfo() 함수로 캐시된 값 사용
- 성능 개선: 1315개 자재 × 6번 계산 → 1315개 자재 × 1번 계산
- 약 80% 계산 감소 (8000번 → 1500번)
효과:
- 페이지 로딩 속도 대폭 향상
- 메모리 사용량 감소
- 필터/정렬 기능 유지하면서 가벼워짐