Files
TK-FB-Project/DEV_LOG.md
Hyungi Ahn 48fff7df64 Fix: Worker/Project status update and filtering issues
- Added cache invalidation for Workers and Projects
- Implemented server-side status filtering for Workers
- Fixed worker update query bug (removed non-existent join_date column)
- Updated daily-work-report UI to fetch only active workers
2026-01-06 15:50:40 +09:00

3.6 KiB

개발 진행 로그

📅 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 복원 후, 컨벤션에 맞춰 테이블명 일괄 변경(Usersusers, Projectsprojects, Workersworkers, Taskstasks).
    • 코드 수정: 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) 계정 생성.

🛠️ 작업자 및 프로젝트 관리 기능 개선 (2026-01-06)

개요: 작업자/프로젝트의 비활성화(퇴사/종료) 처리가 즉시 반영되지 않는 문제 및 로직 오류 수정.

  1. 캐시 무효화 및 필터링 적용 (Cache & Filtering)

    • 문제: 작업자/프로젝트 상태 변경 후에도 캐시가 남아있어 드롭다운 목록에서 사라지지 않음.
    • 해결:
      • WorkerController, ProjectController: 생성/수정/삭제 시 request 단위의 캐시 즉시 무효화 로직 추가.
      • WorkerController: 목록 조회 시 status 파라미터 지원 추가.
      • daily-work-report.js: 작업보고서 작성 시 active 상태인 작업자만 필터링하여 조회하도록 수정.
  2. 작업자 비활성화 오류 수정 (Bug Fix)

    • 원인: workerModel.update 쿼리에 DB에 존재하지 않는 join_date 컬럼을 업데이트하려는 시도가 있어 SQL 에러 발생.
    • 해결: workerModel.js에서 잘못된 컬럼(join_date) 참조 제거. (올바른 컬럼 hire_date는 유지)

🛡보안 및 검토 리포트 (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 도입 검토.