- 루트 문서 30개를 도메인별 하위 폴더로 이동 - accounting/, architecture/, dev/, guides/, security/ 등 카테고리 분류 - archive/ 폴더에 QA 스크린샷 이동 - _index.md 문서 맵 업데이트 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
품목관리 경로 통합 이슈 정리
작성일: 2026-01-20 브랜치:
feature/universal-detail-component커밋:6f457b2
문제 발견
증상
/production/screen-production경로에서 품목 등록 실패/production/screen-production경로에서 품목 수정 시 기존 값 미표시
원인 분석
중복 경로 존재:
/items → 신버전 (DynamicItemForm)
/production/screen-production → 구버전 (ItemForm)
백엔드 메뉴 설정:
- 사이드바 "생산관리 > 품목관리" 클릭 시 →
/production/screen-production으로 연결 - 메뉴 URL이 API에서 동적으로 관리되어 프론트에서 직접 변경 불가
결과:
- 사용자는 항상
/production/screen-production(구버전 폼)으로 접속 - 구버전
ItemForm은 API 필드 매핑이 맞지 않아 등록/수정 오류 발생 - 신버전
DynamicItemForm(/items)은 정상 작동하지만 접근 경로 없음
파일 비교
등록 페이지 (create/page.tsx)
| 항목 | /items/create |
/production/screen-production/create |
|---|---|---|
| 폼 컴포넌트 | DynamicItemForm |
ItemForm |
| 폼 타입 | 동적 (품목기준관리 API) | 정적 (하드코딩) |
| API 매핑 | 정상 | 불일치 |
| 상태 | ✅ 정상 작동 | ❌ 등록 오류 |
목록/상세 페이지
| 항목 | /items |
/production/screen-production |
|---|---|---|
| 목록 | ItemListClient |
ItemListClient |
| 상세 | ItemDetailView |
ItemDetailView |
| 수정 | ItemDetailEdit |
ItemDetailEdit |
| 상태 | 동일 컴포넌트 공유 | 동일 컴포넌트 공유 |
결론: 목록/상세/수정은 같은 컴포넌트를 공유하지만, 등록만 다른 폼이 연결되어 있었음
해결 방법
선택지
-
백엔드 메뉴 URL 변경:
/production/screen-production→/items- 백엔드 DB 수정 필요
- 프론트 단독 작업 불가
-
프론트 경로 통합:
/items파일들을/production/screen-production으로 이동 ✅- 백엔드 수정 불필요
- 프론트 단독으로 해결 가능
적용한 해결책
/items → /production/screen-production 파일 이동 및 통합
# 1. 기존 screen-production 삭제
rm -rf src/app/[locale]/(protected)/production/screen-production
# 2. items 파일들을 screen-production으로 복사
cp -r src/app/[locale]/(protected)/items/* \
src/app/[locale]/(protected)/production/screen-production/
# 3. items 폴더 삭제
rm -rf src/app/[locale]/(protected)/items
수정된 파일
라우트 파일 (삭제)
src/app/[locale]/(protected)/items/page.tsxsrc/app/[locale]/(protected)/items/create/page.tsxsrc/app/[locale]/(protected)/items/[id]/page.tsxsrc/app/[locale]/(protected)/items/[id]/edit/page.tsx
라우트 파일 (신버전으로 교체)
src/app/[locale]/(protected)/production/screen-production/page.tsxsrc/app/[locale]/(protected)/production/screen-production/create/page.tsxsrc/app/[locale]/(protected)/production/screen-production/[id]/page.tsxsrc/app/[locale]/(protected)/production/screen-production/[id]/edit/page.tsx
컴포넌트 경로 참조 수정 (/items → /production/screen-production)
| 파일 | 수정 개수 |
|---|---|
ItemListClient.tsx |
3개 |
ItemForm/index.tsx |
1개 |
ItemDetailClient.tsx |
1개 |
ItemDetailEdit.tsx |
2개 |
DynamicItemForm/index.tsx |
2개 |
| 합계 | 9개 |
교훈
문제 원인
- 템플릿/테스트용 페이지에 메뉴를 연결한 채로 방치
- 신버전 개발 시 구버전 경로 정리 누락
- 두 경로가 같은 컴포넌트 일부를 공유해서 문제 파악 지연
예방책
- 신버전 개발 완료 시 구버전 경로 즉시 삭제 또는 리다이렉트 처리
- 메뉴 URL과 실제 라우트 파일 매핑 정기 점검
- 중복 경로 생성 시 명확한 용도 구분 및 문서화
최종 상태
/production/screen-production → DynamicItemForm (신버전)
/items → 삭제됨
품목관리 CRUD 테스트 결과:
| 품목 유형 | Create | Read | Update | Delete |
|---|---|---|---|---|
| 소모품(CS) | ✅ | ✅ | ✅ | ✅ |
| 원자재(RM) | ✅ | ✅ | ✅ | ✅ |
| 부자재(SM) | ✅ | ✅ | ✅ | ✅ |
| 부품-구매(PT) | ✅ | ✅ | ✅ | ✅ |
| 부품-절곡(PT) | ✅ | ✅ | ✅ | ✅ |
| 부품-조립(PT) | ✅ | ✅ | ✅ | ✅ |
| 제품(FG) | ✅ | ✅ | ✅ | ✅ |