출근부 및 업무일지 시스템 통합플랫폼 백엔드 레포지토리
Controller (HTTP 엔드포인트)
↓
Application (비즈니스 로직)
↓
Domain (엔티티, 리포지토리)
↓
Global (공통 코드, 설정)
auth/
├── controller/
│ ├── AuthController.java
│ └── dto/
│ ├── LoginRequest.java
│ ├── LoginResponse.java
│ └── RegisterRequest.java
└── application/
├── AuthService.java
├── CustomUserDetails.java
├── CustomUserDetailsService.java
├── TokenBlacklistService.java
└── dto/
└── AuthTokens.java
- JWT 기반 인증 (AccessToken + RefreshToken)
- 토큰 블랙리스트 기반 로그아웃
- RegisterRequest에서 CodeType 사용
schedule/
├── controller/
│ ├── schedule/
│ │ ├── WorkScheduleController.java
│ │ └── dtos/
│ └── admin/
│ ├── AdminScheduleController.java
│ └── dtos/
└── application/
├── ScheduleService.java
├── MonthlyScheduleLimitService.java
├── ScheduleValidator.java
├── dtos/
└── exceptions/
- 근무 일정 신청/조회/수정
- 월별 일정 제한 관리
- 부분 성공/실패 처리 (HTTP 207, 422)
각 도메인은 entity/ + repository/ 구조:
code/- 코드 마스터 (CodeMajor, CodeSub, Code)organization/- 조직 관리user/- 사용자schedule/- 근무 일정 (WorkSchedule, MonthlyScheduleLimit)workchangerequest/- 근무 변경 요청workattendance/- 출근 기록faq/- faq (Faq, FaqHistory)category/- faq 분류 (Category, ManagerCategory)manager/- 담당자team/- 소속
global/
├── code/
│ ├── CodeType.java # 타입 안전한 코드 Enum
│ └── CodeTypeConverter.java # JPA 자동 변환
├── security/
│ └── jwt/
│ ├── JwtTokenProvider.java
│ └── JwtAuthenticationFilter.java
├── exceptions/
│ ├── BasicException.java # 베이스 예외
│ ├── error/
│ │ ├── CustomErrorCode.java
│ │ └── GlobalErrorCode.java
│ └── response/
└── controller/
├── GlobalExceptionHandler.java # 전역 예외 핸들러
└── dtos/
├── Response.java # 모든 응답 래퍼
├── ResponseDetail.java
└── ErrorResponseDetail.java
시스템 전체에서 사용하는 코드 값(역할, 상태, 타입 등)은 global/code/CodeType.java Enum으로 중앙 관리됩니다.
- WS: 근무신청 상태 (REQUESTED, APPROVED, REJECTED)
- CR: 요청 유형 (EDIT, DELETE)
- CS: 요청 상태 (PENDING, APPROVED, REJECTED)
- CT: 출근 인증 타입 (CHECK_IN, CHECK_OUT)
- TT: 업무 유형 (REGULAR, IRREGULAR)
- RL: 사용자 역할 (STUDENT, ADMIN)
근로 사무실에서 수행되는 다양한 행정 업무를 체계적으로 기록·관리할 수 있는 업무일지 관리 시스템
- faq 등록/수정/삭제: faq을 생성 및 수정하고 삭제 시 소프트 삭제 처리로 삭제 이후에도 정보 보존
- 수정 이력 관리: FaqHistory로 모든 수정 사항을 기록하여 조회 시 과거 수정 내역 조회 가능
- 검색 필터링: 날짜, 분류, 소속 기준으로 FAQ 목록 필터링 가능하며 키워드 기반 검색 기능도 지원
- 담당자/소속/분류 관리 : 소속 및 분류 등록/조회/삭제 가능, 담당자 등록/조회/수정/삭제 가능
https://dbdiagram.io/d/ku_ict-68db5736d2b621e422822757
| 도메인 | 엔티티 | 테이블명 | 설명 |
|---|---|---|---|
| code | CodeMajor | code_major | 코드 대분류 |
| code | CodeSub | code_sub | 코드 소분류 |
| code | Code | code | 코드 마스터 |
| organization | Organization | organization | 조직 |
| user | User | user | 사용자 |
| schedule | WorkSchedule | work_schedule | 근무 일정 |
| schedule | MonthlyScheduleLimit | monthly_schedule_limit | 월별 일정 제한 |
| workchangerequest | WorkChangeRequest | work_change_request | 근무 변경 요청 |
| workattendance | WorkAttendance | work_attendance | 출근 기록 |
| faq | Faq | faq | FAQ 게시글 |
| faq | FaqHistory | faq_history | FAQ 수정 이력 |
| category | Category | category | FAQ 분류 |
| category | ManagerCategory | manager_category | 분류 담당자 매핑 |
| manager | Manager | manager | 담당자 |
| team | Team | team | 소속 |
상세 문서는 docs/ 폴더를 참조하세요: