# React ↔ API 매핑 매트릭스

> **작성일**: 2025-12-20
> **분석 대상**: `react/src/app/[locale]/(protected)/**`
> **총 페이지 수**: 109 pages

---

## 매핑 상태 범례

| 상태 | 설명 |
|------|------|
| ✅ 연동완료 | API 연동 완료, 정상 동작 |
| 🔄 수정필요 | API 연동되었으나 응답 형식 수정 필요 |
| 🆕 신규필요 | Mock 데이터 사용 중, API 개발 필요 |
| ⏳ 미구현 | 페이지/기능 미구현 |
| 🔍 확인필요 | 상세 분석 필요 |

---

## 1. 품목 관리 (Items) ✅

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/items` | GET `/api/proxy/items` | ✅ | 목록 조회 |
| `/items/create` | POST `/api/proxy/items` | ✅ | 품목 생성 |
| `/items/[id]` | GET `/api/proxy/items/{id}` | ✅ | 상세 조회 |
| `/items/[id]/edit` | PUT `/api/proxy/items/{id}` | ✅ | 수정 |
| `/items/[id]` (BOM) | GET `/api/proxy/items/{id}/bom` | ✅ | BOM 조회 |
| `/items/[id]` (Files) | POST `/api/proxy/items/{id}/files` | ✅ | 파일 업로드 |

**API 클라이언트**: `react/src/lib/api/items.ts`
- `getItems()`, `getItem()`, `createItem()`, `updateItem()`, `deleteItem()`
- `getBom()`, `addBomComponent()`, `updateBomComponent()`, `deleteBomComponent()`
- `uploadFiles()`, `deleteFile()`

---

## 2. 마스터 데이터 (Master Data) ✅

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/master-data` | GET `/api/proxy/item-master/*` | ✅ | 동적 데이터 관리 |

**API 클라이언트**: `react/src/lib/api/item-master.ts`

50+ 엔드포인트 지원:
- Categories, Brands, Units, Manufacturers
- Warehouses, ItemTypes, Origins, TaxTypes
- Colors, Materials, Sizes, Grades, Certifications
- Customers, Suppliers, Shipping, Payment Terms 등

---

## 3. 영업 관리 (Sales)

### 3.1 거래처 관리 ✅

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/sales/client-management-sales-admin` | GET `/api/proxy/clients` | ✅ | 목록 조회 |
| `/sales/client-management-sales-admin` | POST `/api/proxy/clients` | ✅ | 거래처 생성 |
| `/sales/client-management-sales-admin` | PUT `/api/proxy/clients/{id}` | ✅ | 거래처 수정 |
| `/sales/client-management-sales-admin` | DELETE `/api/proxy/clients/{id}` | ✅ | 거래처 삭제 |

### 3.2 단가 관리 ✅

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/sales/pricing-management` | GET `/api/v1/pricing` | ✅ | Server Actions 사용 |
| `/sales/pricing-management` | POST `/api/v1/pricing` | ✅ | 단가 생성 |
| `/sales/pricing-management` | PUT `/api/v1/pricing/{id}` | ✅ | 단가 수정 |
| `/sales/pricing-management` | DELETE `/api/v1/pricing/{id}` | ✅ | 단가 삭제 |

### 3.3 견적 관리 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/sales/quote-management` | GET `/api/v1/quotes` | 🆕 | Mock 데이터 |
| `/sales/quote-detail/[id]` | GET `/api/v1/quotes/{id}` | 🆕 | Mock 데이터 |
| `/sales/quote-register` | POST `/api/v1/quotes` | 🆕 | Mock 데이터 |

**필요 API**:
- `QuoteController` 전체 CRUD
- 견적 → 주문 전환 API

### 3.4 기타 영업 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/sales/order-management` | - | 🆕 | Mock 데이터 |
| `/sales/sales-performance` | - | 🆕 | Mock 데이터 |

---

## 4. 회계 관리 (Accounting) 🆕

전체 17개 페이지가 Mock 데이터 사용 중

