Hyungi Ahn 146854e8fe refactor: Phase 3.7 - MonthlyStatus 컨트롤러 개선
주요 변경사항:

1. controllers/monthlyStatusController.js 완전 재작성 (202 → 232 lines)
   * 클래스 기반 → 함수 기반으로 변경:
     - static 메서드 → 독립 함수
     - 모듈 export 방식 변경

   * console.log/error → logger 교체:
     - logger.info: 요청/성공 로깅
     - logger.warn: 경고 로깅
     - logger.error: 실패 로깅

   * try-catch → asyncHandler 사용:
     - 에러 처리 자동화
     - 일관된 에러 응답

   * 커스텀 에러 클래스 적용:
     - ValidationError: 필수 필드/범위 검증
     - ForbiddenError: 관리자 권한 체크
     - DatabaseError: DB 오류

   * 4개 함수 개선:
     - getMonthlyCalendarData: 월별 캘린더 데이터
     - getDailyWorkerDetails: 일별 작업자 상세
     - recalculateMonth: 월별 집계 재계산
     - getStatusInfo: 집계 테이블 상태

   * 상세한 로깅 추가:
     - 요청 파라미터 추적
     - 조회 결과 통계 (일수, 작업자 수, 총 근무시간)
     - 관리자 작업 추적 (요청자 username)

기술적 개선사항:
- 클래스 → 함수: 테스트 및 재사용 용이
- 일관된 에러 처리: ValidationError, ForbiddenError, DatabaseError
- 구조화된 로깅: 모든 작업 추적 가능
- 권한 체크 개선: ForbiddenError 사용
- 코드 가독성 향상: JSDoc 문서화

컨트롤러 개선 최종 현황:
-  15/16 개 컨트롤러 개선 완료 (93.75%)

서비스 레이어 최종 현황:
- 9개 서비스 레이어 구축 완료

Phase 3 리팩토링 완료율: ~95%

남은 작업 (복잡도 매우 높음):
- workReportAnalysisController (복잡한 SQL 분석)
- workAnalysisController (복잡한 SQL 분석)
- systemController (시스템 관리 - 부분 개선 필요)
- authController (인증 - 부분 개선됨)
- userController (사용자 관리 - 부분 개선됨)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-11 13:16:21 +09:00

TK-FB-Project - 통합 실행 가이드

⚙️ 사전 준비

환경 변수 설정 (필수)

처음 실행하기 전에 환경 변수 파일을 생성해야 합니다:

# 1. .env.example을 복사하여 .env 파일 생성
cp .env.example .env

# 2. .env 파일을 편집하여 실제 비밀번호로 변경
nano .env  # 또는 vi, code 등 사용

# 3. 강력한 비밀번호로 변경 (예시)
# MYSQL_ROOT_PASSWORD=your_secure_password_here
# MYSQL_PASSWORD=your_secure_password_here
# JWT_SECRET=your_random_jwt_secret_min_32_chars

중요: .env 파일은 절대 Git에 커밋하지 마세요!

🚀 한 번에 모든 서비스 실행

🎯 간편 실행 (권장)

cd /Users/hyungi/docker/TK-FB-Project
./start.sh

🛑 간편 중지

./stop.sh

📋 직접 실행

docker-compose up -d
docker-compose down

📊 서비스 목록

서비스 포트 접속 URL 설명
웹 UI 20000 http://localhost:20000 메인 웹 인터페이스
API 서버 20005 http://localhost:20005 Node.js API 서버
FastAPI 브릿지 20010 http://localhost:20010 Python FastAPI 서비스
phpMyAdmin 20080 http://localhost:20080 DB 관리도구
MariaDB 20306 - 데이터베이스 서버

🛠️ 관리 명령어

모든 서비스 중지

cd /Users/hyungi/docker/TK-FB-Project
docker-compose down

서비스 상태 확인

docker ps | grep fb_

로그 확인

docker-compose logs -f

💾 데이터베이스 정보

  • 호스트: localhost:20306
  • 데이터베이스: hyungi (.env 파일의 MYSQL_DATABASE)
  • 사용자: hyungi_user (.env 파일의 MYSQL_USER)
  • 비밀번호: .env 파일에서 설정한 MYSQL_PASSWORD
  • Root 비밀번호: .env 파일에서 설정한 MYSQL_ROOT_PASSWORD

참고: 실제 비밀번호는 .env 파일을 확인하세요.

주요 개선사항

  1. 통합 실행: 한 번의 명령으로 모든 서비스 실행
  2. 깔끔한 DB 초기화: 마이그레이션 오류 해결
  3. 일관된 네이밍: fb_ 접두사로 컨테이너 구분
  4. 안정적인 포트: 20000번대 포트 사용
Description
생산팀 포탈 페이지 제작 건
Readme 231 MiB
Languages
Python 81.2%
JavaScript 8.5%
HTML 7.1%
CSS 1.6%
Cython 0.8%
Other 0.7%