Files
sam-react-prod/claudedocs/dev/[REF-2026-02-19] todo-issue-tracker.md
유병철 a2c3e4c41e refactor(WEB): 프론트엔드 대규모 코드 정리 및 리팩토링
- 미사용 코드 삭제: ThemeContext, itemStore, utils/date.ts, utils/formatAmount.ts
- 유틸리티 이동: date, formatAmount → src/lib/utils/ (중앙 집중화)
- 다수 page.tsx 클라이언트 컴포넌트 패턴 통일
- DateRangeSelector 리팩토링 및 date-range-picker UI 컴포넌트 추가
- ThemeSelect/themeStore Zustand 직접 연동으로 전환
- 건설/회계/영업/품목/출하 등 전반적 컴포넌트 개선
- UniversalListPage, IntegratedListTemplateV2 타입 확장
- 프론트엔드 종합 리뷰 문서 및 개선 체크리스트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:30:07 +09:00

20 KiB

SAM ERP TODO/FIXME 이슈 트래커

자동 생성: 2026-02-19 총 건수: 102건 분류: A~F 카테고리 검색 범위: src/ 디렉토리 내 *.ts, *.tsx 파일


요약

카테고리 건수 담당 비고
A. 백엔드 API 연동 대기 55 백엔드팀 API 완성 시 해결
B. 백엔드 필드 추가 대기 10 백엔드팀 DB/API 스키마 추가
C. UI/기능 구현 대기 16 프론트팀 백로그
D. Phase 2 / 장기 과제 10 전체 로드맵 반영
E. CEO 대시보드 목업 데이터 4 프론트팀 대시보드 API 연동 시
F. 기타 7 - -

A. 백엔드 API 연동 대기 (55건)

모듈별 분류

품목기준관리 (Item Master Store) - 16건

파일 라인 TODO 내용
src/stores/item-master/useItemMasterStore.ts 97 // TODO: API 호출 (createPage - 페이지 생성)
src/stores/item-master/useItemMasterStore.ts 160 // TODO: API 호출 (updatePage - 페이지 수정)
src/stores/item-master/useItemMasterStore.ts 214 // TODO: API 호출 (deletePage - 페이지 삭제)
src/stores/item-master/useItemMasterStore.ts 289 // TODO: API 호출 (createSection - 섹션 생성)
src/stores/item-master/useItemMasterStore.ts 335 // TODO: API 호출 (updateSection - 섹션 수정)
src/stores/item-master/useItemMasterStore.ts 370 // TODO: API 호출 (deleteSection - 섹션 삭제)
src/stores/item-master/useItemMasterStore.ts 423 // TODO: API 호출하여 서버에도 순서 저장 (reorderSections)
src/stores/item-master/useItemMasterStore.ts 460 // TODO: API 호출 (createField - 필드 생성)
src/stores/item-master/useItemMasterStore.ts 522 // TODO: API 호출 (updateField - 필드 수정)
src/stores/item-master/useItemMasterStore.ts 552 // TODO: API 호출 (deleteField - 필드 삭제)
src/stores/item-master/useItemMasterStore.ts 587 // TODO: API 호출 (updateFieldOptions - 필드 옵션 수정)
src/stores/item-master/useItemMasterStore.ts 640 // TODO: API 호출하여 서버에도 순서 저장 (reorderFields)
src/stores/item-master/useItemMasterStore.ts 677 // TODO: API 호출 (createTab - 탭 생성)
src/stores/item-master/useItemMasterStore.ts 707 // TODO: API 호출 (updateTab - 탭 수정)
src/stores/item-master/useItemMasterStore.ts 726 // TODO: API 호출 (deleteTab - 탭 삭제)
src/components/items/ItemMasterDataManagement/hooks/usePageManagement.ts 157 // TODO: 원본 페이지의 섹션들도 복제 필요 (별도 API 호출)

회계 (Accounting) - 19건

