품질 검증
주요 업무
- 전선을 설비에 공급하기 전, 전기적 특성에 대한 사전 검사 수행
- 자동화 설비에서 생산된 제품에 대해 시각적 검사 수행 (길이, 씰 고정, 단자 압착 상태 등)
- (추가) 검사 기준에 따라 Lot 단위 또는 시간·수량 기반 샘플링 방식으로 검증
- (추가) 검사 결과에 따른 합격/불합격/재검 판정 및 불량 이력 관리
- (추가) 검사 장비와 검사 인력(또는 검사조)을 기반으로 한 검사 이력 추적
설계 목적
- 전선 품질의 일관성과 신뢰성 확보
- 검사 방식(Lot, 시간, 수량 등)에 따른 유연한 결과 구조 표현
- 불량 코드, 위치, 이미지 등 상세 항목 기록을 통한 분석 기반 제공
- 검사 결과를 기반으로 한 공정 피드백 및 설비 품질 최적화
- 검사자 그룹 관리, 자동화 장비 연계, 데이터 기반 판단 자동화 흐름을 위한 기반 구축
고민한 내용
1. 품질검증의 다양성을 어떻게 표현해낼 것인가?
생산 이전의 원자재에 대한 검증도 있고, 생산 한 제품에 대한 검증도 있다. 그에 따른 다양한 검증 결과도 마찬가지일 것이다.
1-1. 품질검증을 분리해서 원자재와 완제품으로 품질 검증을 나눌것인가?
-> 원자재/완제품 두 가지 카테고리만으로는 다양한 검증들을 포함하기 어렵고, 완제품이 다른 제품의 원자재가 되는경우 데이터의 혼선이 발생할 수 있다.
결론 :하위 도메인을 구성하여 검증 대상과 절차에 대한 유연성과 검증결과의 다양성을 표현한다.
장점 :다양한 품질검증을 구현해낼 수 있고, 하위 도메인으로 인해 직관적으로 인식할 수 있다. 도메인 정합성, 유지보수 및 확장성
단점 :구조가 갖는 복잡성 증대로 개발 난이도 상승, 성능적 우려, 고객사 마다 하위 도메인에 대한 커스텀 필요.
1-2. 하위 도메인이 필요 없는 단순 결과에도 하위 도메인을 설정할 것인가?
장점 :데이터의 계층을 일관되게 설정할 수 있다. 유지보수, 유연성 증대
단점 :상위 도메인에 있는 내용과 중복적인 성격이 있다.
결론 :하위 도메인에 단순 결과 도메인을 추가하여 데이터 일관성을 높인다(비정규화)
QualityInspection (품질 검증)
속성명 | 타입 | 설명 | 관계 / 특징 |
inspectionId | UUID | 품질 검증 고유 식별자 | 식별자, Aggregate Root |
inspectionType | Enum | 검증 유형 (ELECTRICAL, VISUAL 등) | 업무 규칙 기반 |
modeType | Enum | 검증 모드 (LOT_BASED, TIME_SAMPLING, QUANTITY_SAMPLING) | 서브타입 구분 용도 |
inspectionDate | LocalDateTime | 품질 검증 수행 일시 | 시간 기반 이력 관리 |
technicianSetId | String | 검사 수행 담당 그룹 ID | TechnicianSet과 연관 |
equipmentId | String | 검사 대상 장비 ID (자동화 장비 등) | Equipment과 연관 가능 |
resultCode | Enum | 1차 결과 코드 (PASS, FAIL, RETEST 등) | 업무 흐름 제어용 |
resultDetail | UUID (FK) | 상세 검사 결과 ID (InspectionResult와 연결) | 서브타입 결과 구조와 연결 |
refUrl | String | 이미지, 검사결과서 등 외부 자료의 참조 URL | 외부 저장소 연계 |
remarks | String | 비고 및 추가 메모 | 자유 기입 필드 |
* modeType 에 해당 하는 서브타입 테이블
InspectionResult (단순 결과 도메인)
속성명 | 타입 | 설명 |
resultDetailId | UUID | 결과 상세 ID (PK) |
inspectionId | UUID (FK) | QualityInspection의 ID와 연결 |
modeType | Enum | 검사 방식에 따른 결과 유형 구분 |
resultCode | Enum | 결과 요약 코드 (PASS, FAIL, WARNING 등) |
createdAt | LocalDateTime | 결과 생성 일시 |
LotBasedResult (LOT 기반 서브타입)
속성명 | 타입 | 설명 |
resultDetailId | UUID (PK, FK) | 상위 결과 ID |
lotId | String | 검사 대상 Lot ID |
criticalDefects | Int | 치명적 불량 수 |
minorDefects | Int | 경미한 불량 수 |
decision | Enum | 최종 판정 (PASS, FAIL 등) |
TimeSamplingResult (시간 기반 서브타입)
속성명 | 타입 | 설명 |
resultDetailId | UUID (PK, FK) | 상위 결과 ID |
targetStartTime | LocalDateTime | 샘플링 시작 시각 |
targetEndTime | LocalDateTime | 샘플링 종료 시각 |
sampleCount | Int | 검사 샘플 개수 |
failCount | Int | 불량 개수 |
defectRate | Float | 불량률 (%) |
warningLevel | Float | 경고 기준 불량률 (%) |
failLevel | Float | 불합격 기준 불량률 (%) |
decision | Enum | 최종 결과 (PASS, WARNING 등) |
QuantitySamplingResult (수량 기반 서브타입)
속성명 | 타입 | 설명 |
resultDetailId | UUID (PK, FK) | 상위 결과 ID |
sampleSize | Int | 기준 수량 단위 (예: 1000개당 10개) |
sampledCount | Int | 실제 검사한 샘플 수 |
failCount | Int | 불량 수 |
defectRate | Float | 불량률 (%) |
decision | Enum | 최종 판정 |
DefectItem (불량 항목 VO)
샘플 또는 시각적 검사에서 발생한 개별 불량 이력
QualityInspection 또는 InspectionResult에 연결
속성명 | 타입 | 설명 |
defectCode | String | 불량 코드 (예: SEAL_MISALIGN, LENGTH_ERR) |
severity | Enum | 불량 심각도 (HIGH, MEDIUM, LOW) |
position | String | 위치 정보 (예: 120mm 지점) |
refUrl | String | 불량 이미지, 동영상 등 자료 참조 URL |
'제조 소프트웨어 > 설계' 카테고리의 다른 글
제조업 경험을 도메인으로(5) - MES/MSA 자재 관리 설계 (0) | 2025.04.14 |
---|---|
제조업 경험을 도메인으로(4) - MES/MSA 완제품 관리 설계 (0) | 2025.04.12 |
제조업 경험을 도메인으로(2) - MES/MSA 설비 관리 설계 (0) | 2025.04.05 |
제조업 경험을 도메인으로(1) (0) | 2025.04.05 |
제조업 경험 다시 읽기 (2) | 2025.03.27 |