Files
sam-react-prod/claudedocs/archive/[REF-2025-11-18] unused-files-report.md
byeongcheolryu 65a8510c0b fix: 품목기준관리 실시간 동기화 수정
- BOM 항목 추가/수정/삭제 시 섹션탭 즉시 반영
- 섹션 복제 시 UI 즉시 업데이트 (null vs undefined 이슈 해결)
- 항목 수정 기능 추가 (useTemplateManagement)
- 실시간 동기화 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 22:19:50 +09:00

7.7 KiB

미사용 파일 분석 보고서

📊 요약

총 미사용 파일: 51개

  • Context 파일: 8개 (전혀 사용 안함)
  • Active 컴포넌트: 1개 (BOMManager.tsx)
  • 부분 사용: 1개 (DeveloperModeContext.tsx)
  • 이미 정리됨: 42개 (components/_unused/)

🔴 완전 미사용 파일 (삭제 권장)

Context 파일 (8개)

모두 RootProvider.tsx에만 포함되어 있고, 실제 페이지/컴포넌트에서는 전혀 사용되지 않음

파일명 경로 사용처 상태
FacilitiesContext.tsx src/contexts/ RootProvider만 미사용
AccountingContext.tsx src/contexts/ RootProvider만 미사용
HRContext.tsx src/contexts/ RootProvider만 미사용
ShippingContext.tsx src/contexts/ RootProvider만 미사용
InventoryContext.tsx src/contexts/ RootProvider만 미사용
ProductionContext.tsx src/contexts/ RootProvider만 미사용
PricingContext.tsx src/contexts/ RootProvider만 미사용
SalesContext.tsx src/contexts/ RootProvider만 미사용

영향 분석:

  • 이 8개 Context는 React SPA에서 있었던 것으로 추정
  • Next.js 마이그레이션 후 관련 페이지가 구현되지 않음
  • RootProvider.tsx에서만 import되고 실제 사용은 없음
  • 안전하게 제거 가능 (빌드/런타임 영향 없음)

컴포넌트 (1개)

파일명 경로 라인수 사용처 상태
BOMManager.tsx src/components/items/ 485 없음 미사용

영향 분석:

  • BOMManagementSection.tsx가 대신 사용됨 (ItemMasterDataManagement에서 사용)
  • 485줄의 구형 컴포넌트
  • _unused/ 디렉토리로 이동 권장

🟡 부분 사용 파일 (검토 필요)

DeveloperModeContext.tsx

현재 상태:

  • Provider는 (protected)/layout.tsx에 연결됨
  • PageLayout.tsx에서 import하고 사용
  • 하지만 실제로 devMetadata prop을 전달하는 곳은 없음

사용 분석:

// PageLayout.tsx - devMetadata를 받지만...
export function PageLayout({ devMetadata, ... }) {
  const { setCurrentMetadata } = useDeveloperMode();

  useEffect(() => {
    if (devMetadata) {  // 실제로 devMetadata를 전달하는 곳이 없음
      setCurrentMetadata(devMetadata);
    }
  }, []);
}

// ItemMasterDataManagement.tsx - 유일하게 PageLayout을 사용
<PageLayout>  {/* devMetadata 전달 안함 */}
  ...
</PageLayout>

권장 사항:

  1. Option 1 (삭제): 개발자 모드 기능을 사용하지 않는다면 제거
  2. Option 2 (활용): 개발자 모드 기능이 필요하면 devMetadata 전달 구현
  3. Option 3 (보류): 향후 사용 계획이 있으면 유지

정상 사용 파일

Context (3개)

파일명 사용처
AuthContext.tsx LoginPage, SignupPage, useAuth hook 사용 중
ItemMasterContext.tsx ItemMasterDataManagement 등에서 사용 중
ThemeContext.tsx DashboardLayout, ThemeSelect에서 사용 중

컴포넌트

파일명 사용처
FileUpload.tsx ItemForm.tsx에서 import 및 사용
DrawingCanvas.tsx ItemForm.tsx에서 사용 (<DrawingCanvas 확인)
ThemeSelect.tsx LoginPage, SignupPage에서 사용
LanguageSelect.tsx LoginPage, SignupPage에서 사용
PageLayout.tsx ItemMasterDataManagement에서 사용
ItemMasterDataManagement.tsx master-data/item-master-data-management/page.tsx에서 사용

📁 이미 정리된 파일

components/_unused/ 디렉토리에 42개 구형 컴포넌트가 이미 정리되어 있음:

Root 컴포넌트 (3개)

  • LanguageSwitcher.tsx
  • WelcomeMessage.tsx
  • NavigationMenu.tsx

