Files
sam-react-prod/claudedocs/archive/sessions/[NEXT-2025-12-09] item-crud-session-context.md
유병철 07374c826c refactor(WEB): claudedocs 재정리 및 AuthContext/Zustand/유틸 코드 개선
- 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>
2026-02-23 17:17:13 +09:00

3.1 KiB

품목관리 세션 체크포인트

작성일: 2025-12-09 수정일: 2025-12-09 상태: Phase 1 완료!


🎉 2025-12-09 완료 사항

백엔드 작업 완료

항목 상태
field_key 저장 방식 변경 (98_unitunit) 완료
시스템 예약어 검증 (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