### 4.1 매출/매입

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/accounting/sales` | GET `/api/v1/sales` | 🆕 | `generateMockData()` |
| `/accounting/sales/[id]` | GET `/api/v1/sales/{id}` | 🆕 | Mock |
| `/accounting/purchase` | GET `/api/v1/purchases` | 🆕 | Mock |
| `/accounting/purchase/[id]` | GET `/api/v1/purchases/{id}` | 🆕 | Mock |

### 4.2 수금/지급

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/accounting/collection` | GET `/api/v1/collections` | 🆕 | Mock |
| `/accounting/payment` | GET `/api/v1/payments` | 🆕 | Mock |

### 4.3 전표/장부

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/accounting/slip-entry` | POST `/api/v1/slips` | 🆕 | Mock |
| `/accounting/slip-inquiry` | GET `/api/v1/slips` | 🆕 | Mock |
| `/accounting/general-ledger` | GET `/api/v1/ledgers` | 🆕 | Mock |
| `/accounting/trial-balance` | GET `/api/v1/trial-balance` | 🆕 | Mock |

### 4.4 세금계산서

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/accounting/tax-invoice-issuance` | POST `/api/v1/tax-invoices` | 🆕 | Mock |
| `/accounting/tax-invoice-inquiry` | GET `/api/v1/tax-invoices` | 🆕 | Mock |

### 4.5 기타 회계

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/accounting/cash-book` | GET `/api/v1/cash-book` | 🆕 | Mock |
| `/accounting/closing` | POST `/api/v1/closing` | 🆕 | Mock |
| `/accounting/vendors` | GET `/api/v1/clients` | 🆕 | Mock (clients 재사용) |
| `/accounting/vendor-balance` | GET `/api/v1/client-balances` | 🆕 | Mock |
| `/accounting/account-management` | GET `/api/v1/accounts` | 🆕 | Mock |

---

## 5. 인사 관리 (HR) 🆕

전체 9개 페이지가 Mock 데이터 사용 중

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/hr/employee-management` | GET `/api/v1/employees` | 🆕 | Mock |
| `/hr/department-management` | GET `/api/v1/departments` | 🆕 | Mock |
| `/hr/card-management` | GET `/api/v1/employee-cards` | 🆕 | Mock |
| `/hr/attendance` | GET `/api/v1/attendances` | 🆕 | Mock |
| `/hr/work-summary` | GET `/api/v1/work-summary` | 🆕 | Mock |
| `/hr/salary-management` | GET `/api/v1/salaries` | 🆕 | Mock |
| `/hr/vacation-management` | GET `/api/v1/leaves` | 🆕 | Mock |
| `/hr/work-management` | GET `/api/v1/works` | 🆕 | Mock |
| `/hr/hr-settings` | GET `/api/v1/hr-settings` | 🆕 | Mock |

---

## 6. 게시판 (Board) 🆕

전체 6개 페이지가 Mock 데이터 사용 중

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/board/notice` | GET `/api/v1/boards/notice/posts` | 🆕 | Mock |
| `/board/free` | GET `/api/v1/boards/free/posts` | 🆕 | Mock |
| `/board/data-room` | GET `/api/v1/boards/data/posts` | 🆕 | Mock |
| `/board/[boardType]/[id]` | GET `/api/v1/posts/{id}` | 🆕 | Mock |
| `/board/[boardType]/write` | POST `/api/v1/posts` | 🆕 | Mock |
| `/board/[boardType]/edit/[id]` | PUT `/api/v1/posts/{id}` | 🆕 | Mock |

---

## 7. 결재 (Approval) 🆕

전체 4개 페이지가 Mock 데이터 사용 중

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/approval/pending` | GET `/api/v1/approvals?status=pending` | 🆕 | Mock |
| `/approval/my-requests` | GET `/api/v1/approvals?mine=true` | 🆕 | Mock |
| `/approval/history` | GET `/api/v1/approvals?status=completed` | 🆕 | Mock |
| `/approval/[id]` | GET `/api/v1/approvals/{id}` | 🆕 | Mock |

---

## 8. 설정 (Settings)