파일 라인 TODO 내용
src/components/accounting/GiftCertificateManagement/actions.ts 32 // TODO: 실제 API 연동 시 교체 (getGiftCertificates)
src/components/accounting/GiftCertificateManagement/actions.ts 45 // TODO: 실제 API 연동 시 교체 (getGiftCertificateDetail)
src/components/accounting/GiftCertificateManagement/actions.ts 58 // TODO: 실제 API 연동 시 교체 (createGiftCertificate)
src/components/accounting/GiftCertificateManagement/actions.ts 86 // TODO: 실제 API 연동 시 교체 (updateGiftCertificate)
src/components/accounting/GiftCertificateManagement/actions.ts 113 // TODO: 실제 API 연동 시 교체 (deleteGiftCertificate)
src/components/accounting/GiftCertificateManagement/actions.ts 136 // TODO: 실제 API 연동 시 교체 (useGiftCertificate)
src/components/accounting/TaxInvoiceManagement/actions.ts 24 // TODO: 실제 API 연동 시 Mock 제거 (Mock 데이터)
src/components/accounting/TaxInvoiceManagement/actions.ts 44 // TODO: 실제 API 연동 시 아래 코드로 교체 (getTaxInvoices)
src/components/accounting/TaxInvoiceManagement/actions.ts 66 // TODO: 실제 API 연동 시 아래 코드로 교체 (getTaxInvoiceDetail)
src/components/accounting/TaxInvoiceManagement/actions.ts 99 // TODO: 실제 API 연동 시 Mock 제거 (세금계산서 상세)
src/components/accounting/TaxInvoiceManagement/actions.ts 115 // TODO: 실제 API 연동 시 아래 코드로 교체 (deleteTaxInvoice)
src/components/accounting/TaxInvoiceIssuance/actions.ts 36 // TODO: 실제 API 연동 시 아래 코드로 교체 (getTaxInvoices)
src/components/accounting/TaxInvoiceIssuance/actions.ts 59 // TODO: 실제 API 연동 시 아래 코드로 교체 (getTaxInvoiceDetail)
src/components/accounting/TaxInvoiceIssuance/actions.ts 86 // TODO: 실제 API 연동 시 아래 코드로 교체 (issueTaxInvoice)
src/components/accounting/TaxInvoiceIssuance/actions.ts 112 // TODO: 실제 API 연동 시 아래 코드로 교체 (sendEmail)
src/components/accounting/TaxInvoiceIssuance/actions.ts 127 // TODO: 실제 API 연동 시 교체 (cancelTaxInvoice)
src/components/accounting/TaxInvoiceIssuance/index.tsx 184 // TODO: 실제 API 연동 시 필터 조건으로 getTaxInvoices 호출
src/components/accounting/PurchaseManagement/index.tsx 232 // TODO: API 호출로 저장
src/components/accounting/SalesManagement/index.tsx 270 // TODO: API 호출로 저장

건설/사업 (Construction/Business) - 9건

파일 라인 TODO 내용
src/components/business/construction/progress-billing/actions.ts 196 // TODO: 실제 API 호출로 대체 (getProgressBillings)
src/components/business/construction/progress-billing/actions.ts 230 // TODO: 실제 API 호출로 대체 (getProgressBillingDetail)
src/components/business/construction/progress-billing/actions.ts 263 // TODO: 실제 API 호출로 대체 (saveProgressBilling)
src/components/business/construction/progress-billing/actions.ts 292 // TODO: 실제 API 호출로 대체 (deleteProgressBilling)
src/components/business/construction/progress-billing/actions.ts 300 // TODO: 매출 자동 등록 API 호출
src/components/business/construction/progress-billing/hooks/useProgressBillingDetailForm.ts 92 // TODO: API 호출 (handleSave)
src/components/business/construction/progress-billing/hooks/useProgressBillingDetailForm.ts 111 // TODO: API 호출 (handleDelete)
src/components/business/construction/progress-billing/ProgressBillingDetailForm.tsx 77 // TODO: API 호출 (handleDelete)
src/components/business/construction/management/actions.ts 20 // TODO: 실제 API 연동 시 구현 (프로젝트 관리 전체)

건설/현장관리 (Site Management) - 4건

파일 라인 TODO 내용
src/components/business/construction/structure-review/StructureReviewDetailForm.tsx 154 // TODO: API 연동 (handleSave)
src/components/business/construction/structure-review/StructureReviewDetailClientV2.tsx 76 // TODO: API 연동 (handleSave)
src/components/business/construction/site-management/SiteDetailForm.tsx 156 // TODO: API 연동 (handleSave)
src/components/business/construction/site-management/SiteDetailClientV2.tsx 68 // TODO: API 연동 (handleSave)

HR (인사관리) - 2건

