- 숫자/통화/전화번호/사업자번호 등 특수 입력 컴포넌트 추가 - MobileCard 컴포넌트 통합 (ListMobileCard 제거) - IntegratedListTemplateV2 페이지네이션 버그 수정 (NaN 이슈) - IntegratedDetailTemplate 타이틀 중복 수정 - 문서 시스템 컴포넌트 추가 - 헤더 벨 아이콘 포커스 스타일 개선 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 KiB
11 KiB
모바일 인피니티 스크롤 검수 계획서
검수 개요
- 검수 일자: 2026-01-21
- 검수 대상: IntegratedListTemplateV2 기반 리스트 페이지의 모바일 인피니티 스크롤
- 검수 환경: Chrome DevTools MCP (모바일 뷰포트 390x844)
검수 항목
기본 기능 체크리스트
| # | 항목 | 설명 |
|---|---|---|
| 1 | 초기 로드 | 페이지 로드 시 최대 20개 항목 표시 |
| 2 | 진행률 표시 | "N / M" 형식으로 현재/전체 개수 표시 |
| 3 | 더 보기 버튼 | 데이터 > 20개일 때만 "더 보기" 버튼 표시 |
| 4 | 데이터 누적 | "더 보기" 클릭 시 기존 데이터 유지 + 새 데이터 추가 |
| 5 | 완료 메시지 | 전체 로드 완료 시 "모든 항목을 불러왔습니다 (N개)" |
| 6 | 탭 변경 리셋 | 탭 변경 시 누적 데이터 리셋 |
| 7 | 콘솔 에러 | 에러/경고 없음 |
전체 검수 결과 요약
검수 완료 페이지 (2026-01-21) - 총 43개
| 도메인 | 페이지 | URL | 데이터 수 | 상태 |
|---|---|---|---|---|
| 생산 | 품목관리 | /production/screen-production | 10,429개 | ✅ FULL TEST |
| 생산 | 작업지시 | /production/work-orders | 2개 | ✅ 완료 메시지 |
| 생산 | 작업실적 | /production/work-results | 0개 | ✅ 빈 상태 |
| 영업 | 단가관리 | /sales/pricing-management | 100개 | ✅ FULL TEST |
| 영업 | 견적관리 | /sales/quote-management | 4개 | ✅ 완료 메시지 |
| 영업 | 수주관리 | /sales/order-management-sales | 2개 | ✅ 완료 메시지 |
| 영업 | 매출처관리 | /sales/client-management-sales-admin | 5개 | ✅ 완료 메시지 |
| 품질 | 품질검사 | /quality/inspections | 0개 | ✅ 빈 상태 |
| 자재 | 재고현황 | /material/stock-status | 0개 | ✅ 빈 상태 |
| 자재 | 입고관리 | /material/receiving-management | 0개 | ✅ 빈 상태 |
| 기준정보 | 공정관리 | /master-data/process-management | 1개 | ✅ 완료 메시지 |
| 회계 | 거래처관리 | /accounting/vendors | 5개 | ✅ 완료 메시지 |
| 회계 | 입금관리 | /accounting/deposits | 60개 | ✅ 더 보기 버튼 |
| 회계 | 출금관리 | /accounting/withdrawals | 60개 | ✅ 수정 후 정상 |
| 회계 | 어음관리 | /accounting/bills | 16개 | ✅ 완료 메시지 |
| 회계 | 매출관리 | /accounting/sales | 83개 | ✅ FULL TEST |
| 회계 | 매입관리 | /accounting/purchase | 70개 | ✅ 더 보기 버튼 |
| 회계 | 예상경비 | /accounting/expected-expenses | 3개 | ✅ 완료 메시지 |
| 회계 | 은행거래조회 | /accounting/bank-transactions | 0개 | ✅ 빈 상태 |
| 회계 | 카드거래조회 | /accounting/card-transactions | 0개 | ✅ 빈 상태 |
| 회계 | 거래처원장 | /accounting/vendor-ledger | 5개 | ✅ 완료 메시지 |
| 건설 | 현장관리 | /construction/order/site-management | 0개 | ✅ 빈 상태 |
| 건설 | 발주관리 | /construction/order/order-management | 2개 | ✅ 완료 메시지 |
| 건설 | 구조검토 | /construction/order/structure-review | 0개 | ✅ 빈 상태 |
| 건설 | 품목관리 | /construction/order/base-info/items | 4개 | ✅ 완료 메시지 |
| 건설 | 입찰관리 | /construction/project/bidding | 0개 | ✅ 빈 상태 |
| 건설 | 견적관리(입찰) | /construction/project/bidding/estimates | 0개 | ✅ 빈 상태 |
| 건설 | 협력사관리 | /construction/project/bidding/partners | 5개 | ✅ 완료 메시지 |
| 건설 | 계약관리 | /construction/project/contract | 0개 | ✅ 빈 상태 |
| 건설 | 프로젝트관리 | /construction/project/management | 12개 | ✅ 캘린더+리스트 |
| 건설 | 시공관리 | /construction/project/construction-management | 11개 | ✅ 완료 메시지 |
| 건설 | 이슈관리 | /construction/project/issue-management | 55개 | ✅ 더 보기 버튼 |
| 건설 | 근로자현황 | /construction/project/worker-status | 30개 | ✅ 더 보기 버튼 |
| 건설 | 유틸리티관리 | /construction/project/utility-management | 50개 | ✅ 더 보기 버튼 |
| 건설 | 기성관리 | /construction/billing/progress-billing-management | 50개 | ✅ 더 보기 버튼 |
| 설정 | 계정관리 | /settings/accounts | 6개 | ✅ 완료 메시지 |
| 설정 | 팝업관리 | /settings/popup-management | 9개 | ✅ 완료 메시지 |
| 출고 | 출하관리 | /outbound/shipments | 0개 | ✅ 빈 상태 |
라우트 미설정 페이지 (7개)
| 도메인 | 페이지 | URL | 상태 |
|---|---|---|---|
| 회계 | 대손관리 | /accounting/bad-debt | ⚠️ 라우트 없음 |
| 설정 | 결제내역 | /settings/payment-history | ⚠️ 라우트 없음 |
| 고객센터 | 문의관리 | /customer-center/inquiry-management | ⚠️ 라우트 없음 |
| 고객센터 | 공지관리 | /customer-center/notice-management | ⚠️ 라우트 없음 |
| 고객센터 | 이벤트관리 | /customer-center/event-management | ⚠️ 라우트 없음 |
| 건설 | 단가관리 | /construction/order/base-info/pricing | ⚠️ API 오류 |
| 건설 | 노임관리 | /construction/order/base-info/labor | ⚠️ API 오류 |
FULL TEST 결과
1. 품목관리 (/production/screen-production) - 10,429개
| # | 항목 | 결과 | 비고 |
|---|---|---|---|
| 1 | 초기 로드 | ✅ | 20개 표시 |
| 2 | 진행률 표시 | ✅ | "20 / 10,429" |
| 3 | 더 보기 버튼 | ✅ | 정상 표시 |
| 4 | 데이터 누적 | ✅ | 40개로 증가 |
| 5 | 완료 메시지 | - | 미테스트 (데이터 많음) |
| 6 | 탭 변경 리셋 | ✅ | "제품" 탭 → "20 / 2,018"로 리셋 |
| 7 | 콘솔 에러 | ✅ | 에러 없음 |
2. 단가관리 (/sales/pricing-management) - 100개
| # | 항목 | 결과 | 비고 |
|---|---|---|---|
| 1 | 초기 로드 | ✅ | 20개 표시 |
| 2 | 진행률 표시 | ✅ | "20 / 100" |
| 3 | 더 보기 버튼 | ✅ | 정상 표시 |
| 4 | 데이터 누적 | ✅ | 20→80개 증가 (3회 클릭) |
| 5 | 완료 메시지 | ✅ | "모든 항목을 불러왔습니다 (100개)" |
| 6 | 탭 변경 리셋 | - | 탭 없음 |
| 7 | 콘솔 에러 | ✅ | 에러 없음 |
3. 매출관리 (/accounting/sales) - 83개
| # | 항목 | 결과 | 비고 |
|---|---|---|---|
| 1 | 초기 로드 | ✅ | 20개 표시 |
| 2 | 진행률 표시 | ✅ | "20 / 83" |
| 3 | 더 보기 버튼 | ✅ | 정상 표시 |
| 4 | 데이터 누적 | ✅ | 20→60개 증가 |
| 5 | 완료 메시지 | - | 미완료 테스트 |
| 6 | 탭 변경 리셋 | - | 탭 없음 |
| 7 | 콘솔 에러 | ✅ | 에러 없음 |
발견 및 수정된 이슈
| # | 페이지 | 이슈 | 심각도 | 상태 |
|---|---|---|---|---|
| 1 | 출금관리 | tableFooter 함수 전달 에러 | Medium | ✅ 수정 완료 |
수정 내용: 출금관리 tableFooter 에러
에러 메시지:
Functions are not valid as a React child.
<tfoot>{WithdrawalManagement.useMemo[config]}</tfoot>
원인: tableFooter를 함수로 전달했는데 IntegratedListTemplateV2는 ReactNode를 예상
수정 파일: src/components/accounting/WithdrawalManagement/index.tsx
수정 내용:
tableTotalsuseMemo 추가 (합계 계산)tableFooter를 함수에서 ReactNode로 변경- config useMemo dependencies에
tableTotals추가
검수 결론
테스트 환경 요약
- 대용량 데이터: 품목관리 (10,429개), 단가관리 (100개), 매출관리 (83개)
- 중규모 데이터 (더 보기 버튼 테스트): 입금/출금/매입 (60-70개), 이슈관리(55), 유틸리티관리(50), 기성관리(50), 근로자현황(30)
- 소규모 데이터: 거래처(5), 견적(4), 작업지시(2), 어음(16), 예상경비(3), 거래처원장(5), 프로젝트(12), 시공관리(11), 팝업(9), 계정(6), 협력사(5)
- 빈 데이터: 작업실적, 품질검사, 재고현황, 입고관리, 은행거래, 카드거래, 현장관리, 출하관리, 구조검토, 입찰관리, 견적관리(입찰), 계약관리
검증 완료 항목 (43개 페이지)
- ✅ 서버 사이드 페이지네이션: "더 보기" 버튼 정상 동작 (8개 페이지 확인)
- ✅ 데이터 누적: 페이지 데이터 유지 + 새 데이터 추가
- ✅ 탭 변경 리셋: 탭 변경 시 누적 데이터 초기화
- ✅ 완료 메시지: "모든 항목을 불러왔습니다 (N개)" 정상 표시 (23개 페이지)
- ✅ 빈 상태 처리: "검색 결과가 없습니다" 정상 표시 (12개 페이지)
- ✅ 콘솔 에러: 대부분 페이지 에러 없음
미완료/이슈 항목 (7개 페이지)
- ⚠️ 라우트 미설정: 5개 페이지 (bad-debt, payment-history, inquiry, notice, event)
- ⚠️ API 오류: 2개 페이지 (pricing, labor - 백엔드 이슈)
- ⚠️ 콘솔 경고: 1개 페이지 (base-info/items - NaN children 속성, 저심각도)
수정된 파일
IntegratedListTemplateV2.tsx: isServerSidePagination 로직 추가, 탭 변경 useEffect 수정WithdrawalManagement/index.tsx: tableFooter 함수→ReactNode 변환, tableTotals useMemo 추가
검수 진행 로그
[2026-01-21 AM] 초기 검수 시작
[2026-01-21 AM] 품목관리 - FULL TEST 완료 (10,429개)
[2026-01-21 AM] 거래처관리, 견적관리, 작업지시 - 완료 메시지 검수 완료
[2026-01-21 AM] 빈 데이터 페이지 검수 완료
[2026-01-21 PM] 전체 페이지 재검수 시작
[2026-01-21 PM] 자재관리 - 재고현황, 입고관리 검수 완료 (0건)
[2026-01-21 PM] 생산관리 - 작업실적 검수 완료 (0건)
[2026-01-21 PM] 영업/품질 - 단가관리 FULL TEST, 품질검사 검수 완료
[2026-01-21 PM] 기준정보 - 공정관리 검수 완료 (1건)
[2026-01-21 PM] 회계 페이지 검수 (10개+)
- 입금관리: 60건 ✅
- 출금관리: 60건, tableFooter 에러 발견 → 수정 완료 ✅
- 어음관리: 16건 ✅
- 매출관리: 83건 FULL TEST ✅
- 매입관리: 70건 ✅
- 예상경비: 3건 ✅
- 은행거래조회: 0건 ✅
- 카드거래조회: 0건 ✅
- 거래처원장: 5건 ✅
[2026-01-21 PM] 건설/출고 - 현장관리, 출하관리 검수 완료 (0건)
[2026-01-21 PM] 전체 검수 완료 - 발견된 이슈 1건 수정 완료
[2026-01-21 PM2] 전체 IntegratedListTemplateV2 페이지 재검수 (50개 파일)
[2026-01-21 PM2] 건설 도메인 전체 검수 (16개 컴포넌트)
- 현장관리, 발주관리, 구조검토: ✅
- 품목관리: 4건 ✅ (NaN 경고 - 저심각도)
- 단가관리, 노임관리: ⚠️ API 오류 (백엔드)
- 입찰관리, 견적관리, 협력사관리: ✅
- 계약관리, 프로젝트관리: ✅
- 시공관리: 11건 ✅
- 이슈관리: 55건, 더 보기 버튼 정상 ✅
- 근로자현황: 30건, 더 보기 버튼 정상 ✅
- 유틸리티관리: 50건, 더 보기 버튼 정상 ✅
- 기성관리: 50건, 더 보기 버튼 정상 ✅
[2026-01-21 PM2] 영업 추가 검수
- 수주관리: 2건 ✅
- 매출처관리: 5건 ✅
[2026-01-21 PM2] 설정/고객센터 검수
- 계정관리: 6건 ✅
- 팝업관리: 9건 ✅
- 결제내역: ⚠️ 라우트 없음
- 문의관리, 공지관리, 이벤트관리: ⚠️ 라우트 없음
[2026-01-21 PM2] 전체 검수 완료 - 43개 정상, 7개 미완료/이슈