# Hotfix 단위테스트 분석 및 액션 플랜 (2026-01-19)

## 개요

**분석 대상 커밋**: `121b427c899cd37e273eaf08459dd5a3072da670`
**커밋 메시지**: 1/19 단위테스트
**분석 일시**: 2026-01-19
**작성자**: Claude Code

---

## 테스트 결과 요약

| 구분 | 건수 | 비율 |
|------|------|------|
| ✅ 통과 (PASS) | 37개 | 92.5% |
| ⚠️ 스킵 - 페이지 미구현 | 2개 | 5.0% |
| ⚠️ 스킵 - 데이터 없음 | 1개 | 2.5% |
| **총계** | **40개** | **100%** |

---

## 🔴 긴급 (P0) - 페이지 미구현

### 1. 근태 설정 페이지

| 항목 | 내용 |
|------|------|
| **URL** | `/ko/settings/attendance` |
| **현재 상태** | 404 Not Found |
| **우선순위** | P0 (긴급) |
| **담당** | React 프론트엔드 |
| **비고** | API 이미 존재 (WorkSettingController) |

#### 필요 작업
- [x] API 존재 확인 완료 (WorkSettingController)
- [ ] React 페이지 개발
- [ ] API 연동

#### 예상 기능
- 출퇴근 시간 설정
- 지각/조퇴 기준 설정
- 휴일 설정
- 근태 알림 설정

---

### 2. 미수금현황 페이지

| 항목 | 내용 |
|------|------|
| **URL** | `/ko/accounting/receivables` |
| **현재 상태** | 404 Not Found |
| **우선순위** | P0 (긴급) |
| **담당** | React 프론트엔드 |
| **비고** | API 이미 존재 (ReceivablesController) |

#### 필요 작업
- [x] API 존재 확인 완료 (ReceivablesController)
  - `GET /api/v1/receivables` - 목록
  - `GET /api/v1/receivables/summary` - 요약
  - `PUT /api/v1/receivables/memos` - 메모 업데이트
  - `PUT /api/v1/receivables/overdue-status` - 연체 상태
- [ ] React 페이지 개발 (프론트엔드)
- [ ] API 연동

#### 예상 기능
- 거래처별 미수금 현황
- 기간별 미수금 추이
- 연체 미수금 관리
- 미수금 알림 설정

---

## 🟡 중요 (P1) - 데이터 정합성 이슈

### 1. 입금관리 - 입금유형 미설정

| 항목 | 내용 |
|------|------|
| **페이지** | `/ko/accounting/deposits` |
| **문제** | 입금유형 미설정 59건 / 60건 (98.3%) |
| **영향** | 입금 분류 및 통계 정확도 저하 |
| **우선순위** | P1 |

#### 개선 방안
- [ ] 입금유형 일괄 설정 기능 추가
- [ ] 입금 등록 시 유형 필수 선택 옵션
- [ ] 미설정 데이터 경고 배너 추가

---

### 2. 출금관리 - 출금유형 미설정

| 항목 | 내용 |
|------|------|
| **페이지** | `/ko/accounting/withdrawals` |
| **문제** | 출금유형 미설정 58건 / 60건 (96.7%) |
| **영향** | 출금 분류 및 통계 정확도 저하 |
| **우선순위** | P1 |

#### 개선 방안
- [ ] 출금유형 일괄 설정 기능 추가
- [ ] 출금 등록 시 유형 필수 선택 옵션
- [ ] 미설정 데이터 경고 배너 추가

---

### 3. 매입관리 - 매입유형/세금계산서 미설정 ✅ 완료

| 항목 | 내용 |
|------|------|
| **페이지** | `/ko/accounting/purchase` |
| **문제** | 매입유형 미설정 69건, 세금계산서 수취 미확인 69건 / 70건 (98.6%) |
| **영향** | 매입 분류, 세무 처리 누락 가능성 |
| **우선순위** | P1 |
| **상태** | ✅ API 완료 (2026-01-19) |

#### 개선 방안
- [x] 매입유형/세금계산서 일괄 설정 기능 → API 완료
  - `POST /api/v1/purchases/bulk-update-type` - 매입유형 일괄 변경
  - `POST /api/v1/purchases/bulk-update-tax-received` - 세금계산서 수취 일괄 설정
- [ ] 매입 등록 시 필수 항목 검증 강화
- [ ] 세무 신고 전 미설정 데이터 체크 기능

---

### 4. 매출관리 - 세금계산서/거래명세서 미발행 ✅ API 완료

| 항목 | 내용 |
|------|------|
| **페이지** | `/ko/accounting/sales` |
| **문제** | 세금계산서 발행대기 81건, 거래명세서 발행대기 81건 (100%) |
| **영향** | 세금계산서/거래명세서 발행 누락 |
| **우선순위** | P1 |
| **상태** | ✅ API 완료 (2026-01-19) |

#### 기존 API (개별 발행)
- `POST /api/v1/tax-invoices/{id}/issue` - 세금계산서 개별 발행
- `POST /api/v1/sales/{id}/statement/issue` - 거래명세서 개별 발행

#### 일괄 발행 API (신규)
- [x] `POST /api/v1/tax-invoices/bulk-issue` - 세금계산서 일괄 발행
- [x] `POST /api/v1/sales/bulk-issue-statement` - 거래명세서 일괄 발행

