docs: API 통합 프로젝트 계획 및 Flow Test 스펙 추가
- 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>
This commit is contained in:
78
projects/api-integration/phase-2-menu-extraction/README.md
Normal file
78
projects/api-integration/phase-2-menu-extraction/README.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Phase 2: React 라우터 → 메뉴 추출
|
||||
|
||||
> **상태**: ✅ 완료
|
||||
> **완료일**: 2025-12-20
|
||||
> **병행 작업**: Phase 3과 병행 가능
|
||||
|
||||
---
|
||||
|
||||
## 목표
|
||||
|
||||
React 라우트 기반으로 mng에 등록할 메뉴 목록 추출
|
||||
|
||||
## 체크리스트
|
||||
|
||||
- [x] React 전체 라우트 목록 추출
|
||||
- [x] 메뉴 구조 정리 (계층, 이름, URL)
|
||||
- [x] 접근 권한 매핑
|
||||
- [x] mng 등록용 포맷 생성
|
||||
- [ ] 메뉴 등록 (mng에서) → Phase 4에서 진행
|
||||
|
||||
## React 라우트 구조
|
||||
|
||||
```
|
||||
react/src/app/
|
||||
├── [locale]/
|
||||
│ ├── page.tsx # 루트 (→ dashboard 리다이렉트)
|
||||
│ ├── login/page.tsx # 로그인
|
||||
│ └── (protected)/ # 인증 필요
|
||||
│ ├── dashboard/ # 대시보드
|
||||
│ ├── items/ # 품목 관리
|
||||
│ ├── accounting/ # 회계
|
||||
│ ├── sales/ # 영업
|
||||
│ ├── hr/ # 인사
|
||||
│ ├── board/ # 게시판
|
||||
│ ├── settings/ # 설정
|
||||
│ └── ...
|
||||
```
|
||||
|
||||
## 메뉴 추출 포맷
|
||||
|
||||
| 메뉴명 | URL | 부모 | 순서 | 아이콘 | 권한 |
|
||||
|--------|-----|------|------|--------|------|
|
||||
| 대시보드 | /dashboard | - | 1 | dashboard | all |
|
||||
| 품목관리 | /items | - | 2 | box | items.view |
|
||||
| ... | ... | ... | ... | ... | ... |
|
||||
|
||||
## 산출물
|
||||
|
||||
- [x] `react-routes-analysis.md` - 라우트 상세 분석 (107개 페이지, 15개 도메인)
|
||||
- [x] `menu-list.md` - 최종 메뉴 리스트 (11개 대메뉴, 54개 중메뉴, 52개 권한)
|
||||
|
||||
## 작업 순서
|
||||
|
||||
1. React 라우터 파일 전체 스캔
|
||||
2. 페이지별 메타 정보 수집
|
||||
3. 메뉴 계층 구조 설계
|
||||
4. 권한 매핑 정의
|
||||
5. mng 등록용 SQL/JSON 생성
|
||||
|
||||
---
|
||||
|
||||
## 참고: 현재 메뉴 로드 방식
|
||||
|
||||
```typescript
|
||||
// 로그인 시 API에서 메뉴 로드
|
||||
POST /api/v1/login
|
||||
Response: {
|
||||
user: {...},
|
||||
menus: [...], // 권한 기반 메뉴
|
||||
roles: [...]
|
||||
}
|
||||
```
|
||||
|
||||
메뉴가 등록되지 않으면 해당 라우트 접근 불가.
|
||||
|
||||
---
|
||||
|
||||
*Phase 2 작업 시작 시 이 체크리스트를 업데이트하세요.*
|
||||
383
projects/api-integration/phase-2-menu-extraction/menu-list.md
Normal file
383
projects/api-integration/phase-2-menu-extraction/menu-list.md
Normal file
@@ -0,0 +1,383 @@
|
||||
# Menu List - React 기반 최종 메뉴 구조
|
||||
|
||||
> **생성일**: 2025-12-20
|
||||
> **기준**: React 라우트 기반 (React-First)
|
||||
|
||||
---
|
||||
|
||||
## 1. 메뉴 계층 구조
|
||||
|
||||
### 1.1 대시보드
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 1 | 대시보드 | /dashboard | layout-dashboard | - | 1 | all |
|
||||
|
||||
### 1.2 결재관리 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 100 | 결재관리 | /approval | file-check | - | 2 | approval.view |
|
||||
| 101 | 기안함 | /approval/draft | file-edit | 100 | 1 | approval.draft |
|
||||
| 102 | 결재함 | /approval/inbox | inbox | 100 | 2 | approval.approve |
|
||||
| 103 | 참조함 | /approval/reference | eye | 100 | 3 | approval.view |
|
||||
|
||||
### 1.3 게시판 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 200 | 게시판 | /board | layout-list | - | 3 | board.view |
|
||||
| 201 | 게시판 관리 | /board/board-management | settings | 200 | 1 | board.manage |
|
||||
|
||||
### 1.4 품목관리
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 300 | 품목관리 | /items | package | - | 4 | items.view |
|
||||
| 301 | 품목기준관리 | /master-data/item-master-data-management | database | 300 | 1 | items.master |
|
||||
|
||||
### 1.5 판매관리
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 400 | 판매관리 | /sales | briefcase | - | 5 | sales.view |
|
||||
| 401 | 거래처관리 | /sales/client-management-sales-admin | building-2 | 400 | 1 | sales.clients |
|
||||
| 402 | 견적관리 | /sales/quote-management | calculator | 400 | 2 | sales.quotes |
|
||||
| 403 | 단가관리 | /sales/pricing-management | dollar-sign | 400 | 3 | sales.pricing |
|
||||
|
||||
### 1.6 생산관리
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 500 | 생산관리 | /production | factory | - | 6 | production.view |
|
||||
| 501 | 스크린 생산 | /production/screen-production | package | 500 | 1 | production.screen |
|
||||
|
||||
### 1.7 회계관리
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 600 | 회계관리 | /accounting | calculator | - | 7 | accounting.view |
|
||||
| 601 | 거래처관리 | /accounting/vendors | building-2 | 600 | 1 | accounting.vendors |
|
||||
| 602 | 거래처원장 | /accounting/vendor-ledger | file-text | 600 | 2 | accounting.ledger |
|
||||
| 603 | 매출관리 | /accounting/sales | trending-up | 600 | 3 | accounting.sales |
|
||||
| 604 | 매입관리 | /accounting/purchase | trending-down | 600 | 4 | accounting.purchase |
|
||||
| 605 | 세금계산서 | /accounting/bills | receipt | 600 | 5 | accounting.bills |
|
||||
| 606 | 입금관리 | /accounting/deposits | arrow-down-circle | 600 | 6 | accounting.deposits |
|
||||
| 607 | 출금관리 | /accounting/withdrawals | arrow-up-circle | 600 | 7 | accounting.withdrawals |
|
||||
| 608 | 은행거래 | /accounting/bank-transactions | landmark | 600 | 8 | accounting.bank |
|
||||
| 609 | 카드거래 | /accounting/card-transactions | credit-card | 600 | 9 | accounting.card |
|
||||
| 610 | 미수금현황 | /accounting/receivables-status | alert-circle | 600 | 10 | accounting.receivables |
|
||||
| 611 | 예상비용 | /accounting/expected-expenses | clock | 600 | 11 | accounting.expenses |
|
||||
| 612 | 대손채권회수 | /accounting/bad-debt-collection | shield | 600 | 12 | accounting.baddebt |
|
||||
| 613 | 일일리포트 | /accounting/daily-report | file-bar-chart | 600 | 13 | accounting.report |
|
||||
| 614 | 결제내역 | /payment-history | history | 600 | 14 | accounting.payment |
|
||||
|
||||
### 1.8 인사관리 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 700 | 인사관리 | /hr | users | - | 8 | hr.view |
|
||||
| 701 | 직원관리 | /hr/employee-management | user | 700 | 1 | hr.employees |
|
||||
| 702 | 부서관리 | /hr/department-management | building | 700 | 2 | hr.departments |
|
||||
| 703 | 카드관리 | /hr/card-management | credit-card | 700 | 3 | hr.cards |
|
||||
| 704 | 근태현황 | /hr/attendance | clock | 700 | 4 | hr.attendance.view |
|
||||
| 705 | 근태관리 | /hr/attendance-management | calendar-check | 700 | 5 | hr.attendance.manage |
|
||||
| 706 | 급여관리 | /hr/salary-management | dollar-sign | 700 | 6 | hr.salary |
|
||||
| 707 | 휴가관리 | /hr/vacation-management | calendar | 700 | 7 | hr.vacation |
|
||||
|
||||
### 1.9 리포트 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 800 | 리포트 | /reports | bar-chart-3 | - | 9 | reports.view |
|
||||
| 801 | 종합분석 | /reports/comprehensive-analysis | pie-chart | 800 | 1 | reports.analysis |
|
||||
|
||||
### 1.10 고객센터 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 900 | 고객센터 | /customer-center | headphones | - | 10 | customer.view |
|
||||
| 901 | 공지사항 | /customer-center/notices | megaphone | 900 | 1 | customer.notices |
|
||||
| 902 | FAQ | /customer-center/faq | help-circle | 900 | 2 | customer.faq |
|
||||
| 903 | 문의하기 | /customer-center/inquiries | message-circle | 900 | 3 | customer.inquiries |
|
||||
| 904 | 이벤트 | /customer-center/events | calendar-star | 900 | 4 | customer.events |
|
||||
|
||||
### 1.11 설정 (신규)
|
||||
|
||||
| ID | 메뉴명 | URL | 아이콘 | 부모 | 순서 | 권한 |
|
||||
|----|--------|-----|--------|------|------|------|
|
||||
| 1000 | 설정 | /settings | settings | - | 11 | settings.view |
|
||||
| 1001 | 계정정보 | /settings/account-info | user | 1000 | 1 | settings.account |
|
||||
| 1002 | 계정관리 | /settings/accounts | users | 1000 | 2 | settings.accounts |
|
||||
| 1003 | 권한관리 | /settings/permissions | shield | 1000 | 3 | settings.permissions |
|
||||
| 1004 | 직급관리 | /settings/ranks | award | 1000 | 4 | settings.ranks |
|
||||
| 1005 | 직책관리 | /settings/titles | badge | 1000 | 5 | settings.titles |
|
||||
| 1006 | 근태설정 | /settings/attendance-settings | clock | 1000 | 6 | settings.attendance |
|
||||
| 1007 | 휴가정책 | /settings/leave-policy | calendar | 1000 | 7 | settings.leave |
|
||||
| 1008 | 근무일정 | /settings/work-schedule | calendar-days | 1000 | 8 | settings.schedule |
|
||||
| 1009 | 알림설정 | /settings/notification-settings | bell | 1000 | 9 | settings.notifications |
|
||||
| 1010 | 팝업관리 | /settings/popup-management | layout | 1000 | 10 | settings.popups |
|
||||
| 1011 | 회사정보 | /company-info | building | 1000 | 11 | settings.company |
|
||||
| 1012 | 구독관리 | /subscription | credit-card | 1000 | 12 | settings.subscription |
|
||||
|
||||
---
|
||||
|
||||
## 2. 권한 매핑 정의
|
||||
|
||||
### 2.1 권한 그룹
|
||||
|
||||
| 권한 그룹 | 설명 | 기본 권한 |
|
||||
|-----------|------|----------|
|
||||
| all | 모든 사용자 | 로그인 사용자 |
|
||||
| approval.* | 결재 관련 | 결재 담당자 |
|
||||
| board.* | 게시판 관련 | 일반 사용자 |
|
||||
| items.* | 품목 관련 | 생산/구매 담당 |
|
||||
| sales.* | 판매 관련 | 영업 담당 |
|
||||
| production.* | 생산 관련 | 생산 담당 |
|
||||
| accounting.* | 회계 관련 | 경리 담당 |
|
||||
| hr.* | 인사 관련 | 인사 담당 |
|
||||
| reports.* | 리포트 관련 | 관리자 |
|
||||
| customer.* | 고객센터 관련 | 일반 사용자 |
|
||||
| settings.* | 설정 관련 | 관리자 |
|
||||
|
||||
### 2.2 세부 권한
|
||||
|
||||
```
|
||||
approval.view - 결재 조회
|
||||
approval.draft - 기안 작성
|
||||
approval.approve - 결재 승인
|
||||
|
||||
board.view - 게시판 조회
|
||||
board.write - 게시글 작성
|
||||
board.manage - 게시판 관리
|
||||
|
||||
items.view - 품목 조회
|
||||
items.create - 품목 등록
|
||||
items.edit - 품목 수정
|
||||
items.delete - 품목 삭제
|
||||
items.master - 품목기준 관리
|
||||
|
||||
sales.view - 판매 조회
|
||||
sales.clients - 거래처 관리
|
||||
sales.quotes - 견적 관리
|
||||
sales.pricing - 단가 관리
|
||||
|
||||
production.view - 생산 조회
|
||||
production.screen - 스크린 생산
|
||||
|
||||
accounting.view - 회계 조회
|
||||
accounting.vendors - 거래처 관리
|
||||
accounting.ledger - 거래처원장
|
||||
accounting.sales - 매출 관리
|
||||
accounting.purchase - 매입 관리
|
||||
accounting.bills - 세금계산서
|
||||
accounting.deposits - 입금 관리
|
||||
accounting.withdrawals - 출금 관리
|
||||
accounting.bank - 은행거래
|
||||
accounting.card - 카드거래
|
||||
accounting.receivables - 미수금
|
||||
accounting.expenses - 예상비용
|
||||
accounting.baddebt - 대손채권
|
||||
accounting.report - 일일리포트
|
||||
accounting.payment - 결제내역
|
||||
|
||||
hr.view - 인사 조회
|
||||
hr.employees - 직원 관리
|
||||
hr.departments - 부서 관리
|
||||
hr.cards - 카드 관리
|
||||
hr.attendance.view - 근태 조회
|
||||
hr.attendance.manage - 근태 관리
|
||||
hr.salary - 급여 관리
|
||||
hr.vacation - 휴가 관리
|
||||
|
||||
reports.view - 리포트 조회
|
||||
reports.analysis - 종합분석
|
||||
|
||||
customer.view - 고객센터 조회
|
||||
customer.notices - 공지사항
|
||||
customer.faq - FAQ
|
||||
customer.inquiries - 문의
|
||||
customer.events - 이벤트
|
||||
|
||||
settings.view - 설정 조회
|
||||
settings.account - 계정정보
|
||||
settings.accounts - 계정관리
|
||||
settings.permissions - 권한관리
|
||||
settings.ranks - 직급관리
|
||||
settings.titles - 직책관리
|
||||
settings.attendance - 근태설정
|
||||
settings.leave - 휴가정책
|
||||
settings.schedule - 근무일정
|
||||
settings.notifications - 알림설정
|
||||
settings.popups - 팝업관리
|
||||
settings.company - 회사정보
|
||||
settings.subscription - 구독관리
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. mng 등록용 JSON
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "대시보드",
|
||||
"url": "/dashboard",
|
||||
"icon": "layout-dashboard",
|
||||
"sort_order": 1,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "결재관리",
|
||||
"url": "/approval",
|
||||
"icon": "file-check",
|
||||
"sort_order": 2,
|
||||
"children": [
|
||||
{"name": "기안함", "url": "/approval/draft", "icon": "file-edit", "sort_order": 1},
|
||||
{"name": "결재함", "url": "/approval/inbox", "icon": "inbox", "sort_order": 2},
|
||||
{"name": "참조함", "url": "/approval/reference", "icon": "eye", "sort_order": 3}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "게시판",
|
||||
"url": "/board",
|
||||
"icon": "layout-list",
|
||||
"sort_order": 3,
|
||||
"children": [
|
||||
{"name": "게시판 관리", "url": "/board/board-management", "icon": "settings", "sort_order": 1}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "품목관리",
|
||||
"url": "/items",
|
||||
"icon": "package",
|
||||
"sort_order": 4,
|
||||
"children": [
|
||||
{"name": "품목기준관리", "url": "/master-data/item-master-data-management", "icon": "database", "sort_order": 1}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "판매관리",
|
||||
"url": "/sales",
|
||||
"icon": "briefcase",
|
||||
"sort_order": 5,
|
||||
"children": [
|
||||
{"name": "거래처관리", "url": "/sales/client-management-sales-admin", "icon": "building-2", "sort_order": 1},
|
||||
{"name": "견적관리", "url": "/sales/quote-management", "icon": "calculator", "sort_order": 2},
|
||||
{"name": "단가관리", "url": "/sales/pricing-management", "icon": "dollar-sign", "sort_order": 3}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "생산관리",
|
||||
"url": "/production",
|
||||
"icon": "factory",
|
||||
"sort_order": 6,
|
||||
"children": [
|
||||
{"name": "스크린 생산", "url": "/production/screen-production", "icon": "package", "sort_order": 1}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "회계관리",
|
||||
"url": "/accounting",
|
||||
"icon": "calculator",
|
||||
"sort_order": 7,
|
||||
"children": [
|
||||
{"name": "거래처관리", "url": "/accounting/vendors", "icon": "building-2", "sort_order": 1},
|
||||
{"name": "거래처원장", "url": "/accounting/vendor-ledger", "icon": "file-text", "sort_order": 2},
|
||||
{"name": "매출관리", "url": "/accounting/sales", "icon": "trending-up", "sort_order": 3},
|
||||
{"name": "매입관리", "url": "/accounting/purchase", "icon": "trending-down", "sort_order": 4},
|
||||
{"name": "세금계산서", "url": "/accounting/bills", "icon": "receipt", "sort_order": 5},
|
||||
{"name": "입금관리", "url": "/accounting/deposits", "icon": "arrow-down-circle", "sort_order": 6},
|
||||
{"name": "출금관리", "url": "/accounting/withdrawals", "icon": "arrow-up-circle", "sort_order": 7},
|
||||
{"name": "은행거래", "url": "/accounting/bank-transactions", "icon": "landmark", "sort_order": 8},
|
||||
{"name": "카드거래", "url": "/accounting/card-transactions", "icon": "credit-card", "sort_order": 9},
|
||||
{"name": "미수금현황", "url": "/accounting/receivables-status", "icon": "alert-circle", "sort_order": 10},
|
||||
{"name": "예상비용", "url": "/accounting/expected-expenses", "icon": "clock", "sort_order": 11},
|
||||
{"name": "대손채권회수", "url": "/accounting/bad-debt-collection", "icon": "shield", "sort_order": 12},
|
||||
{"name": "일일리포트", "url": "/accounting/daily-report", "icon": "file-bar-chart", "sort_order": 13},
|
||||
{"name": "결제내역", "url": "/payment-history", "icon": "history", "sort_order": 14}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "인사관리",
|
||||
"url": "/hr",
|
||||
"icon": "users",
|
||||
"sort_order": 8,
|
||||
"children": [
|
||||
{"name": "직원관리", "url": "/hr/employee-management", "icon": "user", "sort_order": 1},
|
||||
{"name": "부서관리", "url": "/hr/department-management", "icon": "building", "sort_order": 2},
|
||||
{"name": "카드관리", "url": "/hr/card-management", "icon": "credit-card", "sort_order": 3},
|
||||
{"name": "근태현황", "url": "/hr/attendance", "icon": "clock", "sort_order": 4},
|
||||
{"name": "근태관리", "url": "/hr/attendance-management", "icon": "calendar-check", "sort_order": 5},
|
||||
{"name": "급여관리", "url": "/hr/salary-management", "icon": "dollar-sign", "sort_order": 6},
|
||||
{"name": "휴가관리", "url": "/hr/vacation-management", "icon": "calendar", "sort_order": 7}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "리포트",
|
||||
"url": "/reports",
|
||||
"icon": "bar-chart-3",
|
||||
"sort_order": 9,
|
||||
"children": [
|
||||
{"name": "종합분석", "url": "/reports/comprehensive-analysis", "icon": "pie-chart", "sort_order": 1}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "고객센터",
|
||||
"url": "/customer-center",
|
||||
"icon": "headphones",
|
||||
"sort_order": 10,
|
||||
"children": [
|
||||
{"name": "공지사항", "url": "/customer-center/notices", "icon": "megaphone", "sort_order": 1},
|
||||
{"name": "FAQ", "url": "/customer-center/faq", "icon": "help-circle", "sort_order": 2},
|
||||
{"name": "문의하기", "url": "/customer-center/inquiries", "icon": "message-circle", "sort_order": 3},
|
||||
{"name": "이벤트", "url": "/customer-center/events", "icon": "calendar", "sort_order": 4}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "설정",
|
||||
"url": "/settings",
|
||||
"icon": "settings",
|
||||
"sort_order": 11,
|
||||
"children": [
|
||||
{"name": "계정정보", "url": "/settings/account-info", "icon": "user", "sort_order": 1},
|
||||
{"name": "계정관리", "url": "/settings/accounts", "icon": "users", "sort_order": 2},
|
||||
{"name": "권한관리", "url": "/settings/permissions", "icon": "shield", "sort_order": 3},
|
||||
{"name": "직급관리", "url": "/settings/ranks", "icon": "award", "sort_order": 4},
|
||||
{"name": "직책관리", "url": "/settings/titles", "icon": "badge", "sort_order": 5},
|
||||
{"name": "근태설정", "url": "/settings/attendance-settings", "icon": "clock", "sort_order": 6},
|
||||
{"name": "휴가정책", "url": "/settings/leave-policy", "icon": "calendar", "sort_order": 7},
|
||||
{"name": "근무일정", "url": "/settings/work-schedule", "icon": "calendar-days", "sort_order": 8},
|
||||
{"name": "알림설정", "url": "/settings/notification-settings", "icon": "bell", "sort_order": 9},
|
||||
{"name": "팝업관리", "url": "/settings/popup-management", "icon": "layout", "sort_order": 10},
|
||||
{"name": "회사정보", "url": "/company-info", "icon": "building", "sort_order": 11},
|
||||
{"name": "구독관리", "url": "/subscription", "icon": "credit-card", "sort_order": 12}
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 통계 요약
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 대메뉴 | 11개 |
|
||||
| 중메뉴 | 54개 |
|
||||
| 총 메뉴 | 65개 |
|
||||
| 권한 그룹 | 11개 |
|
||||
| 세부 권한 | 52개 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 다음 단계
|
||||
|
||||
1. **GlobalMenuTemplateSeeder 업데이트**: JSON 데이터로 seeder 작성
|
||||
2. **권한 테이블 업데이트**: permissions 테이블에 새 권한 추가
|
||||
3. **React menuTransform.ts 업데이트**: 새 아이콘 매핑 추가
|
||||
4. **테스트**: 메뉴 렌더링 및 권한 검증
|
||||
|
||||
---
|
||||
|
||||
*이 문서는 Phase 2 최종 산출물입니다.*
|
||||
@@ -0,0 +1,300 @@
|
||||
# React Routes Analysis
|
||||
|
||||
> **생성일**: 2025-12-20
|
||||
> **분석 대상**: react/src/app/[locale]/
|
||||
|
||||
---
|
||||
|
||||
## 1. 라우트 구조 개요
|
||||
|
||||
### 1.1 전체 통계
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 총 페이지 수 | 107개 |
|
||||
| 인증 필요 페이지 | 104개 ((protected) 그룹) |
|
||||
| 공개 페이지 | 3개 (login, signup, root) |
|
||||
| 주요 도메인 | 15개 |
|
||||
|
||||
### 1.2 라우트 그룹 분류
|
||||
|
||||
```
|
||||
react/src/app/[locale]/
|
||||
├── page.tsx # 루트 (→ /dashboard 리다이렉트)
|
||||
├── login/page.tsx # 로그인
|
||||
├── signup/page.tsx # 회원가입
|
||||
└── (protected)/ # 인증 필요 영역
|
||||
├── dashboard/ # 대시보드
|
||||
├── accounting/ # 회계 (17개 페이지)
|
||||
├── approval/ # 결재 (4개 페이지)
|
||||
├── board/ # 게시판 (8개 페이지)
|
||||
├── company-info/ # 회사정보 (1개 페이지)
|
||||
├── customer-center/ # 고객센터 (10개 페이지)
|
||||
├── dev/ # 개발자 (1개 페이지)
|
||||
├── hr/ # 인사 (15개 페이지)
|
||||
├── items/ # 품목관리 (4개 페이지)
|
||||
├── master-data/ # 마스터데이터 (1개 페이지)
|
||||
├── payment-history/ # 결제내역 (1개 페이지)
|
||||
├── production/ # 생산 (4개 페이지)
|
||||
├── reports/ # 리포트 (2개 페이지)
|
||||
├── sales/ # 영업 (12개 페이지)
|
||||
├── settings/ # 설정 (17개 페이지)
|
||||
├── subscription/ # 구독 (1개 페이지)
|
||||
└── [...slug]/ # 동적 라우트 (Catch-all)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 도메인별 라우트 상세
|
||||
|
||||
### 2.1 Dashboard (대시보드)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /dashboard | 대시보드 | 목록 |
|
||||
|
||||
### 2.2 Accounting (회계관리)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /accounting/bad-debt-collection | 대손채권회수 목록 | 목록 |
|
||||
| /accounting/bad-debt-collection/new | 대손채권회수 등록 | 등록 |
|
||||
| /accounting/bad-debt-collection/[id] | 대손채권회수 상세 | 상세 |
|
||||
| /accounting/bad-debt-collection/[id]/edit | 대손채권회수 수정 | 수정 |
|
||||
| /accounting/bank-transactions | 은행거래 | 목록 |
|
||||
| /accounting/bills | 세금계산서 목록 | 목록 |
|
||||
| /accounting/bills/new | 세금계산서 등록 | 등록 |
|
||||
| /accounting/bills/[id] | 세금계산서 상세 | 상세 |
|
||||
| /accounting/card-transactions | 카드거래 | 목록 |
|
||||
| /accounting/daily-report | 일일리포트 | 목록 |
|
||||
| /accounting/deposits | 입금 목록 | 목록 |
|
||||
| /accounting/deposits/[id] | 입금 상세 | 상세 |
|
||||
| /accounting/expected-expenses | 예상비용 | 목록 |
|
||||
| /accounting/purchase | 매입 목록 | 목록 |
|
||||
| /accounting/purchase/[id] | 매입 상세 | 상세 |
|
||||
| /accounting/receivables-status | 미수금현황 | 목록 |
|
||||
| /accounting/sales | 매출 목록 | 목록 |
|
||||
| /accounting/sales/new | 매출 등록 | 등록 |
|
||||
| /accounting/sales/[id] | 매출 상세 | 상세 |
|
||||
| /accounting/vendor-ledger | 거래처원장 목록 | 목록 |
|
||||
| /accounting/vendor-ledger/[id] | 거래처원장 상세 | 상세 |
|
||||
| /accounting/vendors | 거래처 목록 | 목록 |
|
||||
| /accounting/vendors/new | 거래처 등록 | 등록 |
|
||||
| /accounting/vendors/[id] | 거래처 상세 | 상세 |
|
||||
| /accounting/withdrawals | 출금 목록 | 목록 |
|
||||
| /accounting/withdrawals/[id] | 출금 상세 | 상세 |
|
||||
|
||||
### 2.3 Approval (결재)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /approval/draft | 기안함 | 목록 |
|
||||
| /approval/draft/new | 기안 작성 | 등록 |
|
||||
| /approval/inbox | 결재함 | 목록 |
|
||||
| /approval/reference | 참조함 | 목록 |
|
||||
|
||||
### 2.4 Board (게시판)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /board | 게시판 목록 | 목록 |
|
||||
| /board/create | 게시글 작성 | 등록 |
|
||||
| /board/[id] | 게시글 상세 | 상세 |
|
||||
| /board/[id]/edit | 게시글 수정 | 수정 |
|
||||
| /board/board-management | 게시판 관리 | 목록 |
|
||||
| /board/board-management/new | 게시판 생성 | 등록 |
|
||||
| /board/board-management/[id] | 게시판 설정 상세 | 상세 |
|
||||
| /board/board-management/[id]/edit | 게시판 설정 수정 | 수정 |
|
||||
|
||||
### 2.5 Customer Center (고객센터)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /customer-center/events | 이벤트 목록 | 목록 |
|
||||
| /customer-center/events/[id] | 이벤트 상세 | 상세 |
|
||||
| /customer-center/faq | FAQ | 목록 |
|
||||
| /customer-center/inquiries | 문의 목록 | 목록 |
|
||||
| /customer-center/inquiries/create | 문의 등록 | 등록 |
|
||||
| /customer-center/inquiries/[id] | 문의 상세 | 상세 |
|
||||
| /customer-center/inquiries/[id]/edit | 문의 수정 | 수정 |
|
||||
| /customer-center/notices | 공지사항 목록 | 목록 |
|
||||
| /customer-center/notices/[id] | 공지사항 상세 | 상세 |
|
||||
|
||||
### 2.6 HR (인사관리)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /hr/attendance | 근태현황 | 목록 |
|
||||
| /hr/attendance-management | 근태관리 | 목록 |
|
||||
| /hr/card-management | 카드관리 목록 | 목록 |
|
||||
| /hr/card-management/new | 카드 등록 | 등록 |
|
||||
| /hr/card-management/[id] | 카드 상세 | 상세 |
|
||||
| /hr/card-management/[id]/edit | 카드 수정 | 수정 |
|
||||
| /hr/department-management | 부서관리 | 목록 |
|
||||
| /hr/employee-management | 직원관리 목록 | 목록 |
|
||||
| /hr/employee-management/new | 직원 등록 | 등록 |
|
||||
| /hr/employee-management/csv-upload | CSV 업로드 | 등록 |
|
||||
| /hr/employee-management/[id] | 직원 상세 | 상세 |
|
||||
| /hr/employee-management/[id]/edit | 직원 수정 | 수정 |
|
||||
| /hr/salary-management | 급여관리 | 목록 |
|
||||
| /hr/vacation-management | 휴가관리 | 목록 |
|
||||
|
||||
### 2.7 Items (품목관리)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /items | 품목 목록 | 목록 |
|
||||
| /items/create | 품목 등록 | 등록 |
|
||||
| /items/[id] | 품목 상세 | 상세 |
|
||||
| /items/[id]/edit | 품목 수정 | 수정 |
|
||||
|
||||
### 2.8 Production (생산관리)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /production/screen-production | 스크린 생산 목록 | 목록 |
|
||||
| /production/screen-production/create | 스크린 생산 등록 | 등록 |
|
||||
| /production/screen-production/[id] | 스크린 생산 상세 | 상세 |
|
||||
| /production/screen-production/[id]/edit | 스크린 생산 수정 | 수정 |
|
||||
|
||||
### 2.9 Reports (리포트)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /reports | 리포트 | 목록 |
|
||||
| /reports/comprehensive-analysis | 종합분석 | 상세 |
|
||||
|
||||
### 2.10 Sales (판매관리)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /sales/client-management-sales-admin | 거래처관리 목록 | 목록 |
|
||||
| /sales/client-management-sales-admin/new | 거래처 등록 | 등록 |
|
||||
| /sales/client-management-sales-admin/[id] | 거래처 상세 | 상세 |
|
||||
| /sales/client-management-sales-admin/[id]/edit | 거래처 수정 | 수정 |
|
||||
| /sales/pricing-management | 단가관리 목록 | 목록 |
|
||||
| /sales/pricing-management/create | 단가 등록 | 등록 |
|
||||
| /sales/pricing-management/[id]/edit | 단가 수정 | 수정 |
|
||||
| /sales/quote-management | 견적관리 목록 | 목록 |
|
||||
| /sales/quote-management/new | 견적 등록 | 등록 |
|
||||
| /sales/quote-management/[id] | 견적 상세 | 상세 |
|
||||
| /sales/quote-management/[id]/edit | 견적 수정 | 수정 |
|
||||
|
||||
### 2.11 Settings (설정)
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /settings/account-info | 계정정보 | 상세 |
|
||||
| /settings/accounts | 계정 목록 | 목록 |
|
||||
| /settings/accounts/new | 계정 등록 | 등록 |
|
||||
| /settings/accounts/[id] | 계정 상세 | 상세 |
|
||||
| /settings/attendance-settings | 근태설정 | 상세 |
|
||||
| /settings/leave-policy | 휴가정책 | 상세 |
|
||||
| /settings/notification-settings | 알림설정 | 상세 |
|
||||
| /settings/permissions | 권한관리 목록 | 목록 |
|
||||
| /settings/permissions/new | 권한 등록 | 등록 |
|
||||
| /settings/permissions/[id] | 권한 상세 | 상세 |
|
||||
| /settings/popup-management | 팝업관리 목록 | 목록 |
|
||||
| /settings/popup-management/new | 팝업 등록 | 등록 |
|
||||
| /settings/popup-management/[id] | 팝업 상세 | 상세 |
|
||||
| /settings/popup-management/[id]/edit | 팝업 수정 | 수정 |
|
||||
| /settings/ranks | 직급관리 | 목록 |
|
||||
| /settings/titles | 직책관리 | 목록 |
|
||||
| /settings/work-schedule | 근무일정 | 상세 |
|
||||
|
||||
### 2.12 기타
|
||||
|
||||
| 라우트 | 설명 | 타입 |
|
||||
|--------|------|------|
|
||||
| /company-info | 회사정보 | 상세 |
|
||||
| /master-data/item-master-data-management | 품목기준관리 | 목록 |
|
||||
| /payment-history | 결제내역 | 목록 |
|
||||
| /subscription | 구독관리 | 상세 |
|
||||
| /dev/test-urls | 개발자 테스트 | 개발 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 글로벌 메뉴 vs React 라우트 Gap 분석
|
||||
|
||||
### 3.1 React에만 존재하는 라우트 (GlobalMenu 등록 필요)
|
||||
|
||||
| React 라우트 | 제안 메뉴명 | 부모 메뉴 |
|
||||
|--------------|------------|----------|
|
||||
| /approval/* | 결재관리 | 신규 대메뉴 |
|
||||
| /board/* | 게시판 | 신규 대메뉴 |
|
||||
| /customer-center/* | 고객센터 | 신규 대메뉴 |
|
||||
| /hr/* | 인사관리 | 신규 대메뉴 |
|
||||
| /items/* | 품목관리 | 기준정보 관리 |
|
||||
| /settings/* | 설정 | 신규 대메뉴 |
|
||||
| /subscription | 구독관리 | 설정 |
|
||||
| /company-info | 회사정보 | 설정 |
|
||||
| /payment-history | 결제내역 | 회계관리 |
|
||||
| /reports/* | 리포트 | 신규 대메뉴 |
|
||||
|
||||
### 3.2 GlobalMenu에만 존재 (React 미구현)
|
||||
|
||||
| 글로벌 메뉴 | URL | 상태 |
|
||||
|-------------|-----|------|
|
||||
| 리드관리 | /sales-dept/sales-leads | React 미구현 |
|
||||
| 매출처관리 | /sales-dept/customer-account-management | React 미구현 |
|
||||
| 영업실적 | /sales-dept/sales-performance | React 미구현 |
|
||||
| 수주관리 | /sales/order-management-sales | React 미구현 |
|
||||
| 현장관리 | /sales/site-management | React 미구현 |
|
||||
| 구매관리 전체 | /purchase/* | React 미구현 |
|
||||
| 품질관리 전체 | /quality/* | React 미구현 |
|
||||
| 자재관리 전체 | /material/* | React 미구현 |
|
||||
| 장비관리 전체 | /equipment/* | React 미구현 |
|
||||
| 차량관리 전체 | /vehicle/* | React 미구현 |
|
||||
|
||||
### 3.3 URL 불일치 (수정 필요)
|
||||
|
||||
| React 라우트 | GlobalMenu URL | 제안 |
|
||||
|--------------|----------------|------|
|
||||
| /accounting/vendors | /accounting/client-management | React 기준 사용 |
|
||||
| /accounting/sales | /accounting/sales-accounting | React 기준 사용 |
|
||||
| /accounting/purchase | /accounting/purchase-accounting | React 기준 사용 |
|
||||
| /hr/employee-management | /master-data/employee-management | React 기준 사용 |
|
||||
| /hr/department-management | /master-data/department-management | React 기준 사용 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 메뉴 재구조화 제안
|
||||
|
||||
### 4.1 신규 대메뉴 구조
|
||||
|
||||
```
|
||||
1. 대시보드 (dashboard)
|
||||
2. 결재관리 (approval) - 신규
|
||||
3. 게시판 (board) - 신규
|
||||
4. 품목관리 (items) - 기존 master-data에서 분리
|
||||
5. 판매관리 (sales)
|
||||
6. 생산관리 (production)
|
||||
7. 회계관리 (accounting)
|
||||
8. 인사관리 (hr) - 신규
|
||||
9. 리포트 (reports) - 신규
|
||||
10. 고객센터 (customer-center) - 신규
|
||||
11. 설정 (settings) - 신규
|
||||
```
|
||||
|
||||
### 4.2 아이콘 매핑
|
||||
|
||||
| 메뉴 | Lucide 아이콘 |
|
||||
|------|---------------|
|
||||
| 결재관리 | file-check |
|
||||
| 게시판 | layout-list |
|
||||
| 인사관리 | users |
|
||||
| 리포트 | bar-chart-3 |
|
||||
| 고객센터 | headphones |
|
||||
| 설정 | settings |
|
||||
|
||||
---
|
||||
|
||||
## 5. 다음 단계
|
||||
|
||||
1. **menu-list.md 작성**: 최종 메뉴 리스트 정리
|
||||
2. **mng 등록**: GlobalMenu seeder 업데이트
|
||||
3. **권한 매핑**: 각 메뉴별 필요 권한 정의
|
||||
|
||||
---
|
||||
|
||||
*이 문서는 Phase 2 분석 결과입니다.*
|
||||
Reference in New Issue
Block a user