- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류 - 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제) - AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화 - GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가 - PermissionDialog 삭제 → GenericCRUDDialog로 대체 - RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링 - toast-utils.ts 삭제 (미사용) - fileDownload.ts 개선, excel-download.ts 정리 - menuStore/themeStore Zustand 셀렉터 최적화 - useColumnSettings/useTableColumnStore 기능 보강 - 세금계산서/견적/작업자화면/결재 등 소규모 개선 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
품목관리 세션 체크포인트
작성일: 2025-12-09 수정일: 2025-12-09 상태: ✅ Phase 1 완료!
🎉 2025-12-09 완료 사항
백엔드 작업 완료
| 항목 | 상태 |
|---|---|
field_key 저장 방식 변경 (98_unit → unit) |
✅ 완료 |
시스템 예약어 검증 (SystemFields.php) |
✅ 완료 |
| 중복 검증 로직 | ✅ 완료 |
| 에러 메시지 한국어화 | ✅ 완료 |
프론트엔드 정리 완료
| 항목 | 삭제된 코드 | 상태 |
|---|---|---|
| Edit 모드 매핑 로직 | ~140줄 | ✅ 완료 |
fieldAliases 객체 |
25줄 | ✅ 완료 |
extractFieldName() 함수 |
7줄 | ✅ 완료 |
fieldKeyMap 생성 로직 |
25줄 | ✅ 완료 |
fieldKeyToBackendKey 변환 |
60줄 | ✅ 완료 |
| 총 삭제 | ~200줄 | ✅ |
빌드 검증
npm run build # ✅ 성공
📋 새로운 데이터 흐름
field_key 통일 완료
등록: { "unit": "EA" } → 그대로 저장
조회: DB → { "unit": "EA" } → 그대로 표시
수정: { "unit": "EA" } → 그대로 저장
※ 기존 레거시 데이터 (98_unit 형식)도 그대로 동작
코드 변경 요약
Before (복잡한 매핑):
// Edit 모드: 155줄 매핑 로직
const fieldAliases = { 'unit': '단위', ... };
const extractFieldName = (key) => { ... };
const fieldKeyMap = { ... };
// 여러 단계 변환...
After (직접 사용):
// Edit 모드: 15줄
useEffect(() => {
if (mode !== 'edit' || !structure || !initialData || isEditDataMapped) return;
resetForm(initialData); // 직접 사용!
setIsEditDataMapped(true);
}, [mode, structure, initialData, isEditDataMapped, resetForm]);
⏳ 남은 작업
파일 업로드 500 에러 (검수 중)
위치: /app/Http/Controllers/Api/V1/ItemsFileController.php (Line 7)
문제: use App\Http\Responses\ApiResponse (잘못된 경로)
수정: use App\Helpers\ApiResponse (올바른 경로)
Phase 2: 컴포넌트 분리 (선택적)
계획 문서: [PLAN-2025-12-08] dynamic-form-separation-plan.md
- 공통 컴포넌트 추출 (FileUpload, BOM, AutoItemCode)
- 품목별 컴포넌트 생성 (FG, PT, SM, RM, CS)
- DynamicFormCore 리팩토링
📋 테스트 체크리스트
등록 테스트
- FG(제품) 등록
- PT-조립부품 등록
- PT-절곡부품 등록
- SM/RM/CS 등록
수정 테스트
- 수정 페이지 진입 → 데이터 로드 확인
- 드롭다운 값 표시 확인
- 수정 후 저장 → 값 유지 확인
파일 업로드 테스트
- 절곡부품 전개도 업로드
- 조립부품 전개도 업로드
- 제품 시방서/인정서 업로드
📚 관련 문서
| 문서 | 위치 |
|---|---|
| DynamicForm 분리 계획 | [PLAN-2025-12-08] dynamic-form-separation-plan.md |
| Radix UI 버그 해결 | claudedocs/guides/[FIX-2025-12-05] radix-ui-select-controlled-mode-bug.md |
| 백엔드 field_key 검증 스펙 | sam-api/docs/specs/item-master-field-key-validation.md |