## Backend Changes
- Create tasks table with work_type_id FK to work_types
- Add taskModel, taskController, taskRoutes for task CRUD
- Update tbmModel to support work_type_id and task_id
- Add migrations for tasks table and TBM integration
## Frontend Changes
- Create task management admin page (tasks.html, task-management.js)
- Update TBM modal to include work type (공정) and task (작업) selection
- Add cascading dropdown: work type → task selection
- Display work type and task info in TBM session cards
- Update sidebar navigation in all admin pages
## Database Schema
- tasks: task_id, work_type_id, task_name, description, is_active
- tbm_sessions: add work_type_id, task_id columns with FKs
- Foreign keys maintain referential integrity with work_types and tasks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
✨ 새로운 기능:
- 작업 분석 페이지 구현 (기간별, 프로젝트별, 작업자별, 오류별)
- 개별 분석 실행 버튼으로 API 부하 최적화
- 연차/휴무 집계 방식 개선 (주말 제외, 작업내용 통합)
- 프로젝트 관리 시스템 (활성화/비활성화)
- 작업자 관리 시스템 (CRUD 기능)
- 코드 관리 시스템 (작업유형, 작업상태, 오류유형)
🎨 UI/UX 개선:
- 기간별 작업 현황을 테이블 형태로 변경
- 작업자별 rowspan 그룹화로 가독성 향상
- 연차/휴무 프로젝트 하단 배치 및 시각적 구분
- 기간 확정 시스템으로 사용자 경험 개선
- 반응형 디자인 적용
🔧 기술적 개선:
- Rate Limiting 제거 (내부 시스템 최적화)
- 주말 연차/휴무 자동 제외 로직
- 작업공수 계산 정확도 향상
- 데이터베이스 마이그레이션 추가
- API 엔드포인트 확장 및 최적화
🐛 버그 수정:
- projectSelect 요소 참조 오류 해결
- 차트 높이 무한 증가 문제 해결
- 날짜 표시 형식 단순화
- 작업보고서 저장 validation 오류 수정
- 새로운 에러 처리 시스템 적용:
* asyncHandler로 비동기 함수 래핑
* ApiError 클래스로 유효성 검사 에러 처리
* handleDatabaseError로 DB 에러 표준화
* handleNotFoundError로 404 에러 표준화
- 새로운 응답 포맷터 적용:
* res.created() - 작업 생성 성공 응답
* res.list() - 작업 목록 조회 응답
* res.success() - 단일 작업 조회 응답
* res.updated() - 작업 수정 성공 응답
* res.deleted() - 작업 삭제 성공 응답
- 유효성 검사 개선:
* ID 파라미터 유효성 검사 추가
* NaN 체크로 잘못된 ID 요청 차단
- 함수별 개선사항:
* createTask: 생성 응답 포맷터 적용
* getAllTasks: 목록 응답 포맷터 적용
* getTaskById: ID 검증 및 404 처리 개선
* updateTask: ID 검증 및 수정 응답 포맷터
* removeTask: ID 검증 및 삭제 응답 포맷터