파일 라인 TODO 내용
src/app/[locale]/(protected)/hr/documents/page.tsx 73 // TODO: 백엔드 API 구현 필요 (인사서류함)
src/app/[locale]/(protected)/hr/documents/new/page.tsx 91 // TODO: 백엔드 API 구현 필요 (인사서류 신규등록)

생산 (Production) - 2건

파일 라인 TODO 내용
src/components/production/WorkOrders/WipProductionModal.tsx 106 // TODO: API 연동 (WIP 생산 모달)
src/app/[locale]/(protected)/quality/qms/components/InspectionModal.tsx 340 // TODO: 실제 저장 API 연동 (품질검사 저장)

게시판 (Board) - 2건

파일 라인 TODO 내용
src/components/board/BoardDetail/index.tsx 85 // TODO: 댓글 API 연동 (별도 작업)
src/app/[locale]/(protected)/board/[boardCode]/[postId]/page.tsx 45 // TODO: 댓글 API 호출 추가

설정 (Settings) - 1건

파일 라인 TODO 내용
src/components/settings/AttendanceSettingsManagement/index.tsx 18 // TODO: API 연동 시 작업 사항 - GET/PUT /api/settings/attendance

B. 백엔드 필드 추가 대기 (10건)

모듈별 분류

대시보드 트랜스포머 - 3건

파일 라인 TODO 내용
src/lib/api/dashboard/transformers.ts 261 // TODO: 백엔드 daily_change 필드 제공 시 더미값 제거
src/lib/api/dashboard/transformers.ts 427 // TODO: 백엔드 per-card sub_label/count 제공 시 더미값 제거
src/lib/api/dashboard/transformers.ts 654 // TODO: 백엔드 sub_label 필드 제공 시 더미값 제거

공정관리 (Process Management) - 3건

파일 라인 TODO 내용
src/components/process-management/actions.ts 486 // TODO: API 응답에 process_name, process_category 필드 추가 후 활성화
src/components/process-management/RuleModal.tsx 285 // TODO: API에서 process_name, process_category 필드 지원 후 실제 데이터 표시
src/components/process-management/RuleModal.tsx 322 // TODO: API 지원 후 item.processName / item.processCategory 표시

생산 (Production) - 2건

파일 라인 TODO 내용
src/components/production/WorkOrders/WorkOrderList.tsx 181 // TODO: API에서 긴급 건수 제공 시 연동
src/components/production/WorkOrders/WorkOrderList.tsx 187 // TODO: API에서 지연 건수 제공 시 연동

게시판 (Board) - 2건

파일 라인 TODO 내용
src/components/board/BoardManagement/BoardForm.tsx 24 // TODO: API에서 부서 목록 가져오기
src/components/board/BoardManagement/BoardForm.tsx 33 // TODO: API에서 권한 목록 가져오기

C. UI/기능 구현 대기 (16건)

모듈별 분류

다운로드/출력 기능 - 4건

파일 라인 TODO 내용
src/components/accounting/BadDebtCollection/BadDebtDetail.tsx 268 // TODO: 실제 다운로드 로직
src/app/[locale]/(protected)/quality/qms/components/Day1DocumentSection.tsx 149 // TODO: 다운로드 기능
src/app/[locale]/(protected)/quality/qms/components/InspectionModal.tsx 472 // 다운로드 핸들러 (TODO: 실제 구현)
src/components/material/ReceivingManagement/ReceivingReceiptDialog.tsx 23 // TODO: PDF 다운로드 기능

품목 (Items) - 4건

파일 라인 TODO 내용
src/components/items/ItemForm/BOMSection.tsx 115 // TODO: 실제 itemMasters 데이터로 교체 필요
src/components/items/ItemForm/BOMSection.tsx 196 // TODO: 품목 선택 시 데이터 채우기 로직
src/components/items/ItemForm/BOMSection.tsx 209 // TODO: pricing에서 가져오기 (unitPrice)
src/components/items/ItemForm/hooks/useBOMManagement.ts 89 // TODO: pricing에서 가져오기 (unitPrice)

생산 (Production) - 3건

파일 라인 TODO 내용
src/components/production/WorkOrders/WorkOrderEdit.tsx 277 // TODO: API 호출로 서버에 상태 저장
src/components/production/WorkOrders/WorkOrderEdit.tsx 310 // TODO: API 호출로 서버에 저장
src/components/production/WorkOrders/WorkOrderEdit.tsx 327 // TODO: API 호출로 서버에서 삭제

