- Phase 1: 신규 훅 4개 생성 - useInitialDataLoading.ts (초기 데이터 로딩) - useImportManagement.ts (섹션/필드 Import) - useReorderManagement.ts (드래그앤드롭 순서 변경) - useDeleteManagement.ts (삭제/언링크 핸들러) - Phase 2: UI 컴포넌트 2개 생성 - AttributeTabContent.tsx (속성 탭 콘텐츠) - ItemMasterDialogs.tsx (다이얼로그 통합) - 메인 컴포넌트 1,799줄 → ~1,478줄 (약 320줄 감소) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.9 KiB
4.9 KiB
품목기준관리 리팩토링 세션 컨텍스트
브랜치:
feature/item-master-zustand날짜: 2025-12-24 상태: Phase 2 완료, 커밋 대기
세션 요약 (12차 세션)
완료된 작업
- 브랜치 상태 확인 (
feature/item-master-zustand) - 기존 작업 혼동 정리 (품목관리 CRUD vs 품목기준관리 설정)
- 작업 대상 파일 확인 (
ItemMasterDataManagement.tsx- 1,799줄) - 기존 훅 분리 상태 파악 (7개 훅 이미 존재)
ItemMasterDataManagement.tsx상세 분석 완료- 훅 분리 계획서 작성 (
[PLAN-2025-12-24] hook-extraction-plan.md) - Phase 1: 신규 훅 4개 생성
useInitialDataLoading.ts- 초기 데이터 로딩 (~130줄)useImportManagement.ts- 섹션/필드 Import (~100줄)useReorderManagement.ts- 드래그앤드롭 순서 변경 (~80줄)useDeleteManagement.ts- 삭제/언링크 핸들러 (~100줄)
- Phase 2: UI 컴포넌트 2개 생성
AttributeTabContent.tsx- 속성 탭 콘텐츠 (~340줄)ItemMasterDialogs.tsx- 다이얼로그 통합 (~540줄)
- 빌드 테스트 통과
현재 상태
- 메인 컴포넌트: 1,799줄 → ~1,478줄 (약 320줄 감소)
- 신규 훅: 4개 생성 및 통합
- 신규 UI 컴포넌트: 2개 생성 (향후 추가 통합 가능)
- 빌드: 통과
다음 TODO (커밋 후)
- Git 커밋 (Phase 1, 2 변경사항)
- Phase 3: 추가 코드 정리 (선택적)
- 속성 탭 내용을
AttributeTabContent로 완전 대체 (추가 ~500줄 감소 가능) - 다이얼로그들을
ItemMasterDialogs로 완전 대체
- 속성 탭 내용을
- Zustand 도입 (3방향 동기화 문제 해결)
핵심 정보
페이지 구분 (중요!)
| 페이지 | URL | 컴포넌트 | 상태 |
|---|---|---|---|
| 품목관리 CRUD | /items/ |
DynamicItemForm |
✅ 훅 분리 완료 (master 적용됨) |
| 품목기준관리 설정 | /master-data/item-master-data-management |
ItemMasterDataManagement |
⏳ 훅 분리 진행 중 |
현재 파일 구조
src/components/items/ItemMasterDataManagement/
├── ItemMasterDataManagement.tsx ← ~1,478줄 (리팩토링 후)
├── hooks/ (11개 - 7개 기존 + 4개 신규)
│ ├── usePageManagement.ts
│ ├── useSectionManagement.ts
│ ├── useFieldManagement.ts
│ ├── useMasterFieldManagement.ts
│ ├── useTemplateManagement.ts
│ ├── useAttributeManagement.ts
│ ├── useTabManagement.ts
│ ├── useInitialDataLoading.ts ← NEW
│ ├── useImportManagement.ts ← NEW
│ ├── useReorderManagement.ts ← NEW
│ └── useDeleteManagement.ts ← NEW
├── components/ (5개 - 3개 기존 + 2개 신규)
│ ├── DraggableSection.tsx
│ ├── DraggableField.tsx
│ ├── ConditionalDisplayUI.tsx
│ ├── AttributeTabContent.tsx ← NEW
│ └── ItemMasterDialogs.tsx ← NEW
├── services/ (6개)
├── dialogs/ (13개)
├── tabs/ (4개)
└── utils/ (1개)
브랜치 상태
master (원본 보존)
│
└── feature/item-master-zustand (현재)
├── Zustand 테스트 페이지 (/items-management-test/) - 놔둠
├── Zustand 스토어 (stores/item-master/) - 나중에 사용
└── 기존 품목기준관리 페이지 - 훅 분리 진행 중
작업 진행률
시작: ItemMasterDataManagement.tsx 1,799줄
↓ Phase 1: 훅 분리 (4개 신규 훅)
현재: ~1,478줄 (-321줄, -18%)
↓ Phase 2: UI 컴포넌트 분리 (2개 신규 컴포넌트 생성)
↓ Phase 3: 추가 통합 (선택적)
목표: ~500줄 (메인 컴포넌트)
↓ Zustand 적용
최종: 3방향 동기화 문제 해결
생성된 파일 목록
신규 훅 (Phase 1)
hooks/useInitialDataLoading.ts- 초기 데이터 로딩, 에러 처리hooks/useImportManagement.ts- 섹션/필드 Import 다이얼로그 상태 및 핸들러hooks/useReorderManagement.ts- 드래그앤드롭 순서 변경hooks/useDeleteManagement.ts- 삭제, 언링크, 초기화 핸들러
신규 UI 컴포넌트 (Phase 2)
components/AttributeTabContent.tsx- 속성 탭 전체 UIcomponents/ItemMasterDialogs.tsx- 모든 다이얼로그 통합 렌더링
참고 문서
[PLAN-2025-12-24] hook-extraction-plan.md- 훅 분리 계획서 (상세)[DESIGN-2025-12-20] item-master-zustand-refactoring.md- Zustand 설계서[IMPL-2025-12-24] item-master-test-and-zustand.md- 테스트 체크리스트
다음 세션 시작 명령
품목기준관리 설정 페이지(ItemMasterDataManagement.tsx) 추가 리팩토링 또는 Zustand 도입 진행해줘.
[NEXT-2025-12-24] item-master-refactoring-session.md 문서 확인하고 시작해.