### 8.1 권한 관리 ⚠️

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/settings/permission` | - | ⚠️ | localStorage 사용 |
| `/settings/permission-test` | - | ⚠️ | localStorage 사용 |

**문제점**: API가 아닌 localStorage로 권한 관리 중

### 8.2 기타 설정 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/settings/general` | GET `/api/v1/settings` | 🆕 | Mock |
| `/settings/menu` | GET `/api/v1/menus` | 🆕 | Mock |
| `/settings/users` | GET `/api/v1/users` | 🆕 | Mock |
| `/settings/roles` | GET `/api/v1/roles` | 🆕 | Mock |
| `/settings/departments` | GET `/api/v1/departments` | 🆕 | Mock |
| `/settings/api-keys` | GET `/api/v1/api-keys` | 🆕 | Mock |
| `/settings/logs` | GET `/api/v1/audit-logs` | 🆕 | Mock |
| `/settings/system` | GET `/api/v1/system-settings` | 🆕 | Mock |

---

## 9. 대시보드 (Dashboard) ⏳

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/dashboard` | - | ⏳ | 미구현 (빈 페이지) |

**필요 API**:
- `GET /api/v1/dashboard/summary`
- `GET /api/v1/dashboard/sales`
- `GET /api/v1/dashboard/inventory`
- `GET /api/v1/dashboard/recent-activities`

---

## 10. 리포트 (Reports) 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/reports` | - | 🆕 | 다중 탭 리포트, Mock |
| `/reports/comprehensive-analysis` | - | 🆕 | 종합분석, Mock |

**필요 API**:
- `GET /api/v1/reports/sales`
- `GET /api/v1/reports/purchase`
- `GET /api/v1/reports/inventory`
- `GET /api/v1/reports/financial`

---

## 11. 고객센터 (Customer Center) 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/customer-center/notice` | GET `/api/v1/notices` | 🆕 | Mock |
| `/customer-center/faq` | GET `/api/v1/faqs` | 🆕 | Mock |
| `/customer-center/inquiry` | GET `/api/v1/inquiries` | 🆕 | Mock |
| `/customer-center/inquiry/write` | POST `/api/v1/inquiries` | 🆕 | Mock |
| `/customer-center/guide` | - | 🆕 | 정적 콘텐츠 |
| `/customer-center/terms` | - | 🆕 | 정적 콘텐츠 |

---

## 12. 생산 관리 (Production) 🆕

| React 페이지 | API 엔드포인트 | 상태 | 비고 |
|-------------|---------------|------|------|
| `/production/order-registration` | POST `/api/v1/production-orders` | 🆕 | Mock |
| `/production/order-status` | GET `/api/v1/production-orders` | 🆕 | Mock |
| `/production/work-instruction` | GET `/api/v1/work-orders` | 🆕 | Mock |
| `/production/work-performance` | GET `/api/v1/work-performance` | 🆕 | Mock |

---

## 요약 통계

### 연동 상태별 분류

| 상태 | 페이지 수 | 비율 |
|------|----------|------|
| ✅ 연동완료 | 8 | 7.3% |
| 🆕 신규필요 (Mock) | 95 | 87.2% |
| ⚠️ 부분 연동 | 4 | 3.7% |
| ⏳ 미구현 | 2 | 1.8% |
| **총계** | **109** | **100%** |

### 모듈별 연동 현황

| 모듈 | 페이지 수 | 연동완료 | Mock | 비율 |
|------|----------|----------|------|------|
| Items | 4 | 4 | 0 | 100% |
| Master Data | 1 | 1 | 0 | 100% |
| Sales | 8 | 4 | 4 | 50% |
| Accounting | 17 | 0 | 17 | 0% |
| HR | 9 | 0 | 9 | 0% |
| Board | 6 | 0 | 6 | 0% |
| Approval | 4 | 0 | 4 | 0% |
| Settings | 10 | 0 | 10 | 0% |
| Dashboard | 1 | 0 | 1 | 0% |
| Reports | 2 | 0 | 2 | 0% |
| Customer Center | 6 | 0 | 6 | 0% |
| Production | 4 | 0 | 4 | 0% |

---

*이 문서는 Phase 3 API 분석의 일부로 작성되었습니다.*
