Files
SR-SYSTEM/docs/01-requirements.md
T
2026-06-02 13:50:39 +09:00

77 lines
5.0 KiB
Markdown

# 시스템 요구 기능 정의서 (Functional Requirements)
## 1. 시스템 개요
- **시스템명:** SM/SI 파견 직원 통합 지원 및 IT 자산 관리 포털 (HQ 헬프데스크)
- **목적:** 파견 직원 라이프사이클/커리어 관리, 현장 기술 문제 본사(SR) 지원, IT 자산 생명주기 추적 통합
- **기대 효과:** 본사-파견지 간 정보 간극 해소, 운영 효율성 극대화
## 2. 역할 및 권한 체계 (RBAC)
| 역할 | 코드 | 설명 |
|------|------|------|
| 일반 사용자 | `EMPLOYEE` | 파견지 현장 직원. 포트폴리오 관리, 업무 보고서 작성, SR 티켓 신청, 장비/교육 조회 |
| 본사 관리자 | `MANAGER` | 영업/인사/자산 담당. 직원 현황 관리, 보고 결재, SR 티켓 처리, 장비 인벤토리 제어 |
| 최고 관리자 | `ADMIN` | 전역 계정 관리, 접근 권한 부여, 공통 코드 테이블 동적 제어 |
## 3. 도메인별 기능 요구사항
### 3.1 인사 및 포트폴리오 관리
| 기능 | 설명 | API | 권한 |
|------|------|-----|------|
| 직원 정보 관리 | 기본 인적사항, 재직 상태(재직/휴직/퇴사), 파견 상태(대기/파견중) CRUD | `/api/v1/employees` | ADMIN |
| 포트폴리오 누적 | 투입 프로젝트, 수행 역할, 기간, 개인 기여 기술, 성과 기록 (1:N) | `/api/v1/dispatch-history` | EMPLOYEE |
| 경력 기술서 조회 | 본인 포트폴리오 데이터 통합 조회 | `/api/v1/employees/{id}/portfolio` | EMPLOYEE |
### 3.2 HQ 헬프데스크 (SR 지원)
| 기능 | 설명 | API | 권한 |
|------|------|-----|------|
| SR 티켓 발행 | 현장 기술 난제 발생 시 SOS 요청 (에러 로그, 캡처 이미지 첨부) | `POST /api/v1/tickets` | EMPLOYEE |
| 티켓 목록/칸반 | 상태별(OPEN/IN_PROGRESS/RESOLVED/CLOSED) 칸반 보드 조회 | `GET /api/v1/tickets` | ALL |
| 티켓 상세/타임라인 | 티켓 상세 정보 + 시간순 댓글(파일 포함) 내역 | `GET /api/v1/tickets/{id}` | ALL |
| 댓글 등록 | 본사-현장 간 분석 의견, 스크립트 소통 | `POST /api/v1/tickets/{id}/comments` | ASSIGNED |
| 상태 전환 | OPEN→ASSIGNED→IN_PROGRESS→RESOLVED→CLOSED | `PUT /api/v1/tickets/{id}/status` | MANAGER |
| 필터/검색 | 카테고리, 우선순위, 키워드 기반 검색 | `GET /api/v1/tickets?category=&priority=&keyword=` | ALL |
| SLA 만료 알림 | 목표 처리 기한 초과 시 Slack/Email 알림 자동 발송 | Batch Scheduler | SYSTEM |
### 3.3 IT 자산 관리 (ITAM)
| 기능 | 설명 | API | 권한 |
|------|------|-----|------|
| 장비 마스터 관리 | 자산 코드, 제조사, 모델명 기반 장비 CRUD | `GET/POST /api/v1/equipment` | MANAGER |
| 장비 지급 | AVAILABLE 장비 → 직원 할당 (낙관적 락 동시성 제어) | `POST /api/v1/equipment/{id}/assign` | MANAGER |
| 장비 반납 | IN_USE 장비 회수 + 상태 코멘트 기록 | `PUT /api/v1/equipment/{id}/return` | MANAGER |
| 사용 이력 추적 | 장비별 과거 지급/반납 내역 (1:N) | `GET /api/v1/equipment/{id}/assignments` | MANAGER |
| 유지보수 이력 | 수리, 업그레이드(RAM/SSD), 폐기 이력 및 비용 관리 | `POST /api/v1/equipment/{id}/maintenance` | MANAGER |
| 직원 검색 자동완성 | 장비 지급 대상 사원 검색 (디바운싱 300ms) | `GET /api/v1/employees/search?keyword=` | MANAGER |
### 3.4 업무 보고 및 결재 워크플로우
| 기능 | 설명 | API | 권한 |
|------|------|-----|------|
| 보고서 작성 | 일일/주간/월간 단위 실적, 계획, 애로사항 기재 | `POST /api/v1/reports` | EMPLOYEE |
| 보고서 상태 관리 | DRAFT(임시저장) → SUBMITTED(제출) → APPROVED/REJECTED | `PUT /api/v1/reports/{id}/status` | EMPLOYEE |
| 결재 처리 | 관리자 승인/반려 + 반려 시 피드백 필수 | `PUT /api/v1/reports/{id}/review` | MANAGER |
| SR 연동 자동화 | 보고서 작성 시 해당 주차 해결 완료 SR 내역 자동 바인딩 | Internal (Backend) | SYSTEM |
### 3.5 내부 교육 관리
| 기능 | 설명 | API | 권한 |
|------|------|-----|------|
| 교육 진도 조회 | 사내 커리큘럼별 진도율(%), 수강 상태(NOT_STARTED/ONGOING/COMPLETED) 조회 | `GET /api/v1/training` | EMPLOYEE |
| 진도율 업데이트 | 교육 수강 완료 시 진도율 자동/수동 갱신 | `PUT /api/v1/training/{id}` | SYSTEM |
| 실시간 모니터링 | 관리자 대시보드에서 직원별 교육 이수 현황 파악 | `GET /api/v1/training/summary` | MANAGER |
## 4. 비기능 요구사항
| 항목 | 요구사항 |
|------|---------|
| 보안 | BCrypt 비밀번호 암호화, JWT 기반 인증, RBAC 권한 제어 |
| 데이터 무결성 | Soft Delete 전역 적용, 낙관적 락(Optimistic Lock)으로 동시성 제어 |
| 응답 시간 | 페이지 응답 3초 이내, 검색 자동완성 500ms 이내 |
| 알림 | 이벤트 기반 비동기 알림 (Slack/Email), 트랜잭션 분리 |
| SLA 관리 | Spring Batch 청크 처리로 시간당 대량 티켓 데드라인 스캔 |
| 감사(Audit) | 모든 테이블에 created_at, updated_at 타임스탬프强制 적용 |