기타 기능 - 5건

파일 라인 TODO 내용
src/components/approval/DocumentDetail/index.tsx 161 // TODO: 공유 기능 추가 예정 - PDF 다운로드, 이메일, 팩스, 카카오톡 공유
src/components/pricing/PricingListClient.tsx 177 // TODO: 이력 다이얼로그 열기
src/components/pricing/PricingListClient.tsx 335 // TODO: API 연동 시 품목 마스터 동기화 로직 구현
src/components/hr/SalaryManagement/index.tsx 253 // TODO: 지급항목 추가 다이얼로그 또는 로직 구현
src/components/production/WorkResults/WorkResultList.tsx 70 // TODO: 상세 보기 기능 구현

D. Phase 2 / 장기 과제 (10건)

모듈별 분류

품목코드 생성 로직 개선 - 3건

파일 라인 TODO 내용
src/components/items/DynamicItemForm/utils/itemCodeGenerator.ts 11 // TODO: 추후 백엔드 API 또는 품목기준관리에서 설정 가능하도록 변경
src/components/items/DynamicItemForm/utils/itemCodeGenerator.ts 52 // TODO: 추후 품목기준관리에서 설정 가능하도록 변경
src/components/items/DynamicItemForm/utils/itemCodeGenerator.ts 98 // TODO: 추후 품목기준관리에서 설정 가능하도록 변경

품목기준관리 하드코딩 대체 - 2건

파일 라인 TODO 내용
src/components/items/ItemMasterDataManagement/hooks/useTabManagement.ts 104 // TODO: 나중에 백엔드에서 기준값 로드로 대체 예정
src/components/items/ItemMasterDataManagement/hooks/useAttributeManagement.ts 80 // TODO: 나중에 백엔드 API로 대체 (속성 옵션 하드코딩)

프로덕션 배포 준비 - 2건

파일 라인 TODO 내용
src/lib/api/toast-utils.ts 14 // TODO: 프로덕션 배포 시 false로 변경하거나 환경변수 사용 (SHOW_ERROR_CODE)
src/lib/api/error-handler.ts 112 // TODO: 프로덕션 배포 시 false로 변경하거나 환경변수 사용 (SHOW_ERROR_CODE)

Phase 2 명시 - 2건

파일 라인 TODO 내용
src/lib/api/item-master.ts 99 // TODO: Phase 2에서 구현
src/components/document-system/viewer/DocumentViewer.tsx 314 // TODO: BlockRenderer 구현 시 연결 (Phase 2 블록 렌더링)

기타 장기 - 1건

파일 라인 TODO 내용
src/lib/api/items.ts 26 // TODO: 실제 인증 구현에 맞게 수정 필요 (getAuthToken)

E. CEO 대시보드 목업 데이터 (4건)

파일 라인 TODO 내용
src/components/business/CEODashboard/mockData.ts 5 // TODO: API 연동 시 이 파일을 API 호출로 대체
src/components/business/CEODashboard/CEODashboard.tsx 253 // TODO: API 호출하여 일정 저장
src/components/business/CEODashboard/CEODashboard.tsx 260 // TODO: API 호출하여 일정 삭제
src/components/business/CEODashboard/sections/TodayIssueSection.tsx 411 // TODO: 버튼 - API 구현 후 활성화 (승인/반려 버튼)

F. 기타 (7건)

