Files
sam-react-prod/claudedocs/dev/[REPORT-2026-02-23] E2E-remaining-bugs-handoff.md
유병철 07374c826c refactor(WEB): claudedocs 재정리 및 AuthContext/Zustand/유틸 코드 개선
- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류
- 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제)
- AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화
- GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가
- PermissionDialog 삭제 → GenericCRUDDialog로 대체
- RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링
- toast-utils.ts 삭제 (미사용)
- fileDownload.ts 개선, excel-download.ts 정리
- menuStore/themeStore Zustand 셀렉터 최적화
- useColumnSettings/useTableColumnStore 기능 보강
- 세금계산서/견적/작업자화면/결재 등 소규모 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 17:17:13 +09:00

5.2 KiB

E2E 잔여 버그 전달 사항

작성일: 2026-02-23 근거: sam-hotfix/e2e/results/hotfix/HOTFIX-REPORT_dev-team_2026-02-20.md


프론트엔드 수정 완료 (3건 + 1건)

Bug ID 내용 수정 상태
BUG-SORT-001 컬럼 정렬 미구현 (14개 페이지) 완료
BUG-FILTER-001 매출관리 필터 미동작 완료
BUG-REDIRECT-001 어음/입금 등록 후 리다이렉트 완료
BUG-BATCH-DELETE-001 (입금) 삭제 후 빈 페이지 표시 완료 (UniversalListPage 공통 수정)

QA팀 확인 요청 (1건)

BUG-BATCH-DELETE-001 (어음관리) — E2E 테스트 패턴 불일치

현상: batch-create-acc-bills 시나리오에서 VERIFY 단계 FAIL (기대 3건, 실제 0건)

원인 분석:

  • E2E 테스트가 E2E_TEST_어음_{timestamp} 패턴으로 데이터를 검색
  • 그러나 실제 어음번호는 프론트엔드에서 E2E_TEST_EB 접두사로 생성됨
  • 백엔드 API 확인 결과: BillService.php:106에서 bill_number를 프론트가 보낸 그대로 저장 (변환 없음)
  • StoreBillRequest.php 검증: nullable|string|max:50 — 접두사 제한 없음

결론: API는 정상. E2E 테스트 스크립트의 검색 패턴(E2E_TEST_어음_)이 실제 생성 데이터 패턴(E2E_TEST_EB)과 불일치

요청 사항:

  • E2E 테스트의 어음번호 검색 패턴을 실제 프론트엔드가 생성하는 패턴에 맞게 수정
  • 또는 프론트엔드 어음 등록 폼에서 E2E 테스트 시 사용하는 어음번호 필드값 확인

백엔드팀 수정 요청 (1건)

BUG-PERF-001 — 품목관리 API 성능 문제 (10초+ 지연)

현상: 생산관리 > 품목관리 (/api/v1/items) 테이블 로드 10초 타임아웃

원인 분석 (sam-api 코드 확인):

병목 1: getItemsWithInspectionTemplate() — 전체 테이블 스캔 (5-8초)

파일: app/Services/ItemService.php (lines 1024-1060)

$templates = \DB::table('document_templates')
    ->where('tenant_id', $tenantId)
    ->where('is_active', true)
    ->whereNotNull('linked_item_ids')
    ->where(function ($q) use ($categoryCode, $categoryName) {
        $q->where('category', $categoryCode)
            ->orWhere('category', $categoryName)
            ->orWhere('category', 'LIKE', "%{$categoryName}%");
    })
    ->get(['linked_item_ids']);  // ← limit 없이 전체 로드
  • linked_item_ids는 JSON 컬럼 → 인덱스 불가
  • 페이지에 20개만 표시하는데 모든 document_templates 로드 후 PHP에서 수동 매칭
  • 템플릿 수가 많을수록 지연 증가

병목 2: N+1 쿼리 (2-3초)

파일: app/Services/ItemService.php (lines 376-390)

->with(['category:id,name', 'details', 'files']);
  • details (hasOne): 아이템당 1쿼리 → 20개 = 20쿼리
  • files (hasMany + document_type 필터): 아이템당 1쿼리 → 20개 = 20쿼리
  • 합계: ~40개 추가 쿼리

병목 3: 누락 인덱스

  • files 테이블: document_id + document_type 복합 인덱스 없음
  • document_templates 테이블: linked_item_ids JSON 인덱스 없음

예상 총 지연: ~9-11초 (E2E 10초 타임아웃과 일치)

수정 제안:

  1. getItemsWithInspectionTemplate()에서 필요한 item_id 목록만 IN 조건으로 조회하도록 변경
  2. files, item_details 테이블에 적절한 인덱스 추가
  3. Eager loading 최적화 (with 절에 필요한 컬럼만 select)

백엔드팀 참고 — 신규 리그레션 2건 (API 서버 상태)

리그레션 리포트(REGRESSION-REPORT_dev-team_2026-02-20.md)에서 발견된 신규 이슈. 3차 테스트에서 PASS → 4차(Pull 후) FAIL로 전환된 건으로, 서버 상태 확인 필요.

BUG-REGRESSION-001: 입금관리 CRUD 실패 (API 500 에러)

  • 시나리오: create-delete-acc-deposit
  • 증상: 다수 API 500 에러 (Welfare, Calendar, TodayIssue API)
  • API 평균 응답: 3,574ms (통상 84ms의 42배)
  • 테이블: 0건 로드 (데이터 로드 실패)

BUG-REGRESSION-002: 자유게시판 CRUD 실패 (API 극심한 지연)

  • 시나리오: create-delete-board
  • 증상: vendorId 옵션 로드 실패, 테이블 로드 5초 타임아웃
  • API 평균 응답: 7,752ms (통상 84ms의 92배)
  • 에러: Failed to load options for vendorId: TypeError: Failed to fetch

공통 추정 원인: Pull 이후 API 서버 불안정 (500 에러, fetch 실패 다수)


재검증 명령

# 전체 재검증
node C:/Users/codeb/sam/e2e/runner/run-all.js

# 버그별 개별 검증
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter pagination-sort    # BUG-SORT-001 ← 프론트 수정 완료
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter search-filter      # BUG-FILTER-001 ← 프론트 수정 완료
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter reload-persist     # BUG-REDIRECT-001 ← 프론트 수정 완료
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter batch-create       # BUG-BATCH-DELETE-001 ← 프론트 일부 수정 + QA 테스트 패턴 확인
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter workflow           # BUG-PERF-001 ← 백엔드 수정 필요