# Gap 분석 보고서 > **작성일**: 2025-12-20 > **분석 범위**: React ↔ Laravel API 연동 현황 > **목적**: Mock 데이터 → 실제 API 전환을 위한 우선순위 도출 --- ## Executive Summary ### 현재 상태 | 지표 | 값 | |------|-----| | 총 React 페이지 | 109개 | | API 연동 완료 | 8개 (7.3%) | | Mock 데이터 사용 | 95개 (87.2%) | | 부분 연동 | 4개 (3.7%) | | 미구현 | 2개 (1.8%) | ### 핵심 발견사항 1. **Items + Master Data 모듈만 완전 연동** (100%) 2. **Sales 모듈 절반 연동** (거래처/단가 O, 견적/주문 X) 3. **나머지 8개 모듈은 전체 Mock 데이터** (Accounting, HR, Board, Approval, Settings, Dashboard, Reports, Production, Customer Center) 4. **권한 관리는 localStorage 사용** → API 전환 필요 --- ## 1. 모듈별 Gap 분석 ### 1.1 ✅ 완료 모듈 (연동률 100%) #### Items 모듈 - **상태**: 완전 연동 - **Gap**: 없음 - **비고**: 파일 업로드, BOM 관리 포함 #### Master Data 모듈 - **상태**: 완전 연동 - **Gap**: 없음 - **비고**: 50+ 마스터 데이터 API 연동 --- ### 1.2 🟡 부분 연동 모듈 #### Sales 모듈 (50% 연동) | 기능 | 상태 | Gap | |------|------|-----| | 거래처 관리 | ✅ | - | | 단가 관리 | ✅ | - | | 견적 관리 | 🆕 | `QuoteController` 필요 | | 주문 관리 | 🆕 | `OrderController` 필요 | | 영업 실적 | 🆕 | 리포트 API 필요 | **필요 API 목록**: ``` POST /api/v1/quotes GET /api/v1/quotes GET /api/v1/quotes/{id} PUT /api/v1/quotes/{id} DELETE /api/v1/quotes/{id} POST /api/v1/quotes/{id}/send POST /api/v1/quotes/{id}/convert-to-order GET /api/v1/orders POST /api/v1/orders GET /api/v1/orders/{id} PUT /api/v1/orders/{id} GET /api/v1/reports/sales-performance ``` --- ### 1.3 🔴 Mock 데이터 모듈 (연동률 0%) #### Accounting 모듈 (17 페이지) **현재 상태**: 모든 페이지에서 `generateMockData()` 함수 사용 **필요 API 우선순위**: | 우선순위 | 기능 | 필요 API | 복잡도 | |---------|------|----------|--------| | 🔴 높음 | 매출 관리 | `SalesController` CRUD | 중 | | 🔴 높음 | 매입 관리 | `PurchaseController` CRUD | 중 | | 🔴 높음 | 수금 관리 | `CollectionController` CRUD | 중 | | 🔴 높음 | 지급 관리 | `PaymentController` CRUD | 중 | | 🟡 중간 | 전표 관리 | `SlipController` CRUD | 상 | | 🟡 중간 | 세금계산서 | `TaxInvoiceController` + 외부연동 | 상 | | 🟢 낮음 | 장부 조회 | `LedgerController` (조회 전용) | 하 | | 🟢 낮음 | 결산 | `ClosingController` | 상 | **예상 개발 규모**: Controller 8개, 모델 10+개 --- #### HR 모듈 (9 페이지) **현재 상태**: 모든 페이지에서 Mock 데이터 사용 **필요 API 우선순위**: | 우선순위 | 기능 | 필요 API | 복잡도 | |---------|------|----------|--------| | 🔴 높음 | 사원 관리 | `EmployeeController` CRUD | 중 | | 🔴 높음 | 부서 관리 | `DepartmentController` CRUD | 하 | | 🔴 높음 | 근태 관리 | `AttendanceController` + 출퇴근 | 중 | | 🟡 중간 | 휴가 관리 | `LeaveController` + 승인 | 중 | | 🟡 중간 | 급여 관리 | `SalaryController` + 계산 | 상 | | 🟢 낮음 | 카드 관리 | `EmployeeCardController` | 하 | | 🟢 낮음 | HR 설정 | `HrSettingController` | 하 | **예상 개발 규모**: Controller 7개, 모델 8+개 --- #### Board 모듈 (6 페이지) **현재 상태**: Mock 데이터 사용 **필요 API**: ``` GET /api/v1/boards GET /api/v1/boards/{boardType}/posts POST /api/v1/boards/{boardType}/posts GET /api/v1/posts/{id} PUT /api/v1/posts/{id} DELETE /api/v1/posts/{id} POST /api/v1/posts/{id}/comments GET /api/v1/posts/{id}/files POST /api/v1/posts/{id}/files ``` **예상 개발 규모**: Controller 3개, 모델 3개 --- #### Approval 모듈 (4 페이지) **현재 상태**: Mock 데이터 사용 **필요 API**: ``` GET /api/v1/approvals POST /api/v1/approvals GET /api/v1/approvals/{id} POST /api/v1/approvals/{id}/approve POST /api/v1/approvals/{id}/reject GET /api/v1/approval-templates GET /api/v1/approval-lines POST /api/v1/approval-lines ``` **예상 개발 규모**: Controller 3개, 모델 4개 --- #### Settings 모듈 (10 페이지) **현재 상태**: - 권한 관리: localStorage 사용 (⚠️ 보안 이슈) - 기타: Mock 데이터 **필요 API**: ``` # 권한 관리 (우선순위 높음) GET /api/v1/permissions POST /api/v1/permissions GET /api/v1/roles POST /api/v1/roles PUT /api/v1/roles/{id}/permissions # 사용자 관리 GET /api/v1/users POST /api/v1/users PUT /api/v1/users/{id} # 메뉴 관리 GET /api/v1/menus PUT /api/v1/menus # 시스템 설정 GET /api/v1/settings PUT /api/v1/settings ``` **⚠️ 특별 주의**: 권한 관리 localStorage → API 전환 우선 --- #### Dashboard 모듈 (1 페이지) **현재 상태**: 빈 페이지 (미구현) **필요 API**: ``` GET /api/v1/dashboard/summary GET /api/v1/dashboard/sales-chart GET /api/v1/dashboard/inventory-status GET /api/v1/dashboard/recent-activities GET /api/v1/dashboard/pending-approvals ``` --- #### Reports 모듈 (2 페이지) **현재 상태**: Mock 데이터 **필요 API**: ``` GET /api/v1/reports/sales GET /api/v1/reports/purchase GET /api/v1/reports/inventory GET /api/v1/reports/financial GET /api/v1/reports/comprehensive ``` --- #### Customer Center 모듈 (6 페이지) **현재 상태**: Mock 데이터 **필요 API**: ``` GET /api/v1/notices GET /api/v1/faqs GET /api/v1/inquiries POST /api/v1/inquiries GET /api/v1/inquiries/{id} ``` --- #### Production 모듈 (4 페이지) **현재 상태**: Mock 데이터 (초기 개발 단계) **필요 API**: ``` GET /api/v1/production-orders POST /api/v1/production-orders GET /api/v1/production-orders/{id} PUT /api/v1/production-orders/{id} POST /api/v1/production-orders/{id}/start POST /api/v1/production-orders/{id}/complete GET /api/v1/work-orders POST /api/v1/work-performance ``` --- ## 2. 우선순위 권장사항 ### Phase 1: 핵심 비즈니스 (1-2주) | 순위 | 모듈 | 작업 | 이유 | |------|------|------|------| | 1 | Settings | 권한 API 전환 | 🔴 보안 이슈 | | 2 | Sales | 견적 관리 API | 핵심 영업 기능 | | 3 | Accounting | 매출/매입 API | 핵심 회계 기능 | ### Phase 2: 운영 지원 (2-3주) | 순위 | 모듈 | 작업 | 이유 | |------|------|------|------| | 4 | HR | 사원/근태 API | 기본 인사 관리 | | 5 | Approval | 결재 시스템 API | 업무 프로세스 | | 6 | Board | 게시판 API | 커뮤니케이션 | ### Phase 3: 부가 기능 (3-4주) | 순위 | 모듈 | 작업 | 이유 | |------|------|------|------| | 7 | Dashboard | 대시보드 API | 경영 현황 | | 8 | Reports | 리포트 API | 분석 기능 | | 9 | Customer Center | 고객센터 API | 지원 기능 | | 10 | Production | 생산 관리 API | 제조 기능 | --- ## 3. 기술적 Gap ### 3.1 API 클라이언트 패턴 불일치 | 패턴 | 사용처 | 문제점 | |------|--------|--------| | `/api/proxy/*` | Items, Clients | ✅ 표준 패턴 | | `/api/v1/*` | Pricing | Server Actions 사용 | | `generateMockData()` | 대부분 | Mock 데이터 | **권장사항**: `/api/proxy/*` 패턴으로 통일 ### 3.2 인증 토큰 처리 - **현재**: HttpOnly Cookie (access_token) - **문제**: 일부 페이지에서 토큰 갱신 미처리 - **권장**: 토큰 갱신 미들웨어 적용 ### 3.3 에러 처리 - **현재**: 페이지별 개별 처리 - **권장**: 글로벌 에러 핸들러 + Toast 알림 통일 --- ## 4. 개발 예상 규모 ### API 개발 (Laravel) | 항목 | 수량 | |------|------| | 신규 Controller | 25+ | | 신규 Model | 30+ | | 신규 Migration | 20+ | | FormRequest | 40+ | | Resource | 30+ | ### React 연동 | 항목 | 수량 | |------|------| | API 클라이언트 함수 | 80+ | | Mock → API 전환 페이지 | 95개 | | 새 타입 정의 | 50+ | --- ## 5. 리스크 및 대응 | 리스크 | 영향도 | 대응 방안 | |--------|--------|----------| | 권한 관리 localStorage | 🔴 높음 | 즉시 API 전환 필요 | | Mock 데이터 의존도 | 🟡 중간 | 점진적 전환 | | API 응답 형식 불일치 | 🟡 중간 | Resource 클래스 표준화 | | 다중 테넌트 미적용 | 🔴 높음 | BelongsToTenant 확인 | --- ## 6. 다음 단계 권장 1. **즉시 조치** - [ ] Settings 권한 API 개발 및 localStorage 제거 - [ ] API 응답 표준 정의 (Resource 클래스) 2. **Phase 4 준비** - [ ] 영업 모듈 견적 API 개발 - [ ] 회계 모듈 매출/매입 API 개발 3. **표준화 작업** - [ ] API 클라이언트 패턴 통일 - [ ] 에러 처리 글로벌화 - [ ] 토큰 갱신 자동화 --- *이 문서는 Phase 3 API 분석의 일부로 작성되었습니다.*