- PermissionManagement externalSelection 콜백 함수 오류 수정 - setSelectedItems → onToggleSelection, onToggleSelectAll, getItemId 변경 - claudedocs 문서 폴더별 정리 (26개 파일) - dashboard/, guides/, settings/, construction/, sales/ 등 Co-Authored-By: Claude <noreply@anthropic.com>
45 KiB
UniversalListPage 컴포넌트 통합 작업
목표: 55개 리스트 페이지를 1개의 공통 컴포넌트로 통합 시작일: 2026-01-14 원칙: 기존 기능 100% 유지, 테이블 영역만 공통화 상태: ✅ 전체 완료 (55/55 페이지, 100%)
📊 페이지 수 산정 (2026-01-16 확정)
최종 페이지 수: 55개
| 항목 | 개수 | 설명 |
|---|---|---|
| UniversalListPage 사용 파일 | 62개 | 전체 import 기준 |
| 템플릿 export 파일 | -1개 | templates/index.ts (export only) |
| 중복 파일 쌍 | -6개 | wrapper + client 패턴 |
| 실제 페이지 수 | 55개 |
중복 파일 쌍 목록 (6쌍)
동일한 페이지인데 wrapper(index.tsx)와 client 컴포넌트가 분리된 경우:
| # | 페이지 | 파일 1 (wrapper) | 파일 2 (client) |
|---|---|---|---|
| 1 | 거래처관리(회계) | VendorManagement/index.tsx |
VendorManagementClient.tsx |
| 2 | 어음관리 | BillManagement/index.tsx |
BillManagementClient.tsx |
| 3 | 결제내역 | PaymentHistoryManagement/index.tsx |
PaymentHistoryClient.tsx |
| 4 | 카드관리 | CardManagement/index.tsx |
CardManagementUnified.tsx |
| 5 | 게시판목록 | BoardList/index.tsx |
BoardListUnified.tsx |
| 6 | 발주관리 | OrderManagementListClient.tsx |
OrderManagementUnified.tsx |
마이그레이션 제외 페이지
| 파일 | 제외 사유 |
|---|---|
construction/projects/ProjectListClient.tsx |
PageLayout 직접 사용 (IntegratedListTemplateV2 미사용) |
settings/PermissionManagement/index.tsx |
IntegratedListTemplateV2 미사용 |
customer-center/FAQManagement/FAQList.tsx |
IntegratedListTemplateV2 미사용 |
pricing/PricingListClient.tsx (일반) |
IntegratedListTemplateV2 미사용 |
| 영업 도메인 3개 | 별도 구조 사용 (추후 검토) |
Note
: 수량이 변동되는 원인은 중복 파일(wrapper/client 패턴)과 제외 대상 파일 때문입니다.
🎯 핵심 목적 (절대 잊지 말 것!)
이 공통화 작업의 근본적인 목적은 모바일에서 필터를 바텀시트로 보여주기 위함이다.
filterConfig 사용 규칙
filterConfig를 사용하면 자동으로 PC/모바일 분기 처리됨- PC (1280px+): 인라인 필터 (테이블 헤더 영역)
- 모바일 (~1279px): 바텀시트 필터 (MobileFilter 컴포넌트)
- 새로운 모바일 필터 기능을 만들지 말 것! 이미 공통화되어 있음
- 정렬, 상태 필터 등 모든 필터는
filterConfig로 정의
예시
// ✅ 올바른 방식 - filterConfig 사용
filterConfig: [
{
key: 'sort',
label: '정렬',
type: 'single',
options: [{ value: 'latest', label: '최신순' }, ...],
},
],
// ❌ 잘못된 방식 - 별도 모바일 필터 구현
mobileTableHeaderActions: ... // 이런 거 만들지 말 것!
🚨 작업 정책 (필독!)
본 페이지 직접 작업 원칙
- 테스트 페이지 생성 금지:
-test접미사 페이지 만들지 말 것 - feature 브랜치 활용: 이미
feature/universal-list-component브랜치에서 작업 중 - 본 페이지에 바로 적용: 마이그레이션은 원본 파일에 직접 수행
- 롤백 가능: 문제 발생 시
git checkout또는 브랜치 전환으로 복구
❌ 삭제된 테스트 페이지 (2026-01-14)
| 삭제된 테스트 페이지 | 본 페이지 |
|---|---|
/board-test/ |
/board/ |
/construction/order/order-management-test/ |
/construction/order/order-management/ |
/hr/card-management-test/ |
/hr/card-management/ |
/customer-center/notices-test/ |
/customer-center/notices/ |
Phase 1: 준비 작업
- Git 브랜치 생성 (
feature/universal-list-component) ✅ - 기존 IntegratedListTemplateV2 분석 완료 확인 ✅
- 공통 패턴 / 특이 케이스 최종 정리 ✅
Phase 2: 핵심 컴포넌트 구현
2.1 타입 정의
UniversalListConfig<T>인터페이스 정의 ✅TableColumn,FilterConfig등 공통 타입 정의 ✅- 특이 케이스용 옵션 타입 정의 (모달, 동적 탭 등) ✅
2.2 UniversalListPage 컴포넌트
- 기본 구조 구현 (상태 관리, 핸들러) ✅
- IntegratedListTemplateV2 연동 ✅
- renderTableRow / renderMobileCard 콜백 처리 ✅
- 삭제 AlertDialog 통합 ✅
- 검색/필터/페이지네이션 통합 ✅
2.3 특이 케이스 지원
detailMode: 'page' | 'modal'옵션 ✅- 동적 탭 지원 (
fetchTabs함수 옵션) ✅ - 커스텀 액션 버튼 지원 (
customActions) ✅ - 문서 미리보기 모달 지원 (
DetailModalComponent) ✅
Phase 2.5: 공통 옵션화 리팩토링 ✅ 완료
목적: headerActions의 달력/버튼을 config 옵션으로 통합하여 위치/스타일 공통 관리
2.5.1 DateRangeSelector 옵션화
UniversalListConfig에dateRangeSelector옵션 추가 ✅- IntegratedListTemplateV2에서 달력 렌더링 위치 통합 ✅
- 기존 페이지 headerActions → config 옵션으로 마이그레이션 ✅
// config 옵션 정의
dateRangeSelector?: {
enabled: boolean;
showPresets?: boolean; // 당월, 전월, 오늘 등 프리셋 버튼
startDate?: string;
endDate?: string;
onStartDateChange?: (date: string) => void;
onEndDateChange?: (date: string) => void;
};
2.5.2 등록 버튼 옵션화
UniversalListConfig에createButton옵션 추가 ✅- 버튼 위치 오른쪽 끝 고정 (공통) ✅
- 기존 페이지 headerActions → config 옵션으로 마이그레이션 ✅
// config 옵션 정의
createButton?: {
label: string; // '등록', '공정 등록' 등
onClick: () => void;
icon?: LucideIcon; // 기본값: Plus
};
2.5.3 레이아웃 규칙
[달력 (왼쪽)] -------------- [등록 버튼 (오른쪽 끝)]
마이그레이션 완료 파일 (Level 1)
| 파일 | 달력 | 등록버튼 | 상태 |
|---|---|---|---|
| InquiryList.tsx | ✅ | ✅ | ✅ 완료 |
| NoticeList.tsx | ✅ | ❌ | ✅ 완료 |
| EventList.tsx | ✅ | ❌ | ✅ 완료 |
| PopupList.tsx | ❌ | ✅ | ✅ 완료 |
Note
: 나머지 페이지들은 Level 2+ 마이그레이션 시 적용 예정
Phase 3: 파일럿 마이그레이션
⚠️ 2026-01-14 수정: 이전 세션에서 완료 표시했으나 실제 코드 미적용 확인됨. 파일럿은 건너뛰고 Level 1부터 순차 진행.
기본 케이스 - 카드관리(HR)→ Level 3으로 이동 (복잡한 상태)특이 케이스 - 게시판목록→ Level 4로 이동 (동적 탭)특이 케이스 - 발주관리→ Level 2로 이동 (ScheduleCalendar)
Level 1 마이그레이션 진행 상황 (15/15 완료 ✅)
| # | 파일 | 상태 | 완료일 |
|---|---|---|---|
| 1 | production/WorkOrders/WorkOrderList.tsx |
✅ 완료 | 2026-01-14 |
| 2 | production/WorkResults/WorkResultList.tsx |
✅ 완료 | 2026-01-14 |
| 3 | outbound/ShipmentManagement/ShipmentList.tsx |
✅ 완료 | 2026-01-14 |
| 4 | material/StockStatus/StockStatusList.tsx |
✅ 완료 | 2026-01-14 |
| 5 | material/ReceivingManagement/ReceivingList.tsx |
✅ 완료 | 2026-01-14 |
| 6 | quality/InspectionManagement/InspectionList.tsx |
✅ 완료 | 2026-01-14 |
| 7 | items/ItemListClient.tsx |
✅ 완료 | 2026-01-14 |
| 8 | settings/PaymentHistoryManagement/PaymentHistoryClient.tsx |
✅ 완료 | 2026-01-14 |
| 9 | settings/PopupManagement/PopupList.tsx |
✅ 완료 | 2026-01-14 |
| 10 | customer-center/EventManagement/EventList.tsx |
✅ 완료 | 2026-01-14 |
| 11 | customer-center/InquiryManagement/InquiryList.tsx |
✅ 완료 | 2026-01-14 |
| 12 | customer-center/NoticeManagement/NoticeList.tsx |
✅ 완료 | 2026-01-14 |
| 13 | quotes/QuoteManagementClient.tsx |
✅ 완료 | 2026-01-14 |
| 14 | process-management/ProcessListClient.tsx |
✅ 완료 | 2026-01-14 |
| 15 | settings/AccountManagement/index.tsx |
✅ 완료 | 2026-01-14 |
Level 2 마이그레이션 진행 상황 (건설 17개 + 회계 13개 = 총 30개)
Note
: ProjectListClient는 PageLayout 직접 사용 (IntegratedListTemplateV2 미사용)으로 마이그레이션 대상에서 제외
건설 도메인 (17개 대상, 17개 완료 ✅)
| # | 파일 | 특이사항 | 상태 | 완료일 |
|---|---|---|---|---|
| 1 | construction/estimates/EstimateListClient.tsx |
거래처(다중), 견적자(다중), 상태, 정렬 | ✅ 완료 | 2026-01-14 |
| 2 | construction/bidding/BiddingListClient.tsx |
거래처(다중), 입찰자(다중), 상태, 정렬 | ✅ 완료 | 2026-01-14 |
| 3 | construction/site-briefings/SiteBriefingListClient.tsx |
거래처(다중), 타입, 상태, 정렬 | ✅ 완료 | 2026-01-14 |
| 4 | construction/contract/ContractListClient.tsx |
거래처(다중), 계약담당자(다중), 공사PM(다중) | ✅ 완료 | 2026-01-14 |
| 5 | construction/partners/PartnerListClient.tsx |
탭(전체/신규), 악성채권, 정렬 | ✅ 완료 | 2026-01-14 |
| 6 | construction/handover-report/HandoverReportListClient.tsx |
거래처, 계약담당자, 공사PM | ✅ 완료 | 2026-01-15 |
| 7 | construction/worker-status/WorkerStatusListClient.tsx |
거래처, 현장, 구분, 부서, 이름 | ✅ 완료 | 2026-01-15 |
| 8 | construction/utility-management/UtilityManagementListClient.tsx |
7개 필터, AlertDialog | ✅ 완료 | 2026-01-15 |
| 9 | construction/progress-billing/ProgressBillingManagementListClient.tsx |
showQuickButtons | ✅ 완료 | 2026-01-15 |
| 10 | construction/structure-review/StructureReviewListClient.tsx |
AlertDialog, createButton | ✅ 완료 | 2026-01-15 |
| 11 | construction/site-management/SiteManagementListClient.tsx |
AlertDialog | ✅ 완료 | 2026-01-15 |
| 12 | construction/pricing-management/PricingListClient.tsx |
renderCustomTableHeader (동적 컬럼) | ✅ 완료 | 2026-01-15 |
| 13 | construction/issue-management/IssueManagementListClient.tsx |
bulkActions (회수 기능) | ✅ 완료 | 2026-01-15 |
| 14 | construction/order-management/OrderManagementListClient.tsx |
ScheduleCalendar (beforeTableContent) | ✅ 완료 | 2026-01-15 |
| 15 | construction/management/ConstructionManagementListClient.tsx |
ScheduleCalendar (beforeTableContent) | ✅ 완료 | 2026-01-15 |
| 16 | construction/labor-management/LaborManagementClient.tsx |
노무 관리 필터 | ✅ 완료 | 2026-01-15 |
| 17 | construction/item-management/ItemManagementClient.tsx |
품목 분류 필터 | ✅ 완료 | 2026-01-15 |
회계 도메인 (13개 대상, 13개 완료 ✅)
| # | 파일 | 특이사항 | 상태 | 완료일 |
|---|---|---|---|---|
| 1 | accounting/VendorManagement/index.tsx |
5개 single 필터, Stats 카드 | ✅ 완료 | 2026-01-15 |
| 2 | accounting/SalesManagement/index.tsx |
Switch, beforeTableContent, tableHeaderActions, tableFooter | ✅ 완료 | 2026-01-15 |
| 3 | accounting/PurchaseManagement/index.tsx |
Switch, beforeTableContent, tableHeaderActions, tableFooter | ✅ 완료 | 2026-01-15 |
| 4 | accounting/DepositManagement/index.tsx |
beforeTableContent (새로고침), tableHeaderActions | ✅ 완료 | 2026-01-15 |
| 5 | accounting/WithdrawalManagement/index.tsx |
계정과목명 저장, beforeTableContent, tableHeaderActions | ✅ 완료 | 2026-01-15 |
| 6 | accounting/BillManagement/index.tsx |
어음관리 필터, RadioGroup | ✅ 완료 | 2026-01-15 |
| 7 | accounting/BadDebtCollection/index.tsx |
부실채권 관리, Switch 토글, 3개 필터 | ✅ 완료 | 2026-01-15 |
| 8 | accounting/BankTransactionInquiry/index.tsx |
서버사이드 페이지네이션, tableFooter, 3개 필터 | ✅ 완료 | 2026-01-15 |
| 9 | accounting/CardTransactionInquiry/index.tsx |
상세 모달, 계정과목명 일괄 저장, 2개 필터 | ✅ 완료 | 2026-01-15 |
| 10 | accounting/VendorLedger/index.tsx |
서버사이드 페이지네이션, 엑셀 다운로드, tableFooter | ✅ 완료 | 2026-01-15 |
| 11 | accounting/ExpectedExpenseManagement/index.tsx |
매우 복잡 (월별 그룹핑, 폼 다이얼로그, externalPagination/externalSelection) | ✅ 완료 | 2026-01-15 |
| 12 | accounting/BillManagement/BillManagementClient.tsx |
dateRangeSelector, beforeTableContent (상태+저장+라디오), externalPagination/Selection | ✅ 완료 | 2026-01-15 |
| 13 | accounting/VendorManagement/VendorManagementClient.tsx |
computeStats, 5개 필터, 클라이언트 필터링, externalPagination/Selection | ✅ 완료 | 2026-01-15 |
📋 마이그레이션 페이지별 테스트 체크리스트
데스크톱 기능 테스트
- 테이블 렌더링 (데이터 표시, 컬럼 정렬)
- 행 선택 (체크박스 동작, 선택 카운터)
- 수정/삭제 버튼 (선택 시 표시, 페이지 이동)
- 필터 동작 (검색, 필터 적용, 초기화)
- 페이지네이션 (페이지 이동, 개수 변경)
- 탭 동작 (탭 전환, 데이터 필터링)
📱 모바일 반응형 테스트
최소 지원 너비: 280px (모바일 최소 사이즈 기준)
- 레이아웃 깨짐 확인: 280px까지 축소 시 요소 겹침/튀어나감 없음
- 줄바꿈 정상: 긴 텍스트 줄바꿈 처리 확인
- 버튼/뱃지: 영역 밖으로 튀어나가지 않음
- 모바일 필터: 하단에서 슬라이드업 정상 동작
- 필터 적용/초기화: 모바일 필터 버튼 정상 작동
- 모바일 카드 뷰: renderMobileCard 정상 표시
- 터치 동작: 체크박스, 버튼 터치 반응 정상
스크린샷 비교
- 데스크톱: 기존 페이지 vs 마이그레이션 페이지 비교
- 모바일: 기존 페이지 vs 마이그레이션 페이지 비교
📊 복잡도별 분류 (마이그레이션 우선순위)
통합 후 이점: 새 기능 추가/버그 수정 시 55개 파일 → 1개 파일만 수정
Level 1 (기본) - 15개 ⭐ 1순위
단순 테이블 + 기본 탭 필터만 있는 경우
| 파일 | 설명 |
|---|---|
production/WorkOrders/WorkOrderList.tsx |
탭 기반 상태 필터링 |
production/WorkResults/WorkResultList.tsx |
기본 리스트 |
outbound/ShipmentManagement/ShipmentList.tsx |
상태별 통계, 탭 필터 |
material/StockStatus/StockStatusList.tsx |
재고 현황 |
material/ReceivingManagement/ReceivingList.tsx |
기본 수입 목록 |
quality/InspectionManagement/InspectionList.tsx |
검사 상태별 탭 |
items/ItemListClient.tsx |
품목 유형별 탭 |
settings/PaymentHistoryManagement/PaymentHistoryClient.tsx |
결제 이력 |
settings/PopupManagement/PopupList.tsx |
팝업 관리 |
customer-center/EventManagement/EventList.tsx |
이벤트 관리 |
customer-center/InquiryManagement/InquiryList.tsx |
문의 관리 |
customer-center/NoticeManagement/NoticeList.tsx |
공지사항 |
quotes/QuoteManagementClient.tsx |
견적 관리 |
process-management/ProcessListClient.tsx |
프로세스 관리 |
settings/AccountManagement/index.tsx |
계정 관리 |
Level 2 (필터 복잡) - 30개 ⭐ 2순위
FilterFieldConfig 기반 다중 필터, 정렬 옵션 (주류 패턴)
건설 도메인 (17개)
| 파일 | 특이사항 |
|---|---|
construction/site-briefings/SiteBriefingListClient.tsx |
거래처(다중), 타입, 상태, 정렬 |
construction/estimates/EstimateListClient.tsx |
거래처(다중), 견적자(다중), 상태, 정렬 |
construction/bidding/BiddingListClient.tsx |
입찰 정보 필터 |
construction/contract/ContractListClient.tsx |
계약 정보 필터 |
construction/partners/PartnerListClient.tsx |
협력업체 필터 |
construction/handover-report/HandoverReportListClient.tsx |
준공 보고 필터 |
construction/worker-status/WorkerStatusListClient.tsx |
근로자 상태 필터 |
construction/utility-management/UtilityManagementListClient.tsx |
유틸리티 관리 필터 |
construction/progress-billing/ProgressBillingManagementListClient.tsx |
기성 청구 필터 |
construction/structure-review/StructureReviewListClient.tsx |
구조 검토 필터 |
construction/site-management/SiteManagementListClient.tsx |
현장 정보 필터 |
construction/pricing-management/PricingListClient.tsx |
동적 컬럼 (renderCustomTableHeader) |
construction/issue-management/IssueManagementListClient.tsx |
거래처, 현장, 구분, 중요도, 상태 |
construction/order-management/OrderManagementListClient.tsx |
ScheduleCalendar (beforeTableContent) |
construction/management/ConstructionManagementListClient.tsx |
ScheduleCalendar (beforeTableContent) |
construction/labor-management/LaborManagementClient.tsx |
노무 관리 필터 |
construction/item-management/ItemManagementClient.tsx |
품목 분류 필터 |
회계 도메인 (13개)
| 파일 | 특이사항 |
|---|---|
accounting/VendorManagement/VendorManagementClient.tsx |
거래처 분류(다중), 신용등급, 거래등급 |
accounting/VendorManagement/index.tsx |
VendorManagementClient wrapper |
accounting/PurchaseManagement/index.tsx |
구매 관리 필터 |
accounting/SalesManagement/index.tsx |
판매 관리 필터 |
accounting/DepositManagement/index.tsx |
입금 관리 필터 |
accounting/WithdrawalManagement/index.tsx |
출금 관리 필터 |
accounting/BadDebtCollection/index.tsx |
부실채권 관리 필터 |
accounting/ExpectedExpenseManagement/index.tsx |
예상 지출 관리 필터 |
accounting/BillManagement/index.tsx |
청구서 관리 wrapper |
accounting/BillManagement/BillManagementClient.tsx |
청구서 관리 필터 |
accounting/BankTransactionInquiry/index.tsx |
입출금계좌조회 |
accounting/CardTransactionInquiry/index.tsx |
카드내역조회 |
accounting/VendorLedger/index.tsx |
거래처원장 |
Level 3~5 마이그레이션 (2026-01-15) ✅ 완료
결론 변경: Level 3~5 컴포넌트(10개)도 UniversalListPage로 마이그레이션 진행 이유: 장기적 유지보수 및 모바일 대응 일원화를 위해 모든 리스트 페이지 통합
Phase 3-1: UniversalListPage 기능 확장 ✅ 완료
| 기능 | 설명 | 상태 |
|---|---|---|
renderDialogs |
커스텀 다이얼로그 슬롯 | [x] 완료 |
dynamicHeaderActions |
선택 상태 기반 동적 헤더 액션 | [x] 완료 (tableHeaderActions에 selectedItems 전달) |
fetchTabs |
API 기반 동적 탭 생성 | [x] 완료 (이미 구현되어 있었음) |
columnsPerTab |
탭별 다른 컬럼 구조 지원 | [x] 완료 |
extraFilters |
추가 필터 슬롯 | [x] 완료 (이미 구현되어 있었음) |
Phase 3-2: 게시판 도메인 마이그레이션 (2개) ✅ 완료
| # | 파일 | 특이사항 | 상태 |
|---|---|---|---|
| 1 | board/BoardManagement/index.tsx |
AlertDialog + 선택 기반 수정/삭제 | [x] 완료 |
| 2 | board/BoardList/index.tsx |
API 동적 탭 (fetchTabs) + 서버사이드 페이지네이션 | [x] 완료 |
Phase 3-3: 전자결재 도메인 마이그레이션 (3개) ✅ 완료
| # | 파일 | 특이사항 | 상태 |
|---|---|---|---|
| 1 | approval/DraftBox/index.tsx |
DocumentDetailModal + 상신/삭제 + 동적 헤더 | [x] 완료 |
| 2 | approval/ApprovalBox/index.tsx |
DocumentDetailModal + 승인/반려 다이얼로그 | [x] 완료 |
| 3 | approval/ReferenceBox/index.tsx |
DocumentDetailModal + 열람/미열람 처리 | [x] 완료 |
Phase 3-4: HR 도메인 마이그레이션 (5개) ✅ 완료
| # | 파일 | 특이사항 | 상태 |
|---|---|---|---|
| 1 | hr/CardManagement/index.tsx |
3개 탭 + AlertDialog (가장 단순) | [x] 완료 |
| 2 | hr/SalaryManagement/index.tsx |
SalaryDetailDialog + 선택 기반 동적 버튼 | [x] 완료 |
| 3 | hr/AttendanceManagement/index.tsx |
9개 탭 + 2개 다이얼로그 + extraFilters | [x] 완료 |
| 4 | hr/EmployeeManagement/index.tsx |
4개 탭 + 복수 다이얼로그 + DateRangeSelector | [x] 완료 |
| 5 | hr/VacationManagement/index.tsx |
3개 탭(탭별 상이한 컬럼) + 4개 다이얼로그 | [x] 완료 |
최종 분류 통계 ✅ 완료
| 레벨 | 개수 | 상태 | 비고 |
|---|---|---|---|
| Level 1 (기본) | 15개 | ✅ 완료 | UniversalListPage 마이그레이션 |
| Level 2 (필터) | 30개 | ✅ 완료 | UniversalListPage 마이그레이션 |
| Level 3~5 (복잡) | 10개 | ✅ 완료 | UniversalListPage 마이그레이션 |
| 합계 | 55개 | ✅ 완료 | 전체 통합 완료! |
Phase 4: 도메인별 마이그레이션
4.1 건설 도메인 (18개)
- 현장설명회관리 (SiteBriefingListClient)
- 견적관리 (EstimateListClient)
- 입찰관리 (BiddingListClient)
- 계약관리 (ContractListClient)
- 인수인계보고서 (HandoverReportListClient)
- 현장관리 (SiteManagementListClient)
- 구조검토관리 (StructureReviewListClient)
- 이슈관리 (IssueManagementListClient)
- 작업인력현황 (WorkerStatusListClient)
- 품목관리 (ItemManagementClient)
- 단가관리 (PricingListClient)
- 노임관리 (LaborManagementClient)
- 발주관리 (OrderManagementListClient)
- 기성청구관리 (ProgressBillingManagementListClient)
- 공과관리 (UtilityManagementListClient)
- 시공관리 (ConstructionManagementListClient)
- 거래처관리 (PartnerListClient)
- 프로젝트관리 (ProjectListClient)
4.2 HR 도메인 (5개)
- 급여관리 (SalaryManagement)
- 사원관리 (EmployeeManagement)
- 휴가관리 (VacationManagement)
- 근태관리 (AttendanceManagement)
- 카드관리 (CardManagement)
4.3 회계 도메인 (11개)
- 거래처관리 (VendorManagement)
- 매입관리 (PurchaseManagement)
- 매출관리 (SalesManagement)
- 입금관리 (DepositManagement)
- 출금관리 (WithdrawalManagement)
- 어음관리 (BillManagement)
- 거래처원장 (VendorLedger)
- 지출예상내역서 (ExpectedExpenseManagement)
- 입출금계좌조회 (BankTransactionInquiry)
- 카드내역조회 (CardTransactionInquiry)
- 악성채권추심 (BadDebtCollection)
4.4 생산/자재/품질/출고 도메인 (6개)
- 작업지시관리 (WorkOrderList)
- 작업실적조회 (WorkResultList)
- 재고현황 (StockStatusList)
- 입고관리 (ReceivingList)
- 검사관리 (InspectionList)
- 출하관리 (ShipmentList)
4.5 전자결재 도메인 (3개) ⚠️ 특이 케이스
- 기안함 (DraftBox) - 문서 미리보기 모달 + 상신
- 결재함 (ApprovalBox) - 문서 미리보기 모달 + 승인/반려
- 참조함 (ReferenceBox) - 문서 미리보기 모달 + 읽음/안읽음
4.6 설정 도메인 (4개)
- 계좌관리 (AccountManagement)
- 팝업관리 (PopupList)
- 결제내역 (PaymentHistoryManagement)
- 권한관리 (PermissionManagement)
4.7 영업 도메인 (3개) 🆕
- 수주관리 (order-management-sales/page.tsx)
- 생산발주 (order-management-sales/production-orders/page.tsx)
- 거래처관리-영업 (client-management-sales-admin/page.tsx)
4.8 기타 도메인 (9개)
- 품목기준관리 (ItemListClient)
- 견적관리 (QuoteManagementClient)
- 단가관리-일반 (PricingListClient)
- 공정관리 (ProcessListClient)
- 게시판목록 (BoardList) ⚠️ 동적 탭
- 게시판관리 (BoardManagement)
- 공지사항 (NoticeList)
- 이벤트 (EventList)
- 1:1문의 (InquiryList)
Phase 5: 최종 검증 (QA 체크리스트)
QA 검수 기준
- ✅ PC: 테이블 렌더링, 필터, 페이지네이션, 행 선택, 수정/삭제
- ✅ 모바일: 카드 뷰, 바텀시트 필터, 터치 동작
- ✅ 공통: API 연동, 데이터 표시, 에러 처리
Level 1 - 기본 페이지 (15개) ✅ QA 완료
| # | 페이지 | 경로 | PC | 모바일 | 비고 |
|---|---|---|---|---|---|
| 1 | 작업지시관리 | /production/work-orders |
[x] | [x] | |
| 2 | 작업실적조회 | /production/work-results |
[x] | [x] | |
| 3 | 출하관리 | /outbound/shipment |
[x] | [x] | |
| 4 | 재고현황 | /material/stock-status |
[x] | [x] | |
| 5 | 입고관리 | /material/receiving |
[x] | [x] | |
| 6 | 검사관리 | /quality/inspection |
[x] | [x] | |
| 7 | 품목기준관리 | /items |
[x] | [x] | |
| 8 | 결제내역 | /settings/payment-history |
[x] | [x] | |
| 9 | 팝업관리 | /settings/popup |
[x] | [x] | |
| 10 | 이벤트관리 | /customer-center/events |
[x] | [x] | 모바일 탭 이슈 해결 완료 |
| 11 | 1:1문의 | /customer-center/inquiries |
[x] | [x] | 필터 동작 검증 완료 |
| 12 | 공지사항 | /customer-center/notices |
[x] | [x] | |
| 13 | 견적관리 | /quotes |
[x] | [x] | |
| 14 | 공정관리 | /process-management |
[x] | [x] | |
| 15 | 계좌관리 | /settings/accounts |
[x] | [x] |
Level 2 - 건설 도메인 (17개) ✅ QA 완료
| # | 페이지 | 경로 | PC | 모바일 | 비고 |
|---|---|---|---|---|---|
| 1 | 견적관리 | /construction/estimates |
[x] | [x] | |
| 2 | 입찰관리 | /construction/bidding |
[x] | [x] | |
| 3 | 현장설명회 | /construction/site-briefings |
[x] | [x] | |
| 4 | 계약관리 | /construction/contracts |
[x] | [x] | |
| 5 | 협력업체 | /construction/partners |
[x] | [x] | |
| 6 | 인수인계보고서 | /construction/handover-report |
[x] | [x] | |
| 7 | 작업인력현황 | /construction/worker-status |
[x] | [x] | |
| 8 | 공과관리 | /construction/utility |
[x] | [x] | |
| 9 | 기성청구관리 | /construction/progress-billing |
[x] | [x] | |
| 10 | 구조검토관리 | /construction/structure-review |
[x] | [x] | |
| 11 | 현장관리 | /construction/sites |
[x] | [x] | |
| 12 | 단가관리 | /construction/pricing |
[x] | [x] | 동적 컬럼 |
| 13 | 이슈관리 | /construction/issues |
[x] | [x] | |
| 14 | 발주관리 | /construction/order/order-management |
[x] | [x] | ScheduleCalendar |
| 15 | 시공관리 | /construction/management |
[x] | [x] | ScheduleCalendar |
| 16 | 노임관리 | /construction/labor |
[x] | [x] | |
| 17 | 품목관리 | /construction/items |
[x] | [x] |
Level 2 - 회계 도메인 (13개) ✅ QA 완료
| # | 페이지 | 경로 | PC | 모바일 | 비고 |
|---|---|---|---|---|---|
| 1 | 거래처관리 | /accounting/vendors |
[x] | [x] | |
| 2 | 매출관리 | /accounting/sales |
[x] | [x] | filterConfig 추가 |
| 3 | 매입관리 | /accounting/purchases |
[x] | [x] | filterConfig 추가 |
| 4 | 입금관리 | /accounting/deposits |
[x] | [x] | |
| 5 | 출금관리 | /accounting/withdrawals |
[x] | [x] | |
| 6 | 어음관리 | /accounting/bills |
[x] | [x] | |
| 7 | 악성채권추심 | /accounting/bad-debt |
[x] | [x] | filterConfig 추가 |
| 8 | 입출금계좌조회 | /accounting/bank-transactions |
[x] | [x] | filterConfig 추가 |
| 9 | 카드내역조회 | /accounting/card-transactions |
[x] | [x] | |
| 10 | 거래처원장 | /accounting/vendor-ledger |
[x] | [x] | |
| 11 | 지출예상내역서 | /accounting/expected-expenses |
[x] | [x] | |
| 12 | 어음관리Client | /accounting/bills |
[x] | [x] | |
| 13 | 거래처관리Client | /accounting/vendors |
[x] | [x] |
Level 3~5 - 복잡 페이지 (10개) ✅ QA 완료
| # | 페이지 | 경로 | PC | 모바일 | 비고 |
|---|---|---|---|---|---|
| 1 | 게시판관리 | /board/management |
[x] | [x] | |
| 2 | 게시판목록 | /board |
[x] | [x] | 동적 탭 |
| 3 | 기안함 | /approval/draft |
[x] | [x] | 문서 모달, 모바일 필터 추가 |
| 4 | 결재함 | /approval/approval |
[x] | [x] | 승인/반려, 모바일 필터 추가 |
| 5 | 참조함 | /approval/reference |
[x] | [x] | 모바일 필터 추가 |
| 6 | 카드관리 | /hr/card-management |
[x] | [x] | 탭 필터만 (PC필터 없음) |
| 7 | 급여관리 | /hr/salary-management |
[x] | [x] | 정렬 필터 |
| 8 | 근태관리 | /hr/attendance-management |
[x] | [x] | 9개 탭, 필터+정렬 |
| 9 | 사원관리 | /hr/employee-management |
[x] | [x] | 필터+정렬 |
| 10 | 휴가관리 | /hr/vacation-management |
[x] | [x] | 필터+정렬 |
QA 진행 현황
| 레벨 | 전체 | PC 완료 | 모바일 완료 | 진행률 |
|---|---|---|---|---|
| Level 1 | 15 | 15 | 15 | 100% ✅ |
| Level 2 건설 | 17 | 17 | 17 | 100% ✅ |
| Level 2 회계 | 13 | 13 | 13 | 100% ✅ |
| Level 3~5 | 10 | 10 | 10 | 100% ✅ |
| 합계 | 55 | 55 | 55 | 100% ✅ |
🚨 알려진 이슈
| 이슈 | 영향 범위 | 상태 | 비고 |
|---|---|---|---|
| 모바일 탭 미표시 | 탭 사용 페이지 전체 | ✅ 해결 완료 | IntegratedListTemplateV2 수정 (hidden → block) |
Phase 6: 다음 개선 사항 (Next Steps)
6.1 모바일 인피니티 스크롤 (Infinite Scroll)
목적: 모바일 카드 뷰에서 페이지네이션 대신 무한 스크롤로 UX 개선
구현 계획
config 옵션 추가:
// UniversalListConfig에 추가
infiniteScroll?: {
enabled: boolean;
mobileOnly?: boolean; // 모바일에서만 적용 (기본: true)
pageSize?: number; // 한 번에 로드할 개수 (기본: 20)
threshold?: number; // 트리거 위치 (기본: 0.8 = 80% 스크롤)
};
동작 방식:
모바일 + infiniteScroll.enabled?
├─ Yes → 페이지네이션 숨김 + IntersectionObserver로 무한스크롤
└─ No → 기존 페이지네이션 유지
기술 스택:
IntersectionObserver(네이티브) 또는react-intersection-observer- 스크롤 80% 도달 시 다음 pageSize개 로드
- 로딩 스피너 표시 → 데이터 append → 스피너 제거
적용 효과:
- config 한 줄 추가로 55개 페이지 자동 적용
- PC는 기존 페이지네이션 유지
- 모바일만 무한스크롤 적용
구현 체크리스트
IntersectionObserver훅 구현 (useInfiniteScroll)UniversalListConfig에infiniteScroll옵션 추가IntegratedListTemplateV2에 무한스크롤 로직 추가- 모바일 감지 시 페이지네이션 → 무한스크롤 전환
- 로딩 스피너 컴포넌트 추가
- 파일럿 페이지 테스트
- 전체 페이지 적용
특이 케이스 정리
| 페이지 | 특이점 | 처리 방안 |
|---|---|---|
| DraftBox | 문서 미리보기 모달 + 상신 | detailMode: 'modal' + customActions |
| ApprovalBox | 문서 미리보기 모달 + 승인/반려 | detailMode: 'modal' + customActions |
| ReferenceBox | 문서 미리보기 모달 + 읽음 처리 | detailMode: 'modal' + customActions |
| BoardList | 동적 탭 (API 기반) | tabs: () => Promise<Tab[]> |
변경 이력
| 날짜 | 작업 내용 |
|---|---|
| 2026-01-14 | 체크리스트 문서 생성, 작업 시작 |
| 2026-01-14 | 영업 도메인 3개 발견 (마이그레이션 대상 검토 필요) |
| 2026-01-14 | |
| 2026-01-14 | 복잡도별 분류 완료 (Level 1~5, 55개 파일) |
| 2026-01-14 | 모바일 반응형 테스트 체크리스트 추가 |
| 2026-01-14 | "본 페이지 직접 작업" 정책 추가, 테스트 페이지 4개 삭제 |
| 2026-01-14 | Level 1: NoticeList, PopupList, EventList, InquiryList 마이그레이션 완료 (4/15) |
| 2026-01-14 | 체크리스트 정합성 수정 - 파일럿 3개 미완료 확인, Level 1 진행 상황 테이블 추가 |
| 2026-01-14 | Level 1 마이그레이션 진행: WorkOrderList, WorkResultList, ShipmentList, StockStatusList, ReceivingList, InspectionList 완료 (6개) |
| 2026-01-14 | Level 1 마이그레이션 진행: ItemListClient, PaymentHistoryClient, AccountManagement 완료 (3개 추가, 총 13/15) |
| 2026-01-14 | Level 1 완료! QuoteManagementClient, ProcessListClient 마이그레이션 완료 (15/15) |
| 2026-01-14 | Level 1 검수: 탭 기본값(ShipmentList, StockStatusList), optional chaining(UniversalListPage), 필터 중복(InquiryList), "총 N건" 위치 수정 |
| 2026-01-14 | Phase 2.5 추가: 달력/버튼 공통 옵션화 리팩토링 계획 문서화 |
| 2026-01-14 | Phase 2.5 완료: dateRangeSelector/createButton config 옵션 구현, Level 1 페이지 4개 마이그레이션 (InquiryList, NoticeList, EventList, PopupList) |
| 2026-01-14 | Level 2 시작: 건설 도메인 5개 완료 (EstimateListClient, BiddingListClient, SiteBriefingListClient, ContractListClient, PartnerListClient) |
| 2026-01-14 | ProjectListClient 제외 (PageLayout 직접 사용, IntegratedListTemplateV2 미사용) |
| 2026-01-15 | 건설 도메인 6개 추가 완료 (HandoverReport, WorkerStatus, Utility, ProgressBilling, StructureReview, SiteManagement) |
| 2026-01-15 | UniversalListPage에 renderCustomTableHeader 지원 추가 (동적 컬럼용) |
| 2026-01-15 | 건설 도메인 6개 추가 완료 (PricingList, IssueManagement, OrderManagement, ConstructionManagement, LaborManagement, ItemManagement) |
| 2026-01-15 | 건설 도메인 17개 모두 완료! ✅ |
| 2026-01-15 | 회계 도메인 5개 완료 (VendorManagement, SalesManagement, PurchaseManagement, DepositManagement, WithdrawalManagement) |
| 2026-01-15 | 회계 도메인 6개 추가 완료 (BillManagement, BadDebtCollection, BankTransactionInquiry, CardTransactionInquiry, VendorLedger, ExpectedExpenseManagement) |
| 2026-01-15 | UniversalListPage에 externalPagination, externalSelection 지원 추가 (복잡한 외부 상태 관리용) |
| 2026-01-15 | 회계 도메인 11/13 완료 (남은 2개: BillManagementClient, VendorManagementClient 확인 필요) |
| 2026-01-15 | 회계 도메인 13/13 완료! ✅ BillManagementClient, VendorManagementClient 마이그레이션 완료 |
| 2026-01-15 | Level 3~5 분석 완료 - 전자결재(3), HR(5), 게시판(2) 총 10개 파일 분석 |
| 2026-01-15 | 마이그레이션 최종 결론 변경: Level 3~5도 UniversalListPage로 마이그레이션 진행 결정 |
| 2026-01-15 | Phase 3-1 완료: UniversalListPage 기능 확장 (renderDialogs, headerActions with selectedItems) |
| 2026-01-15 | Phase 3-2 완료: 게시판 도메인 마이그레이션 2개 (BoardManagement, BoardList) |
| 2026-01-15 | Phase 3-3 완료: 전자결재 도메인 마이그레이션 3개 (DraftBox, ApprovalBox, ReferenceBox) |
| 2026-01-15 | Phase 3-4 완료: HR 도메인 마이그레이션 5개 (CardManagement, SalaryManagement, AttendanceManagement, EmployeeManagement, VacationManagement) |
| 2026-01-15 | 🎉 프로젝트 완료! Level 1~5 (55개) 전체 마이그레이션 완료 |
| 2026-01-15 | Level 1 QA 완료! 15개 페이지 PC/모바일 검수, 이벤트관리 모바일 탭 이슈 발견 (공통 수정 예정) |
| 2026-01-15 | Level 2 건설 QA 완료! 17개 페이지 PC/모바일 검수 완료 |
| 2026-01-15 | Level 2 회계 모바일 필터 추가! 매출관리, 매입관리, 악성채권추심, 은행거래조회 4개 페이지 |
| 2026-01-15 | 결재 도메인 모바일 필터 추가! 기안함, 결재함, 참조함 3개 페이지에 filterConfig + onFilterChange 추가 |
| 2026-01-15 | Level 3~5 QA 완료! HR 도메인 5개 페이지 (카드/급여/근태/사원/휴가) 전체 검수 완료 |
| 2026-01-15 | 🎉 전체 QA 완료! 55개 페이지 PC/모바일 검수 100% 완료 |
| 2026-01-16 | 📊 페이지 수 최종 확정! 62개 파일 중 중복(6쌍) 및 제외 대상 정리 → 55개 페이지 확정 |
| 2026-01-16 | Phase 5 기능 검수 시작 - 수동 QA 진행, 오류 발견 및 수정 |
| 2026-01-16 | 휴가관리 탭 카운트 수정 - config.tabs 변경 감지 useEffect 추가 (UniversalListPage) |
| 2026-01-16 | 휴가관리 기능 검증 - 휴가신청/승인/거절 버튼 정상 동작 확인 |
| 2026-01-16 | 휴가관리 승인/거절 건수 표시 수정 - handleApproveClick/handleRejectClick에서 selected를 내부 state로 복사 |
백업 스크린샷 위치
| 폴더 | 개수 | 설명 |
|---|---|---|
~/Desktop/test-urls_리스트 게시판 스샷/ |
34개 | 일반 도메인 |
~/Desktop/construction-test-urls_리스트 게시판 스샷/ |
18개 | 건설 도메인 |
~/Desktop/추가_리스트_스샷/ |
7개 | 누락 페이지 |
| 합계 | 59개 | 스크린샷 기준 (제외 대상 포함) |
Note
: 스크린샷은 59개지만, 실제 마이그레이션 대상 페이지는 55개입니다. (제외 대상 4개, 중복 제거)
🔍 Phase 5: 전체 기능 검수 (2026-01-16)
목적: UniversalListPage 적용 후 모든 핵심 기능 정상 동작 확인 검수 항목: 검색 / 탭 / 필터 / 체크박스 / 상세이동 / 등록버튼
검수 항목 설명
| 항목 | 설명 |
|---|---|
| 🔍 검색 | 검색창 입력 후 필터링 동작 |
| 📑 탭 | 탭 버튼 클릭 시 데이터 전환 |
| 🎛️ 필터 | 필터 선택/적용/초기화 동작 |
| ☑️ 체크박스 | 테이블 행 체크박스 선택 동작 |
| 👁️ 상세 | 테이블 로우 클릭 → 상세페이지/모달 이동 |
| ➕ 등록 | 등록 버튼 클릭 → 등록페이지 이동 |
HR 도메인 (5개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 사원관리 | /hr/employee-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 2 | 카드관리 | /hr/card-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 3 | 근태관리 | /hr/attendance-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 4 | 급여관리 | /hr/salary-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 5 | 휴가관리 | /hr/vacation-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
전자결재 도메인 (3개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 기안함 | /approval/draft-box |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 2 | 결재함 | /approval/approval-box |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 3 | 참조함 | /approval/reference-box |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
게시판 도메인 (2개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 게시판관리 | /settings/board-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 2 | 게시판목록 | /boards/[boardCode] |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
건설 도메인 (17개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 견적관리 | /construction/estimates |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 2 | 입찰관리 | /construction/bidding |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 3 | 현장설명회 | /construction/site-briefings |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 4 | 계약관리 | /construction/contracts |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 5 | 협력업체 | /construction/partners |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 6 | 준공보고 | /construction/handover-reports |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 7 | 근로자현황 | /construction/worker-status |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 8 | 유틸리티관리 | /construction/utility-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 9 | 기성관리 | /construction/progress-billing |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 10 | 구조검토 | /construction/structure-review |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 11 | 현장관리 | /construction/sites |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 12 | 단가관리 | /construction/pricing |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 13 | 이슈관리 | /construction/issues |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 14 | 발주관리 | /construction/order-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 15 | 공사관리 | /construction/management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 16 | 노무관리 | /construction/labor-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 17 | 품목관리 | /construction/item-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
회계 도메인 (13개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 거래처관리 | /accounting/vendor-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 2 | 매출관리 | /accounting/sales-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 3 | 매입관리 | /accounting/purchase-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 4 | 입금관리 | /accounting/deposit-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 5 | 출금관리 | /accounting/withdrawal-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 6 | 어음관리 | /accounting/bill-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 7 | 부실채권 | /accounting/bad-debt-collection |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 8 | 입출금조회 | /accounting/bank-transactions |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 9 | 카드조회 | /accounting/card-transactions |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 10 | 거래처원장 | /accounting/vendor-ledger |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 11 | 예상지출 | /accounting/expected-expenses |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
기타 도메인 (15개)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 작업지시 | /production/work-orders |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 2 | 작업실적 | /production/work-results |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 3 | 출하관리 | /outbound/shipment-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 4 | 재고현황 | /material/stock-status |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 5 | 입고관리 | /material/receiving |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 6 | 검사관리 | /quality/inspection |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 7 | 품목관리 | /items |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 8 | 결제이력 | /settings/payment-history |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 9 | 팝업관리 | /settings/popup-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 10 | 이벤트관리 | /customer-center/events |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 11 | 문의관리 | /customer-center/inquiries |
[ ] | [ ] | [ ] | [ ] | [ ] | N/A | 🔄 |
| 12 | 공지관리 | /customer-center/notices |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 13 | 견적관리 | /quotes |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 14 | 공정관리 | /process-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
| 15 | 계정관리 | /settings/account-management |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
영업 도메인 (추가)
| # | 페이지 | URL | 🔍 검색 | 📑 탭 | 🎛️ 필터 | ☑️ 체크 | 👁️ 상세 | ➕ 등록 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 거래처관리 | /sales/client-management-sales-admin |
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | 🔄 |
🐛 발견된 오류 목록
| # | 페이지 | 오류 내용 | 원인 | 해결 상태 |
|---|---|---|---|---|
| 1 | 급여관리 | 달력 아이콘 짤림 (375px) | Input width 너무 좁음 | ✅ 수정 |
| 2 | 급여관리 | DateRangeSelector 미사용 | 직접 Input 사용 | ✅ 수정 |
| 3 | 거래처관리(영업) | headerActions.call is not a function |
headerActions 함수 아님 | ✅ 수정 |
| 4 | 거래처관리(영업) | NaN globalIndex | externalPagination 형태 불일치 | ✅ 수정 |
| 5 | 휴가관리 | externalSelection.onToggleSelection is not a function |
externalSelection 형태 불일치 | ✅ 수정 |
| 6 | 휴가관리 | 탭 변경 시 Invalid time value |
날짜 필드 null 체크 없음 + 오타 | ✅ 수정 |
| 7 | 근태관리 | 프리셋 버튼 미표시 | showPresets: false | ✅ 수정 |
| 8 | 휴가관리 | 탭 카운트 모두 동일하게 표시 | tabFilter 제거 후 count 동기화 안됨 | ✅ 수정 |
| 9 | UniversalListPage | config.tabs 변경 시 내부 상태 미동기화 | useEffect 누락 | ✅ 수정 |
| 10 | 사원관리 | 프리셋 버튼 미표시 | showPresets: false | ✅ 수정 |
| 11 | 휴가관리 | 승인/거절 팝업 미표시 | selectedItems 상태 불일치 | ✅ 수정 |
| 12 | 휴가관리 | 승인/거절 팝업에 선택 건수 0으로 표시 | headerActions의 selected가 내부 state로 복사 안됨 | ✅ 수정 |
| 13 | 단가관리(판매) | headerActions.call is not a function |
headerActions가 함수 아닌 ReactNode | ✅ 수정 |