- 미사용 코드 삭제: 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>
20 KiB
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.tsx의TODO_ITEMS는 변수명이며 실제 TODO 주석이 아니므로 제외- 일부 항목은 복합 성격(API 연동 + UI 구현)을 가지며, 주된 블로커 기준으로 분류
- 이 문서는 2026-02-19 기준 스냅샷이며, 코드 변경에 따라 갱신 필요