Files
sam-docs/plans/qa-bugfix-plan-v2.md
권혁성 e4bc6d1ec2 docs: [qa] V2 plan 진행률 업데이트 (16/43, 37%)
- Phase 1 Critical 6건 완료
- Phase 2 출고 3건 완료, 3건 별도
- Phase 3 QMS 2건 완료, 2건 정상/자동해소
- Phase 4 V1#29 완료, #11/#12 재검증, 나머지 별도
- Phase 6 #24 완료, #19 자동해소, 3건 프론트이관
2026-03-18 14:53:17 +09:00

23 KiB

경동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 $caststax_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.phpgetItemPrice() 메서드가 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:69items.*.item_name => required 미수정

수정 대상:

파일 변경 내용
api/app/Http/Requests/Order/UpdateOrderRequest.php items.*.item_namesometimes|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. 작업 일정

Phase 0: 확인필요 (4건)              [0.5일] ██
Phase 1: Critical (6건)              [2.5일] ██████████
Phase 2: 출고/매출 Major (6건)       [2일]   ████████
Phase 3: QMS/검사 Major (4건)        [1.5일] ██████
Phase 4: 기타 Major (10건)           [3일]   ████████████
Phase 5: 신규기능 Major (3건)        [3일]   ████████████
Phase 6: Minor (9건)                 [1일]   ████
보류/패스                             [TBD]
                                     ─────────────────
총계                                  약 13.5일

최적 일정 (병렬 적용):

Day 1-2.5 : Phase 1 (Critical 6건)
Day 3-5   : Phase 2 (출고) + Phase 4 (기타) 병렬
Day 4-5.5 : Phase 3 (QMS) — Phase 1 해결 후
Day 5-7   : Phase 5 (신규기능) — 독립
Day 7-8   : Phase 6 (Minor) + Phase 0 결과 반영
              ─────────────────
최적 총계   약 8일

4. 의존성 맵

Phase 0 (확인필요)
├─→ #4 (출고예정일) ── 정책 결정
├─→ #21 (검사 수정) ── 정책 결정
├─→ V1#10 (작업 컬럼) ── 기획 확인
└─→ V1#12 (연락처) ── UX 결정

Phase 1 (Critical) ── 최우선
├─→ #16 (생산지시 500) ── 출고/매출 전체 차단
│    └─→ Phase 2 (출고/매출 6건)
├─→ #20 (검사 미반영) ── QMS 흐름 차단
│    └─→ #6 (QMS 노출조건) → Phase 3 (QMS 4건)
├─→ #28 (매출 0원) ── #16 선행
├─→ V1#15 (부가세) ── 독립
└─→ V1#33 (단가 0원) ── 독립 (V1#32, #13과 통합)

Phase 2 (출고/매출) ── #16 선행
Phase 3 (QMS/검사) ── #20 선행
Phase 4 (기타) ── 모두 독립
├─→ #11,#12 (거래처 필터) ── V1#25 패턴 적용
├─→ #13,V1#32 (단가) ── V1#33과 통합
└─→ V1#6 (거래처 mng 동기화) ── mng 확인 필요
Phase 5 (신규기능) ── 모두 독립
Phase 6 (Minor) ── 모두 독립

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건 통합 관리