#### 개선 방안
- [x] 세금계산서 일괄 발행 API 개발 → 완료
- [x] 거래명세서 일괄 발행 API 개발 → 완료
- [ ] 자동 발행 로직 검토 (매출 등록 시 자동 발행 옵션)
- [ ] 발행 대기 데이터 대시보드 알림
- [ ] React 프론트엔드 연동

---

## 🟢 개선 (P2) - 선택 사항

### 1. 관리자 대시보드 알림 강화
- [ ] 데이터 미설정 건수 위젯 추가
- [ ] 미발행 문서 건수 알림
- [ ] 페이지 미구현 상태 모니터링

### 2. 데이터 품질 관리
- [ ] 데이터 미설정 시 경고 아이콘 표시
- [ ] 일별/주별 데이터 품질 리포트
- [ ] 자동 데이터 정합성 체크 배치

---

## 정상 동작 기능 목록 (37개)

<details>
<summary>전체 목록 펼치기</summary>

### 결재 시스템 (3개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 결재함 | approval-box | /ko/approval/inbox |
| 기안함 | draft-box | /ko/approval/draft |
| 참조함 | reference-box | /ko/approval/reference |

### 인사관리 (12개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 근태현황 | attendance-checkin | /hr/attendance |
| 근태관리 | attendance-management | /hr/attendance-management |
| 근태 사유 | attendance-reason | /hr/attendance-management |
| 근태 등록 | attendance-register | /hr/attendance-management |
| 사원관리 | employee-register | /ko/hr/employee-management |
| 부서관리 | department-add | /ko/hr/department-management |
| 직급관리 | rank-management | /ko/settings/ranks |
| 휴가관리 | vacation-management | /ko/hr/vacation-management |
| 휴가정책 | leave-policy | /ko/settings/leave-policy |
| 급여관리 | salary-management | /ko/hr/salary-management |
| 카드관리 | card-add | /ko/hr/card-management |
| 근무일정 | work-schedule | /ko/settings/work-schedule |

### 회계관리 (10개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 입금관리 | deposit-management | /ko/accounting/deposits |
| 출금관리 | withdrawal-management | /ko/accounting/withdrawals |
| 매입관리 | purchase-management | /ko/accounting/purchase |
| 매출관리 | sales-management | /ko/accounting/sales |
| 거래처관리 | vendor-management | /ko/accounting/vendors |
| 거래처원장 | vendor-ledger | /ko/accounting/vendor-ledger |
| 카드거래 | card-transactions | /ko/accounting/card-transactions |
| 대손채권회수 | bad-debt-collection | /accounting/bad-debt-collection |
| 일일 일보 | daily-report | /ko/accounting/daily-report |
| 지출 예상 내역서 | expected-expenses | /ko/accounting/expected-expenses |

### 게시판 (4개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 게시판관리 | board-management | /ko/board/board-management |
| 게시판 | board-test | /ko/boards/board_mjsgri54_1fmg |
| 자유게시판 | free-board | /ko/boards/free |
| 1:1 문의 | customer-inquiry | /ko/customer-center/qna |

### 생산관리 (3개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 품목관리 | item-management | /ko/production/screen-production |
| 생산 현황판 | production-dashboard | /ko/production/dashboard |
| 작업지시 관리 | work-order-management | /ko/production/work-orders |

### 설정 (4개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 회사정보 | company-info | /ko/company-info |
| 권한관리 | permission-management | /ko/settings/permissions |
| 알림설정 | notification-settings | /ko/settings/notification-settings |
| 팝업관리 | popup-management | /ko/settings/popup-management |

### 기타 (2개)
| 기능 | 테스트 ID | URL |
|------|----------|-----|
| 로그인 | login | /login |
| 결제내역 | payment-history | /ko/payment-history |

</details>

---

## 작업 일정 (권장)

```mermaid
gantt
    title Hotfix 작업 일정
    dateFormat  YYYY-MM-DD
    section P0 긴급
    근태 설정 페이지 개발    :2026-01-20, 3d
    미수금현황 페이지 개발   :2026-01-20, 3d
    section P1 중요
    입금/출금 유형 일괄설정  :2026-01-23, 2d
    매입/매출 데이터 정합성  :2026-01-25, 2d
    section P2 개선
    대시보드 알림 강화       :2026-01-27, 2d
```

---

## 담당자 배정 (제안)

| 우선순위 | 작업 | 담당 | 상태 |
|----------|------|------|------|
| P0 | 근태 설정 페이지 | React 프론트엔드 | ⬜ 대기 (API 존재) |
| P0 | 미수금현황 페이지 | React 프론트엔드 | ⬜ 대기 (API 존재) |
| P1 | 입금유형 일괄설정 | React 프론트엔드 | ✅ API 이미 존재 |
| P1 | 출금유형 일괄설정 | React 프론트엔드 | ✅ API 이미 존재 |
| P1 | 매입 데이터 정합성 | React 프론트엔드 | ✅ API 완료 (2026-01-19) |
| P1 | 매출 문서 발행 | api 백엔드 + React 프론트엔드 | ✅ API 완료 (2026-01-19) |
| P2 | 대시보드 알림 | React 프론트엔드 | ⬜ 대기 |

---

## 참고 자료

- 테스트 결과 파일: `hotfix/*_2026-01-19_test.md` (40개)
- Serena 메모리: `hotfix-test-analysis-20260119.md`
- 관련 커밋: `121b427c899cd37e273eaf08459dd5a3072da670`

---

**문서 버전**: 1.0
**최종 수정**: 2026-01-19
**다음 검토**: 작업 완료 후