- INDEX.md: TODO.md 링크 추가 - TODO.md: 프로젝트 할일 목록 신규 생성 - plans/flow-tests/: Flow Tester 테스트 시나리오 JSON 추가 - auth-api-flow.json: 인증 API 플로우 테스트 - pricing-validation-test.json: 가격 검증 테스트 - projects/api-integration/: 마이그레이션 계획 문서 - MASTER_PLAN.md: 전체 마이그레이션 전략 - PROGRESS.md: 진행 상황 추적 - WORKFLOW.md: 작업 워크플로우 - phase-1 ~ phase-4: 단계별 상세 계획 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
301 lines
11 KiB
Markdown
301 lines
11 KiB
Markdown
# 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 분석의 일부로 작성되었습니다.*
|