docs: 개발팀 리그레션 리포트 작성 (4차 검증, 기존 5건 미수정 + 신규 2건)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-20 16:11:42 +09:00
parent 0ecebc5080
commit 9d272dfaea

View File

@@ -0,0 +1,262 @@
# Hotfix 리그레션 리포트 (4차 검증)
**작성일**: 2026-02-20
**작성자**: QA팀 (E2E 자동화 테스트)
**대상**: 개발팀
**서버**: https://dev.codebridge-x.com (hotfix 브랜치)
---
## 배경
개발팀에서 "버그 수정 완료" 통보 후 최신 코드를 Pull하여 **4차 E2E 전체 테스트**를 실행했습니다.
### 테스트 환경 변경사항
- `sam-api` Pull: `ee72af1` (chore: 사원관리-이메일 코드 수정)
- `sam-react-prod` Pull: 업데이트 있음
- `sam-manage` Pull: 업데이트 있음
- `sam-docs` Pull: `6c3c16c`
- `sam-sales` Pull: `ad79ed9`
---
## 결과 비교: 3차 → 4차
| 항목 | 3차 (Pull 전) | 4차 (Pull 후) | 변화 |
|:---:|:---:|:---:|:---:|
| 전체 시나리오 | 184 | 184 | - |
| PASS | 175 | 173 | **-2** |
| FAIL | 9 | 11 | **+2** |
| 성공률 | 95.1% | 94.0% | **-1.1%p** |
| 소요 시간 | ~68분 | 72.0분 | +4분 |
### 판정: 기존 버그 미수정 + 신규 리그레션 2건 발생
---
## 기존 버그 5건: 전부 미수정
| # | Bug ID | 우선순위 | 3차 결과 | 4차 결과 | 수정 여부 |
|---|--------|:-------:|:-------:|:-------:|:-------:|
| 1 | BUG-SORT-001 | HIGH | FAIL (3개) | FAIL (3개) | ❌ 미수정 |
| 2 | BUG-FILTER-001 | HIGH | FAIL (1개) | FAIL (1개) | ❌ 미수정 |
| 3 | BUG-REDIRECT-001 | MEDIUM | FAIL (2개) | FAIL (2개) | ❌ 미수정 |
| 4 | BUG-BATCH-DELETE-001 | MEDIUM | FAIL (2개) | FAIL (2개) | ❌ 미수정 |
| 5 | BUG-PERF-001 | LOW | FAIL (1개) | FAIL (1개) | ❌ 미수정 |
**기존 9개 FAIL 시나리오는 동일한 에러 메시지로 동일하게 실패합니다.**
상세 내용은 기존 리포트 참조: `HOTFIX-REPORT_dev-team_2026-02-20.md`
---
## 신규 리그레션 2건
### BUG-REGRESSION-001: 입금관리 CRUD 실패 (API 500 에러)
#### 기본 정보
| 항목 | 내용 |
|------|------|
| **우선순위** | **CRITICAL** |
| **카테고리** | API 서버 오류 |
| **FAIL 시나리오** | `create-delete-acc-deposit` |
| **영향 페이지** | 회계관리 > 입금관리 (`/accounting/deposits`) |
| **3차 결과** | ✅ PASS |
| **4차 결과** | ❌ FAIL (6/8 스텝 성공, 성공률 75%) |
#### 증상
1. CREATE 자체는 성공 (Step 3, 6.2초)
2. 목록 복귀 후 **테이블 행 0건** (기대: 20건 이상)
3. VERIFY 실패: 생성된 `E2E_TEST_` 데이터를 테이블에서 찾을 수 없음
4. DELETE 실패: `E2E_TEST_` 데이터 없음
#### 콘솔 에러 (10건)
```
1. [Notification] 알림 조회 실패: TypeError: Failed to fetch
2. Failed to load resource: the server responded with a status of 500 ()
3. Welfare API Error: Error: API 오류: 500
4. Failed to load resource: the server responded with a status of 500 ()
5. Calendar API Error: Error: API 오류: 500
6. Failed to load resource: the server responded with a status of 500 ()
7. TodayIssue API Error: Error: API 오류: 500
8. Failed to load resource: the server responded with a status of 500 ()
9. Failed to load resource: the server responded with a status of 500 ()
10. Failed to load resource: the server responded with a status of 500 ()
```
#### 페이지 상태
| 항목 | 값 | 비고 |
|------|----|------|
| DOM 노드 | 571 | 정상 대비 현저히 적음 (통상 1300+) |
| 테이블 행 | **0** | 통상 20행 (데이터 로드 실패) |
| API 평균 응답 | **3,574ms** | 통상 84ms (42배 느림) |
| 느린 호출 (>2s) | 1건 | |
#### 근본 원인 분석
- **API 서버에서 다수의 500 에러 발생** (Welfare, Calendar, TodayIssue API)
- 대시보드 관련 API 장애로 인해 **페이지 렌더링 자체가 불완전**
- 테이블이 로드되지 않아 VERIFY/DELETE 모두 실패
- **3차에서는 PASS였으므로, Pull 이후 API 서버 상태 변화가 원인**
#### 스텝별 결과
| # | 스텝 | Phase | 상태 | 소요시간 | 비고 |
|---|------|-------|------|---------|------|
| 1 | 페이지 로드 대기 | - | ✅ | 1007ms | |
| 2 | 테이블 로드 대기 | - | ✅ | 0ms | 20행 로드 (초기) |
| 3 | [CREATE] 데이터 생성 | CREATE | ✅ | 6166ms | |
| 4 | [CREATE] 생성 후 대기 | - | ✅ | 1001ms | |
| 5 | [CREATE] 목록 복귀 | CREATE | ✅ | 2014ms | |
| 6 | [CREATE] 목록 안정화 대기 | - | ✅ | 1000ms | |
| **7** | **[VERIFY] 생성 데이터 확인** | **VERIFY** | **❌** | **4019ms** | **ok:false** |
| **8** | **[DELETE] 데이터 삭제** | **DELETE** | **❌** | **1013ms** | **E2E_TEST_ 데이터 없음** |
---
### BUG-REGRESSION-002: 자유게시판 CRUD 실패 (테이블 로드 타임아웃 + API 극심한 지연)
#### 기본 정보
| 항목 | 내용 |
|------|------|
| **우선순위** | **CRITICAL** |
| **카테고리** | 성능 저하 / API 지연 |
| **FAIL 시나리오** | `create-delete-board` |
| **영향 페이지** | 게시판 > 자유게시판 (`/boards/free`) |
| **3차 결과** | ✅ PASS |
| **4차 결과** | ❌ FAIL (5/8 스텝 성공, 성공률 63%) |
#### 증상
1. 테이블 로드 대기에서 **5초 타임아웃** (Step 2)
2. CREATE 자체는 성공 (Step 3, 7.0초)
3. 목록 복귀 후 **테이블 행 0건**
4. VERIFY/DELETE 모두 실패
5. API 평균 응답 시간: **7,752ms** (극심한 지연)
#### 콘솔 에러
```
1. Failed to load options for vendorId: TypeError: Failed to fetch
```
#### 페이지 상태
| 항목 | 값 | 비고 |
|------|----|------|
| DOM 노드 | 400 | 정상 대비 현저히 적음 (통상 1300+) |
| 테이블 행 | **0** | 통상 20행 (데이터 로드 실패) |
| API 평균 응답 | **7,752ms** | 통상 84ms (**92배 느림**) |
| 느린 호출 (>2s) | **3건** | |
#### 근본 원인 분석
- **vendorId 옵션 로드 실패**: `Failed to load options for vendorId: TypeError: Failed to fetch`
- API 응답이 극도로 느려 테이블 데이터 로드 자체가 실패
- DOM 노드 수 400은 페이지가 정상 렌더링되지 않았음을 의미
- **3차에서는 PASS였으므로, Pull 이후 서버 상태/코드 변화가 원인**
#### 스텝별 결과
| # | 스텝 | Phase | 상태 | 소요시간 | 비고 |
|---|------|-------|------|---------|------|
| 1 | 페이지 로드 대기 | - | ✅ | 1011ms | |
| **2** | **테이블 로드 대기** | **-** | **❌** | **5006ms** | **타임아웃 (>5s)** |
| 3 | [CREATE] 데이터 생성 | CREATE | ✅ | 6994ms | |
| 4 | [CREATE] 생성 후 대기 | - | ✅ | 1001ms | |
| 5 | [CREATE] 목록 복귀 | CREATE | ✅ | 2013ms | |
| 6 | [CREATE] 목록 안정화 대기 | - | ✅ | 1001ms | |
| **7** | **[VERIFY] 생성 데이터 확인** | **VERIFY** | **❌** | **4038ms** | **ok:false** |
| **8** | **[DELETE] 데이터 삭제** | **DELETE** | **❌** | **1028ms** | **E2E_TEST_ 데이터 없음** |
---
## 리그레션 공통 패턴 분석
두 리그레션 시나리오에서 공통적으로 발견된 패턴:
| 항목 | BUG-REGRESSION-001 | BUG-REGRESSION-002 | 공통점 |
|------|:---:|:---:|------|
| 테이블 행 | 0 | 0 | 데이터 로드 실패 |
| DOM 노드 | 571 | 400 | 정상 대비 60~70% 감소 |
| API 평균 응답 | 3,574ms | 7,752ms | 극심한 지연 |
| API 500 에러 | 다수 | - | 서버 오류 |
| fetch 실패 | ✅ | ✅ | 네트워크/서버 문제 |
| 3차 결과 | PASS | PASS | Pull 후 발생 |
### 추정 원인
1. **API 서버 불안정**: Welfare, Calendar, TodayIssue, vendorId 등 다수 API에서 500 에러 또는 fetch 실패
2. **코드 배포 영향**: Pull로 반영된 변경사항이 API 서버 안정성에 영향
3. **서버 자원 문제**: API 응답 시간이 통상 84ms → 3,500~7,700ms로 42~92배 증가
---
## 요약: 전체 11개 FAIL 시나리오
| # | 시나리오 | Bug ID | 유형 | 우선순위 |
|---|---------|--------|------|:-------:|
| 1 | pagination-sort-acc | BUG-SORT-001 | 기존 미수정 | HIGH |
| 2 | pagination-sort-hr | BUG-SORT-001 | 기존 미수정 | HIGH |
| 3 | pagination-sort-sales | BUG-SORT-001 | 기존 미수정 | HIGH |
| 4 | search-filter-acc-sales | BUG-FILTER-001 | 기존 미수정 | HIGH |
| 5 | reload-persist-acc-bills | BUG-REDIRECT-001 | 기존 미수정 | MEDIUM |
| 6 | reload-persist-acc-deposit | BUG-REDIRECT-001 | 기존 미수정 | MEDIUM |
| 7 | batch-create-acc-bills | BUG-BATCH-DELETE-001 | 기존 미수정 | MEDIUM |
| 8 | batch-create-acc-deposit | BUG-BATCH-DELETE-001 | 기존 미수정 | MEDIUM |
| 9 | workflow-inventory-cycle | BUG-PERF-001 | 기존 미수정 | LOW |
| 10 | **create-delete-acc-deposit** | **BUG-REGRESSION-001** | **신규 리그레션** | **CRITICAL** |
| 11 | **create-delete-board** | **BUG-REGRESSION-002** | **신규 리그레션** | **CRITICAL** |
---
## 즉시 확인 요청 사항
### 1. API 서버 상태 점검 (긴급)
- Welfare API, Calendar API, TodayIssue API에서 500 에러 발생
- vendorId 옵션 로드 실패 (`Failed to fetch`)
- API 응답 시간 42~92배 증가 (84ms → 3,500~7,700ms)
- **서버 재시작 또는 최근 배포 변경사항 확인 필요**
### 2. 기존 버그 5건 수정 상태 확인
- 수정 완료 통보하셨으나 E2E 검증 결과 **5건 모두 동일하게 실패**
- 코드 변경이 dev 서버에 정상 배포되었는지 확인 필요
- 수정한 브랜치가 hotfix 브랜치인지 확인 필요
---
## 재검증 방법
```bash
# API 서버 안정화 후 전체 재검증
node C:/Users/codeb/sam/e2e/runner/run-all.js
# 리그레션 시나리오만 검증
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter create-delete
# 기존 버그 검증
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter pagination-sort
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter search-filter
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter reload-persist
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter batch-create
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter workflow
```
**목표**: 184/184 PASS (100%) 달성
---
## 참고 자료
| 자료 | 경로 |
|------|------|
| 기존 버그 리포트 | `e2e/results/hotfix/HOTFIX-REPORT_dev-team_2026-02-20.md` |
| 3차 실행 요약 (Pull 전) | `e2e/results/hotfix/E2E_FULL_TEST_SUMMARY_2026-02-20_02-17-51.md` |
| 4차 실행 요약 (Pull 후) | `e2e/results/hotfix/E2E_FULL_TEST_SUMMARY_2026-02-20_14-27-40.md` |
| 리그레션 #1 상세 | `e2e/results/hotfix/Fail-create-delete-acc-deposit_2026-02-20_13-29-50.md` |
| 리그레션 #2 상세 | `e2e/results/hotfix/Fail-create-delete-board_2026-02-20_13-30-19.md` |
| 진단 스크린샷 | `e2e/results/hotfix/screenshots/diag_create-delete-*.png` |