49 lines
2.5 KiB
Markdown
49 lines
2.5 KiB
Markdown
# 개발 진행 로그
|
|
|
|
## 📅 Recent Updates (2025-12-19)
|
|
|
|
### WorkAnalysis 리팩토링 완료
|
|
**내용**: 복잡한 통계 로직을 포함하던 `workAnalysisController.js`를 리팩토링함.
|
|
- **[NEW] Service Layer**: `services/workAnalysisService.js` 생성. 비즈니스 로직 이관.
|
|
- **[UPDATE] Model Layer**: Raw SQL 쿼리를 Controller에서 Model(`models/WorkAnalysis.js`)로 이동. `getProjectWorkTypeRawData` 메서드 추가.
|
|
- **[CLEANUP] Controller**: `getProjectWorkTypeAnalysis` 메서드가 Service를 호출하도록 단순화.
|
|
|
|
### 🐛 심각한 버그 수정 및 시스템 정상화 (2025-12-19)
|
|
**개요**: 로그인 500 에러 및 대시보드 데이터 미표시 문제 해결.
|
|
|
|
1. **DB 정상화 (Login 500 Fix)**
|
|
- **원인**: 초기화된 DB(Empty) 및 테이블명 대소문자 불일치(`Users` vs `users`).
|
|
- **조치**: `hyungi.sql` 복원 후, 컨벤션에 맞춰 테이블명 일괄 변경(`Users`→`users`, `Projects`→`projects`, `Workers`→`workers`, `Tasks`→`tasks`).
|
|
- **코드 수정**: `userModel.js`, `authController.js` 등 관련 코드의 테이블 참조 수정.
|
|
|
|
2. **프로젝트 조회 오류 수정 (Project API 500 Fix)**
|
|
- **원인**: 구버전 스키마 복원으로 인한 `projects` 테이블 컬럼 부족(`is_active`, `project_status`, `completed_date`).
|
|
- **조치**: 마이그레이션 실행하여 누락된 컬럼 추가.
|
|
|
|
3. **대시보드 작업자 미표시 수정**
|
|
- **원인 1 (Data)**: `workers` 테이블 내 `status` 값이 유효하지 않음(`..`). → `active`로 일괄 수정.
|
|
- **원인 2 (Logic)**: `INNER JOIN` 사용으로 통계가 없는 작업자 누락. → `LEFT JOIN`으로 쿼리 개선(`MonthlyStatusModel.js`).
|
|
|
|
4. **테스트 계정 생성**
|
|
- `tester` / `000000` 관리자(Leader) 계정 생성.
|
|
|
|
---
|
|
|
|
## 🛡보안 및 검토 리포트 (History)
|
|
|
|
### 2025-07-29 보안 취약점 분석
|
|
`api.hyungi.net` 백엔드 서버 취약점 점검 결과.
|
|
|
|
| 라이브러리 | 심각도 | 상태 | 조치사항 |
|
|
|---|---|---|---|
|
|
| `tar-fs` | **High** | 해결가능 | `npm audit fix` 권장 (완료됨) |
|
|
| `brace-expansion` | Low | 해결가능 | `npm audit fix` 권장 (완료됨) |
|
|
| `pm2` | Low | 미해결 | 업데이트 대기 필요 |
|
|
|
|
---
|
|
|
|
## 📋 향후 계획
|
|
1. **테스트 커버리지 확보**: 리팩토링된 Service Layer에 대한 Unit Test 보강.
|
|
2. **Knex 마이그레이션**: 남은 Raw SQL(Model Layer)을 Knex 쿼리빌더로 점진적 전환.
|
|
3. **API 문서화**: Swagger/OpenAPI 도입 검토.
|