# 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 작업 시작 시 이 체크리스트를 업데이트하세요.*