Business 컴포넌트 (39개)

  • ApprovalManagement.tsx
  • AccountingManagement.tsx
  • BOMManagement.tsx
  • Board.tsx
  • CodeManagement.tsx
  • ContactModal.tsx
  • DemoRequestPage.tsx
  • DrawingCanvas.tsx
  • EquipmentManagement.tsx
  • HRManagement.tsx
  • ItemManagement.tsx
  • LandingPage.tsx
  • LoginPage.tsx
  • LotManagement.tsx
  • MasterData.tsx
  • MaterialManagement.tsx
  • MenuCustomization.tsx
  • MenuCustomizationGuide.tsx
  • OrderManagement.tsx
  • PricingManagement.tsx
  • ProductManagement.tsx
  • ProductionManagement.tsx
  • ProductionManagerDashboard.tsx
  • QualityManagement.tsx
  • QuoteCreation.tsx
  • QuoteSimulation.tsx
  • ReceivingWrite.tsx
  • Reports.tsx
  • SalesLeadDashboard.tsx
  • SalesManagement.tsx
  • SalesManagement-clean.tsx
  • ShippingManagement.tsx
  • SignupPage.tsx
  • SystemAdminDashboard.tsx
  • SystemManagement.tsx
  • UserManagement.tsx
  • WorkerDashboard.tsx
  • WorkerPerformance.tsx
  • 기타...

🎯 정리 액션 플랜

Phase 1: 안전한 정리 (즉시 실행 가능)

1. Context 파일 8개 제거

# RootProvider.tsx에서 import 제거 필요
rm src/contexts/FacilitiesContext.tsx
rm src/contexts/AccountingContext.tsx
rm src/contexts/HRContext.tsx
rm src/contexts/ShippingContext.tsx
rm src/contexts/InventoryContext.tsx
rm src/contexts/ProductionContext.tsx
rm src/contexts/PricingContext.tsx
rm src/contexts/SalesContext.tsx

2. BOMManager.tsx를 _unused로 이동

mv src/components/items/BOMManager.tsx src/components/_unused/business/

3. RootProvider.tsx 수정 8개 Context import와 Provider 래퍼 제거

// Before: 10개 Provider 중첩
// After: 2개만 남김 (AuthContext, ItemMasterContext)

Phase 2: DeveloperModeContext 결정

Option A - 삭제하는 경우:

# 1. DeveloperModeContext.tsx 삭제
rm src/contexts/DeveloperModeContext.tsx

# 2. layout.tsx에서 Provider 제거
# 3. PageLayout.tsx에서 useDeveloperMode 제거

Option B - 유지하는 경우:

  • 현재 상태로 유지 (기능 구현 시까지)
  • 또는 devMetadata 기능 실제 구현

Phase 3: _unused 디렉토리 최종 정리

향후 삭제 가능:

# 완전히 사용하지 않을 것이 확실하면
rm -rf src/components/_unused/

📈 정리 후 예상 효과

코드베이스 감소

  • Context 파일: 8개 제거 → 약 2,000-3,000 라인 감소
  • BOMManager: 485 라인 감소
  • 총 예상: ~2,500-3,500 라인 감소

빌드 성능 개선

  • 불필요한 Context Provider 제거로 앱 초기화 속도 개선
  • 번들 크기 감소 (tree-shaking 효과)

유지보수성 향상

  • 코드베이스 명확성 증가
  • 신규 개발자 혼란 방지
  • 불필요한 의존성 제거

⚠️ 주의사항

삭제 전 확인사항

  1. git 커밋 상태 확인 (롤백 가능하도록)
  2. 빌드 테스트: npm run build
  3. TypeScript 체크: npm run type-check
  4. 개발 서버 실행 및 주요 페이지 동작 확인

롤백 계획

# 문제 발생 시 git으로 복구
git checkout src/contexts/FacilitiesContext.tsx
# 또는
git reset --hard HEAD

📝 권장 실행 순서

  1. git 브랜치 생성: git checkout -b cleanup/unused-files
  2. Phase 1 실행: Context 8개 + BOMManager 정리
  3. 빌드 검증: npm run build
  4. 동작 테스트: 개발 서버로 주요 페이지 확인
  5. 커밋: git commit -m "chore: 미사용 Context 파일 8개 및 BOMManager 제거"
  6. 🔄 Phase 2 검토: DeveloperModeContext 유지/삭제 결정
  7. 🔄 Phase 3 검토: _unused 디렉토리 최종 삭제 여부 결정

🔍 추가 검토 필요 항목

다음 파일들은 사용 여부를 추가 확인 필요:

  1. EmptyPage.tsx: 현재 사용 확인 필요
  2. chart-wrapper.tsx: 차트 사용 페이지 구현 시 필요할 수 있음
  3. ItemTypeSelect.tsx: items 관련 페이지에서 사용 가능성

이 파일들은 grep으로 사용처를 확인한 후 결정하는 것이 안전합니다.