파일 라인 TODO 내용 비고
src/contexts/ItemMasterContext.tsx 1894 // TODO: 전체 init 데이터 새로고침 기능 구현 필요 리팩토링
src/components/document-system/configs/index.ts 10 // TODO: Orders Configs 설정 추가 대기
src/components/quotes/types.ts 737 // TODO: 동적으로 결정 (productCategory) 로직 개선
src/components/quotes/types.ts 875 // TODO: 동적으로 결정 (product_category) 로직 개선
src/components/production/WorkOrders/types.ts 516 // TODO: 실제 단계 추적 필요 (in_progress 상태) 로직 개선
src/components/items/ItemListClient.tsx 328 // TODO: 실제 API 호출로 데이터 저장 API 연동 겸 로직
src/components/business/construction/management/ProjectListClient.tsx 127 // TODO: 실제 API 연동 시 new Date()로 변경 (목업 데이터 임시 설정) 목업 제거
src/components/accounting/BadDebtCollection/BadDebtDetail.tsx 53 // TODO: API에서 조회 (담당자 목록 하드코딩) API 연동 겸 데이터
src/components/settings/CompanyInfoManagement/AddCompanyDialog.tsx 60 // TODO: 바로빌 API 연동 (외부 API) 외부 서비스 연동
src/components/accounting/SalesManagement/SalesDetail.tsx 500 // TODO: 거래명세서 조회 기능 연결 기능 연결
src/app/[locale]/(protected)/hr/employee-management/csv-upload/page.tsx 8 // TODO: API 연동 (CSV 업로드) API 연동
src/app/[locale]/(protected)/hr/attendance/page.tsx 67 // TODO: 주소/좌표 설정 UI 추가 후 아래 주석 해제 UI 추가 후
src/components/business/construction/estimates/sections/EstimateDetailTableSection.tsx 224 // TODO: 견적 상세 기획서 수정 후 초기화 버튼 및 테이블 항목/데이터 재작업 필요 기획 대기
src/components/material/ReceivingManagement/InspectionCreate.tsx 164 // TODO: API 호출 (검사 생성) API 연동
src/components/process-management/actions.ts 503 // TODO: 백엔드 API 수정 요청 - process_name, process_category 필드 추가 백엔드 요청 문서

참고: F 카테고리는 A~E에 명확히 분류되지 않는 항목을 포함합니다. 일부는 API 연동과 겹치지만 외부 서비스, 기획 대기, 로직 개선 등 복합적인 성격을 가집니다.


백엔드 팀 전달 요약 (A + B = 65건)

우선순위별 정리

즉시 필요 (Critical) - 완전 Mock 상태

아래 모듈은 전체 API가 Mock/로컬로 구현되어 있어 백엔드 API 완성 즉시 교체 필요:

모듈 건수 actions.ts 파일
상품권 관리 6 accounting/GiftCertificateManagement/actions.ts
세금계산서 관리 5 accounting/TaxInvoiceManagement/actions.ts
세금계산서 발행 6 accounting/TaxInvoiceIssuance/actions.ts
기성관리 5+3 construction/progress-billing/actions.ts + hooks
프로젝트관리 1 construction/management/actions.ts (전체 Mock)
품목기준관리 스토어 16 stores/item-master/useItemMasterStore.ts

소계: 42건 - 이 모듈들은 프론트엔드 UI는 완성되었으나 백엔드 API 미구현 상태

필드 추가 요청 (Important)

요청 대상 추가 필드 관련 파일
CEO 대시보드 API daily_change, sub_label, count lib/api/dashboard/transformers.ts
공정관리 품목 API process_name, process_category process-management/actions.ts, RuleModal.tsx
작업지시 API 긴급 건수, 지연 건수 WorkOrders/WorkOrderList.tsx
게시판 관리 API 부서 목록, 권한 목록 board/BoardManagement/BoardForm.tsx

소계: 10건

신규 API 필요 (Normal)

API 용도 관련 파일
인사서류함 CRUD HR 문서 관리 hr/documents/page.tsx, new/page.tsx
댓글 CRUD 게시판 댓글 BoardDetail/index.tsx, [postId]/page.tsx
출퇴근 설정 GET/PUT AttendanceSettingsManagement/index.tsx
건설 현장관리 저장 현장/구조검토 SiteDetailForm.tsx, StructureReviewDetailForm.tsx
WIP 생산 생산 모달 WipProductionModal.tsx
품질검사 저장 검사 결과 InspectionModal.tsx

소계: 13건


통계 요약

전체 TODO:         102건
├── 백엔드 의존:    65건 (63.7%) ← A + B
├── 프론트 백로그:  16건 (15.7%) ← C
├── 장기 과제:     10건 (9.8%)  ← D
├── 대시보드 목업:   4건 (3.9%)  ← E
└── 기타:           7건 (6.9%)  ← F

프론트 독립 해결 가능: 26건 (C + D 일부)
백엔드 완성 필요:      69건 (A + B + E)

주의사항

  • src/app/[locale]/(protected)/dev/dashboard/_components/AIPoweredDashboard.tsxTODO_ITEMS는 변수명이며 실제 TODO 주석이 아니므로 제외
  • 일부 항목은 복합 성격(API 연동 + UI 구현)을 가지며, 주된 블로커 기준으로 분류
  • 이 문서는 2026-02-19 기준 스냅샷이며, 코드 변경에 따라 갱신 필요