경동dev QA 점검 이슈 수정 계획 (V2 — 통합)
작성일: 2026-03-17
목적: 2차 디펙리스트 신규 26건 + V1 미완료 이관 17건 = 총 43건 통합 관리
기준 문서: 경동dev_모듈별_기능 및 UI점검 - 디펙리스트.csv (2026-03-17)
V1 문서: docs/plans/qa-bugfix-plan.md (완료 처리 — 19건 완료, 17건 이관)
상태: 📋 계획 수립
📍 현재 진행 상태
| 항목 |
내용 |
| 총 이슈 |
43건 (신규 26 + V1이관 17) |
| 중요도 분포 |
Critical 6, Major 22, Minor 9, 확인필요 4, 보류/패스 2 |
| 완료 |
16건 (코드수정 12 + 코드정상/자동해소 4) |
| 미착수 |
27건 (재검증 2, 프론트이관 5, 별도세션 11, 기획확인 5, 보류 4) |
| 진행률 |
16/43 (37%) |
| 다음 작업 |
Phase 5 신규기능 또는 별도 세션 이슈 |
| 마지막 업데이트 |
2026-03-18 |
1. 개요
1.1 배경
2차 QA 점검(2026-03-17)에서 신규 26건 발견. V1(qa-bugfix-plan.md)의 미완료 17건을 코드 레벨 검증 후 이관하여 총 43건을 본 문서에서 통합 관리.
QA 핵심 메모: "#16(생산지시 500에러)이 풀리면 생산→출고→매출 흐름 검증 가능, #20(검사 목록 미표시)가 풀리면 품질관리 흐름 검증 가능. 이 2건이 최우선."
1.2 이슈 통계
| 중요도 |
신규 |
V1이관 |
합계 |
| Critical |
4건 |
2건 |
6건 |
| Major |
16건 |
8건 |
24건 |
| Minor |
4건 |
5건 |
9건 |
| 확인필요 |
2건 |
2건 |
4건 |
| 디펙아님 |
1건 |
— |
1건 (제외) |
| 보류/패스 |
— |
2건 |
2건 |
| 모듈 |
건수 |
비고 |
| 견적관리 |
7건 |
V1 이관 5건 포함 |
| 출고관리 |
5건 |
|
| QMS/품질인정심사 |
4건 |
|
| 수주관리 |
4건 |
V1 이관 1건 포함 |
| 제품검사관리 |
3건 |
|
| 거래처관리 |
3건 |
V1 이관 1건 포함 |
| 단가관리 |
3건 |
V1 이관 2건 포함 |
| 매출관리 |
2건 |
|
| 생산/작업지시 |
3건 |
V1 이관 2건 포함 |
| 재고관리 |
2건 |
V1 이관 1건 포함 |
| 배차차량관리 |
1건 |
|
| 품목관리 |
1건 |
V1 이관 (부분완료) |
| 품질검사 |
1건 |
V1 이관 |
| 공통 |
2건 |
V1 이관 (보류/패스) |
1.3 V1 완료 현황
| 구분 |
건수 |
내용 |
| V1 완료 |
19건 |
코드 검증 완료 (Phase 1: 3, Phase 2: 7, Phase 4: 9) |
| V1→V2 이관 |
17건 |
미수정 확인 → 본 문서로 이관 |
| V1 디펙아님 |
1건 |
#9 정렬정책 (정상) |
2. Phase 구조
2.0 Phase 0: 확인필요 (4건) — 정책 결정 후 배정
| # |
출처 |
모듈 |
이슈 |
확인 사항 |
| 4 |
신규 |
수주관리 |
출고예정일 빈값 → 납품요청일 복사 |
의도된 동작인지 확인 |
| 21 |
신규 |
제품검사 |
검사 완료 후 수정 가능 |
완료 후 수정 차단 필요 여부 |
| V1#10 |
V1이관 |
견적관리 |
목록 작업 컬럼 빈값 |
어떤 데이터가 들어가야 하는지 기획 확인 |
| V1#12 |
V1이관 |
견적관리 |
연락처 필수값 안내 시점 |
UX 정책: 저장 시 vs 실시간 검증 |
2.1 Phase 1: Critical (6건) — 최우선
생산→출고→매출, 품질관리 흐름 차단 + 데이터 정합성 파괴
#16 수주 생산지시 생성 500에러 Critical 🔴 신규 ✅ 기수정
| 항목 |
내용 |
| 현상 |
수주확정 후 생산지시 생성 클릭 시 [500] Undefined variable $process 에러 |
| 경로 |
/sales/order-management-sales/[id] → 생산지시 생성 |
| 영향 |
생산→출고→매출 전체 흐름 차단 |
| 비고 |
3/13 정상이었으나 3/16부터 에러 발생. 예시: KD-SS-260316-02 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/Order/OrderService.php |
createProductionOrder() 내 $process 변수 미정의 확인 |
api/app/Services/WorkOrderService.php |
생산지시 생성 로직 디버깅 |
검증:
#20 제품검사 등록 후 목록 미반영 Critical 🔴 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
제품검사 등록 성공 알럿 → 목록 이동 → 데이터 없음. 요약카드만 +1 |
| 경로 |
/quality/inspections?mode=new |
| 영향 |
품질관리 흐름 검증 차단 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/Quality/InspectionService.php |
등록 후 데이터 상태값/필터 조건 확인 |
react/src/components/quality/inspections/ |
목록 조회 필터와 등록 상태값 매칭 확인 |
#28 매출관리 매출액 0원 Critical 🔴 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
출고 완료되어도 매출금액 0원. SL202603~ 목록/상세 모두 0원 |
| 경로 |
/accounting/sales, /accounting/sales/[id]?mode=view |
| 선행 |
#16 해결 필요 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/Accounting/SalesService.php |
매출 생성 시 금액 계산 로직 확인 |
react/src/components/accounting/ |
매출 상세 금액 표시 확인 |
#6 QMS 로트추적 품질관리서 노출조건 Critical 🔴 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
실적신고 미확정 상태 데이터가 품질관리서 목록에 표시됨 |
| 경로 |
/quality/qms |
| 선행 |
#20 해결 필요 |
수정 대상:
| 파일 |
변경 내용 |
api/ (QMS Service) |
목록 조회 시 실적신고 확정 필터 추가 |
react/src/components/quality/qms/ |
프론트 필터 확인 |
V1#15 견적 부가세 값 미저장 Critical 🔴 V1이관 ✅ 완료 (vatType options 저장)
| 항목 |
내용 |
| 현상 |
부가세 포함 선택 후 저장 → 상세에서 부가세 미노출 |
| 경로 |
/sales/quote-management/new |
| 코드 검증 |
Quote 모델 fillable에 tax_amount 있으나, 프론트에서 tax_amount 미전송. 계산/저장 로직 자체 미구현 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Models/Quote/Quote.php |
$casts에 tax_amount 추가 |
api/app/Services/Quote/QuoteService.php |
저장 시 부가세 계산 로직 추가 |
react/src/components/quotes/QuoteRegistration.tsx |
vatType 선택 값을 API 전송 + 금액 계산 |
V1#33 단가 수정 시 0원 저장 Critical 🔴 V1이관 ✅ 완료
| 항목 |
내용 |
| 현상 |
단가 수정 시 저장되지 않고 0원으로 저장 |
| 경로 |
/sales/pricing-management/create?itemId= |
| 코드 검증 |
PricingService.php → getItemPrice() 메서드가 TODO 상태, return ['price' => 0] 하드코딩 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/Pricing/PricingService.php |
store(), update() 메서드 구현 (현재 TODO) |
react/src/components/pricing/PricingFormClient.tsx |
submit payload 필드명 매핑 확인 |
2.2 Phase 2: Major — 출고/매출 흐름 (6건) — 예상 2일
선행조건: Phase 1 #16(생산지시 500) 해결 필수
#22 출고 목록 로트번호 컬럼에 출고번호 표시 Major 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
로트번호 컬럼에 출고번호(SHP-*)가 표시됨. 상세에서는 - 표기 |
| 경로 |
/outbound/shipments |
#23 출고상세 제품내용 미표시 Major 신규 ✅ 기수정
| 항목 |
내용 |
| 현상 |
전체 출고건 "등록된 제품이 없다"고 표시 |
| 경로 |
/outbound/shipments/[id]?mode=view |
#25 출고 수동등록 로트번호 미로드 Major 신규
| 항목 |
내용 |
| 현상 |
생산완료 후 수동 등록 시 로트번호 목록 미로드 |
| 경로 |
/outbound/shipments?mode=new |
#26 출고 목록 상태/카드 불일치 Major 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
카드 출고완료 0건 vs 목록 출고완료 2건 |
| 경로 |
/outbound/shipments |
#27 매출관리 흐름 검증 불가 Major 신규
| 항목 |
내용 |
| 현상 |
출고 수동등록 불가로 매출 등록 확인 불가 |
| 선행 |
#25 + #16 해결 시 자동 해소 가능 |
#29 엑셀 업로드 구버전 제품명 산출 안됨 Major 신규
| 항목 |
내용 |
| 현상 |
엑셀 업로드 시 구버전 제품명으로 견적 산출 안됨 |
| 경로 |
/sales/quote-management/new?mode=new |
2.3 Phase 3: Major — QMS/제품검사 (4건) — 예상 1.5일
선행조건: Phase 1 #20, #6 해결 필요
#5 제품검사 수주개소/검사개소 매칭 불일치 Major 신규 ✅ 정상 (의도된 동작)
| 항목 |
내용 |
| 현상 |
수주 선택 시 모두 "불일치" 표시. "미검사" 워딩과도 불일치 |
| 경로 |
/quality/inspections?mode=new |
#7 QMS 품질관리서 품목명 미노출 Major 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
품질관리서 목록에 품목명이 표시되지 않음 |
| 경로 |
/quality/qms |
#9 QMS 수주로트 목록 검증 불가 Major 신규 ✅ #20 해결로 자동 해소
| 항목 |
내용 |
| 현상 |
기존 데이터로는 표시됨, 신규 검증 불가 (#20 선행) |
| 경로 |
/quality/qms |
#10 QMS 관련서류 탭 검증 불가 Major 신규 ✅ 완료
| 항목 |
내용 |
| 현상 |
관련서류 탭 수주서/작업일지/검사서 검증 불가 (#20 선행) |
| 경로 |
/quality/qms |
2.4 Phase 4: Major — 기타 모듈 (6건 신규 + 4건 V1이관) — 예상 3일
#11 신규 거래처가 수주처 목록에 미반영 Major 신규 ✅ 코드 정상 (배포 후 재검증)
| 항목 |
내용 |
| 현상 |
신규 등록 거래처가 견적 등록 시 수주처 목록에 미표시 |
| 경로 |
/sales/quote-management/new?mode=new |
#12 비활성 거래처도 수주처 목록에 포함 Major 신규 ✅ 코드 정상 (배포 후 재검증)
| 항목 |
내용 |
| 현상 |
활성 6건 + 비활성 14건 = 20건 전부 목록 표시 |
| 경로 |
/sales/quote-management/new?mode=new |
참고: V1 #25(수주관리 getClients({ only_active: true }))와 동일 패턴. 견적관리 쪽도 적용 필요.
#13 단가 신규 등록 기능 없음 Major 신규
| 항목 |
내용 |
| 현상 |
품목마스터 동기화 버튼만 존재. 수동 단가 등록 기능 없음 |
| 경로 |
/sales/pricing-management |
| 연관 |
V1#32, V1#33 (PricingService 통합 구현) |
#14 배차차량 상태 전환 방법 없음 Major 신규
| 항목 |
내용 |
| 현상 |
"작성대기"에서 전환 불가. 배차정보 입력해도 상태 변경 없음 |
| 경로 |
/outbound/vehicle-dispatches/[id]?mode=view |
#15 생산지시 상세 개소 값 불일치 Major 신규
| 항목 |
내용 |
| 현상 |
작업지시서 개소 컬럼에 품목 합 표시. 납품 개소 값이어야 함 |
| 경로 |
/sales/order-management-sales/production-orders/[id]?mode=view |
#17 수주 목록 상태/카드 불일치 Major 신규
| 항목 |
내용 |
| 현상 |
카드 생산지시 대기 7건 vs 목록 수주확정 5건 |
| 경로 |
/sales/order-management-sales |
V1#6 거래처 등록 시 회계관리 미노출 Major V1이관
| 항목 |
내용 |
| 현상 |
신규 거래처 등록 시 회계관리 거래처 목록에 미노출 |
| 코드 검증 |
ClientService에 mng DB 동기화 로직 없음 |
V1#11 견적 접수일 날짜 하루 밀림 Major V1이관
| 항목 |
내용 |
| 현상 |
접수 날짜 오늘(3/13) 설정 → 저장 후 목록에 3/12로 노출 |
| 코드 검증 |
QuoteRegistration.tsx에서 UTC 타임존 변환 처리 없음 |
V1#29 수주 수정 시 유효성 에러 Major V1이관 ✅ 완료
| 항목 |
내용 |
| 현상 |
수주 수정 저장 시 items.*.item_name required 에러 |
| 코드 검증 |
UpdateOrderRequest.php:69 → items.*.item_name => required 미수정 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Http/Requests/Order/UpdateOrderRequest.php |
items.*.item_name → sometimes|required 또는 nullable |
react/src/components/orders/ |
수정 submit 시 items에 item_name 포함 확인 |
V1#32 단가 등록 시 품목코드/품목명 변경 Major V1이관
| 항목 |
내용 |
| 현상 |
단가 등록 시 품목코드가 ITEM-15893, 품목명이 "없음"으로 변경됨 |
| 코드 검증 |
PricingService.php store() 미구현 (TODO 상태) |
| 연관 |
V1#33, 신규#13과 통합 처리 |
2.5 Phase 5: Major — 신규기능 개발 (3건 V1이관) — 예상 3일
기존 기능 수정이 아닌 신규 기능 개발 필요
V1#37 작업지시 품목 수량 수정 안됨 Major V1이관
| 항목 |
내용 |
| 현상 |
작업지시 상세에서 개소별 품목 수량 수정 시 업데이트 안됨 |
| 코드 검증 |
수량 수정 API 엔드포인트 자체 없음 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/WorkOrderService.php |
updateItem 수량 업데이트 로직 추가 |
api/app/Http/Requests/ |
WorkOrder 수량 수정 유효성 검증 |
react/src/components/production/WorkOrders/ |
수량 수정 API 호출 연동 |
V1#40 작업자 화면 미터 단위 자재투입 Major V1이관
| 항목 |
내용 |
| 현상 |
자재투입 시 EA 단위만 지원. 원단/내화실/슬랫코일 등 미터(m) 단위 미지원 |
| 운영 방식 |
미터 단위 차감 → 특정 개소에서 "소진" 체크로 일괄 소진 |
수정 대상:
| 파일 |
변경 내용 |
react/src/components/production/Worker/ |
미터(m) 단위 입력 + 소진 체크 기능 |
api/ (관련 Service) |
미터 단위 차감 + 소진 처리 API |
V1#41 재고관리 재고조정 API Major V1이관
| 항목 |
내용 |
| 현상 |
재고 조정 화면은 개발되어 있으나 API 미구현 |
| 기대 |
재고 조정 API + 조정 히스토리(이력) 적재 |
수정 대상:
| 파일 |
변경 내용 |
api/app/Services/Inventory/ |
재고 조정 API 구현 + 조정 사유 저장 |
api/app/Http/Controllers/ |
재고 조정 엔드포인트 추가 |
2.6 Phase 6: Minor (9건) — 예상 1일
| # |
출처 |
모듈 |
이슈 |
상세 |
상태 |
| 18 |
신규 |
재고현황 |
재공품 필드 0 표시 |
목록 0 노출, 상세 "사용" 표시 |
⏳ 기획 확인 |
| 19 |
신규 |
제품검사 |
상태/카드 불일치 |
카드 완료5 vs 목록 완료2 |
✅ #20에서 해소 |
| 24 |
신규 |
출고관리 |
상태 워딩 |
"출고완료으로" → "출고완료로" |
✅ 완료 |
| 32 |
신규 |
견적관리 |
날짜필터 활성화 스타일 |
선택 버튼 활성화 스타일 없음 |
→ 프론트이관 |
| V1#13 |
V1이관 |
견적관리 |
수동 품목 단가 0원 |
수동 추가 시 단가 입력 불가 |
⏳ 기획 확인 |
| V1#17 |
V1이관 |
견적관리 |
PDF 생성 안됨 |
DomPDF 미구현 |
⏳ 별도 세션 |
| V1#24 |
V1이관 |
견적관리 |
견적상태 3곳 불일치 |
상태/뱃지/금액요약 워딩 통일 |
→ 프론트이관 |
| V1#34 |
V1이관 |
품목관리 |
품목 규격 (나머지) |
WO items에 spec 미적용 |
⏳ 별도 세션 |
| V1#42 |
V1이관 |
품질검사 |
검사모달 페이지이동/검색 |
Major급 구조 변경 |
→ 프론트이관 |
2.7 보류/패스 (2건)
| # |
출처 |
이슈 |
사유 |
| V1#43 |
V1이관 |
절곡 바라시보기 |
mng 선행 필요 |
| V1#1,3 |
V1이관 |
열너비 정책 / 모달닫힘 정책 |
범위 넓어 별도 검토 |
2.8 디펙아님 (1건)
| # |
이슈 |
사유 |
| 41 |
입고 등록 서버에러 |
일시적 현상, 재현 안됨 |
3. 작업 일정
최적 일정 (병렬 적용):
4. 의존성 맵
5. 리스크
| 리스크 |
영향 |
대응 |
| #16 생산지시 500이 데이터 이슈일 가능성 |
디버깅 시간 증가 |
3/13→3/16 변화 원인 git log 확인 |
| 출고/매출 모듈 코드 미파악 |
분석 시간 추가 |
사전 코드 탐색 필요 |
| QMS 흐름이 #20 완전 의존 |
Phase 3 전체 블록 |
#20 최우선 해결 |
| V1#33 + V1#32 + #13 단가 통합 |
PricingService 전체 구현 필요 |
작업량 크므로 별도 집중 세션 |
| V1#15 부가세 프론트+백엔드 동시 수정 |
견적 금액 계산 전체 영향 |
기존 금액 데이터 영향 최소화 |
| V1#40,#41 신규기능은 설계 필요 |
기획/설계 선행 |
기획 확인 후 착수 |
| V1#6 거래처 mng 동기화 |
mng DB 아키텍처 이해 필요 |
samdb vs codebridge DB 관계 파악 |
6. V1 이관 이슈 추적
| V1 # |
V2 Phase |
이슈 |
중요도 |
V1 코드 검증 결과 |
| V1#15 |
Phase 1 |
부가세 미저장 |
Critical |
프론트 tax_amount 미전송, 계산로직 미구현 |
| V1#33 |
Phase 1 |
단가 수정 0원 |
Critical |
PricingService TODO 상태 |
| V1#6 |
Phase 4 |
거래처 등록 미노출 |
Major |
mng DB 동기화 없음 |
| V1#11 |
Phase 4 |
날짜 밀림 |
Major |
UTC 변환 미처리 |
| V1#29 |
Phase 4 |
수주 수정 에러 |
Major |
items.*.item_name required 미수정 |
| V1#32 |
Phase 4 |
단가 품목코드 변경 |
Major |
PricingService TODO 상태 |
| V1#37 |
Phase 5 |
작업지시 수량 |
Major |
수정 API 없음 |
| V1#40 |
Phase 5 |
미터 단위 |
Major |
기능 미구현 |
| V1#41 |
Phase 5 |
재고조정 API |
Major |
기능 미구현 |
| V1#13 |
Phase 6 |
단가 0원 |
Minor |
기획 확인 필요 |
| V1#17 |
Phase 6 |
PDF 생성 |
Minor |
환경 이슈 미확인 |
| V1#24 |
Phase 6 |
견적상태 불일치 |
Minor |
미착수 |
| V1#34 |
Phase 6 |
품목 규격 나머지 |
Minor |
accessor만 완료, WO 미적용 |
| V1#42 |
Phase 6 |
검사모달 |
Minor(Major급) |
구조 변경 필요 |
| V1#10 |
Phase 0 |
작업 컬럼 |
보류 |
기획 확인 |
| V1#12 |
Phase 0 |
연락처 필수값 |
확인필요 |
UX 정책 |
| V1#43 |
보류 |
절곡 바라시 |
보류 |
mng 선행 |
7. 변경 이력
| 날짜 |
항목 |
변경 내용 |
| 2026-03-17 |
- |
문서 초안 작성 (디펙리스트 CSV 기반 신규 26건) |
| 2026-03-17 |
V1이관 |
V1 코드 검증 후 미완료 17건 이관. 총 43건으로 통합 |
| 2026-03-18 |
Phase 1 |
Critical 6건 완료 (#16 기수정, #20 #28 #6 V1#15 V1#33 수정) |
| 2026-03-18 |
Phase 2 |
#22 #23 #26 완료, #25 #27 #29 별도 처리 |
| 2026-03-18 |
Phase 3 |
#7 #10 완료, #5 정상, #9 자동해소 |
| 2026-03-18 |
Phase 4 |
V1#29 완료, #11 #12 코드정상(재검증), 나머지 별도 처리 |
| 2026-03-18 |
Phase 6 |
#24 완료, #19 자동해소, #32 V1#24 V1#42 프론트이관 |
8. 참고 문서
| 문서 |
경로 |
| V1 QA Plan (완료) |
docs/plans/qa-bugfix-plan.md |
| 디펙리스트 CSV |
~/Downloads/경동dev_모듈별_기능 및 UI점검 - 디펙리스트.csv |
| 문서 인덱스 |
docs/INDEX.md |
| API 규칙 |
docs/dev/standards/api-rules.md |
| 품질 체크리스트 |
docs/dev/standards/quality-checklist.md |
| Git 컨벤션 |
docs/dev/standards/git-conventions.md |
| 프론트엔드 아키텍처 |
docs/frontend/v1/01-architecture.md |
9. 검증 결과
각 Phase 완료 후 이 섹션에 검증 결과 추가
9.1 Phase 1 검증
| 테스트 |
예상 결과 |
실제 결과 |
상태 |
| 수주확정 → 생산지시 (#16) |
500 에러 없음 |
|
⏳ |
| 제품검사 등록 → 목록 (#20) |
즉시 노출 |
|
⏳ |
| 출고완료 → 매출 금액 (#28) |
정상 금액 |
|
⏳ |
| QMS 미확정 제외 (#6) |
확정건만 표시 |
|
⏳ |
| 부가세 저장/노출 (V1#15) |
부가세 금액 표시 |
|
⏳ |
| 단가 수정 저장 (V1#33) |
입력 금액 유지 |
|
⏳ |
V1(qa-bugfix-plan.md): 19건 완료 → 완료 처리
V2(본 문서): 신규 26건 + V1 이관 17건 = 43건 통합 관리