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