본문으로 건너뛰기
고급약 40분

생산 실적·재공·불량 데이터 정합성 — 숫자가 라인과 맞는지 확인하기

공장 소프트웨어가 내놓는 숫자는 투입·산출·재공·불량·재작업이 서로 맞물려야 한다. 실적 중복과 누락이 생기는 지점, 재공(WIP) 이 실물과 벌어지는 전형적 경로, 불량 수량을 어디서 세느냐에 따라 수율이 달라지는 문제, 그리고 QA 가 조회문으로 잡을 수 있는 정합성 규칙을 예제 공장의 실제 흐름 위에서 설계한다.

  • #생산실적
  • #재공
  • #WIP
  • #수율
  • #데이터정합성
  • #추적성
  • #제조QA

개념

제조 데이터의 결함은 조용히 쌓인다

기능 결함은 화면에서 티가 난다. 버튼이 안 눌리면 누군가 바로 말한다. 그런데 제조 데이터의 결함은 아무도 즉시 알아채지 못한다. 실적이 2대 더 올라가도 라인은 그대로 돌고, 재공 수량이 5대 틀려도 다음 공정은 제품이 있으니 작업한다. 숫자가 틀린 것이 드러나는 시점은 보통 세 가지다 — 월말 재고 실사, 고객 클레임으로 특정 시리얼을 역추적할 때, 그리고 원가 계산이 작년과 안 맞을 때.

그때가 되면 틀어진 시점을 찾을 수 없다. 로그는 이미 지나갔고, 설비는 그 사이 수천 대를 더 만들었다. 그래서 제조 QA 의 데이터 검증은 "지금 숫자가 맞는가" 를 보는 일이 아니라 "숫자가 틀어지면 틀어진 순간에 드러나는 장치가 있는가" 를 설계하는 일이다.

다섯 종류의 숫자가 서로를 설명한다

예제 공장(한빛정밀 2공장) 의 하루를 숫자로 적으면 이렇다.

숫자뜻세는 곳
투입공정에 들어간 수량작업 지시, 자재 출고
산출(양품)공정을 통과한 수량설비 완료 신호, 판정 OK
불량판정 NG 로 빠진 수량설비 판정 결과, 작업자 입력
재작업NG 중 손봐서 다시 넣은 수량재작업 지시, 재투입 기록
재공(WIP)지금 라인 안에 있는 수량계산값 또는 실사값

이 다섯 개는 독립적인 값이 아니다. 공정 하나를 두고 보면 반드시 아래 식이 성립해야 한다.

기초 재공 + 투입 = 산출(양품) + 불량 + 기말 재공

재작업이 있으면 식이 한 겹 늘어난다. 재작업품을 다시 투입으로 세는지, 불량에서 빼는지 는 공장마다 정책이 다르고, 그 정책이 문서화돼 있지 않은 경우가 대부분이다. QA 가 가장 먼저 할 일은 코드를 읽는 것이 아니라 이 식의 정의를 합의 문서로 만드는 것 이다. 정의가 없으면 "이 숫자가 틀렸다"는 결함을 제기할 근거가 없고, 개발자는 "그렇게 동작하도록 만들었다"고 답할 수 있다.

수율은 정의가 세 개다

수율(yield) 은 제조 품질 지표의 중심인데, 같은 라인에서 세 가지 값이 나온다.

  • 공정 수율 — 공정 하나를 통과한 비율. OP30 산출 ÷ OP30 투입
  • 직행률(FPY, First Pass Yield) — 재작업 없이 한 번에 끝까지 통과한 비율
  • 최종 수율 — 재작업을 포함해 최종적으로 출하 가능한 비율

같은 날 OP30 에서 100대 중 95대가 통과하고, 떨어진 5대 중 4대를 재작업으로 살렸다면 공정 수율은 95%, 직행률은 95%, 최종 수율은 99% 다. 경영 보고에는 최종 수율이 올라가고, 개선 활동은 직행률을 봐야 한다. 화면에 "수율" 이라는 이름의 숫자가 하나만 있으면 그것이 어느 정의인지 반드시 확인한다. 이름이 "수율" 인데 계산식이 최종 수율이면, 라인 개선 담당자는 매달 잘못된 숫자로 회의를 한다.

ISO 9000 계열 용어나 식스 시그마 계열 지표 정의(DPMO, RTY 등) 의 정확한 정의 문장은 각 체계의 원문에서 확인한다(해당 규격·교재 원문 확인). 이 레슨에서 중요한 것은 특정 정의가 맞다는 주장이 아니라, 프로젝트 안에서 정의가 하나로 고정돼 있는지 를 QA 가 확인한다는 점이다.

실적이 중복되는 네 가지 경로

실적 1건이 2건으로 올라가는 일은 생각보다 흔하다. 경로는 대개 네 가지다.

1) 설비 재전송 — 설비가 실적을 보냈는데 MES 응답(ACK) 을 못 받아 같은 건을 다시 보낸다. MES 쪽에 멱등 처리 가 없으면 2건이 된다. 멱등의 열쇠는 설비가 보내는 식별자다 — 시리얼 번호, 또는 설비 고유 카운터 값.

2) 작업자 수동 입력 중복 — 통신 장애로 실적이 안 올라간 것을 작업자가 수동 입력하고, 나중에 통신이 복구되면서 설비의 미전송 버퍼가 밀려 올라온다. 자동과 수동이 합쳐져 2배가 된다.

3) 재처리 배치 — "어제 실패한 건을 다시 처리" 하는 배치가 성공한 건까지 다시 넣는다. 실패 판정 기준이 느슨하면 전부 중복된다.

4) 화면 이중 클릭·새로고침 재전송 — 웹 서비스에서 익숙한 그 결함이 그대로 나타난다. 다만 여기서는 돈이 아니라 생산 수량이 틀어진다.

QA 입장에서 중요한 것은 네 경로 각각에 시험 케이스가 있는가 다. 1번과 2번은 모듈 62 레슨 3 의 에뮬레이터로 만들 수 있다. 3번은 실패 건을 인위적으로 만들고 배치를 두 번 돌려 확인한다. 4번은 일반 웹 시험 기법 그대로다.

누락은 중복보다 찾기 어렵다

중복은 "합계가 많다" 로 드러난다. 누락은 아무 신호도 없다. 양품 1,198대가 1,200대여야 했다는 것을 아는 방법은 다른 계층의 숫자와 비교하는 것 뿐이다.

  • PLC 의 생산 카운터 값 vs MES 실적 건수
  • 설비 자체 로그의 측정 레코드 수 vs MES 측정값 저장 건수
  • OP50 마킹 건수 vs 포장 수량 vs 출고 수량
  • 투입 자재 수량 ÷ 제품당 소요량 vs 산출 수량

이 비교를 대조 지점(reconciliation point) 이라고 부른다. QA 가 설계할 산출물은 "이 라인에 대조 지점이 몇 개 있고, 각 지점이 몇 분 주기로 비교되며, 벌어졌을 때 누구에게 알림이 가는가" 라는 표다. 대조 지점이 하나도 없는 시스템은 누락을 구조적으로 발견할 수 없다. 이것은 결함 1건이 아니라 설계 지적으로 올린다.

재공이 실물과 벌어지는 길

재공(WIP) 수량은 보통 계산값이다. 그래서 계산의 전제가 깨지면 실물과 벌어진다. 전형적 경로는 이렇다.

  • 빼돌린 제품 — 작업자가 설비 밖으로 제품을 빼서 따로 확인한 뒤 다시 넣는다. 시스템에는 흔적이 없다
  • 공정 건너뛰기 — 설비 고장으로 OP30 을 우회해 수동 시험으로 대체했는데 MES 에는 OP30 통과 기록이 없다. 그 제품은 영원히 OP30 재공으로 남는다
  • 폐기 미등록 — 떨어뜨려 깨진 제품을 치웠지만 폐기 등록을 안 했다
  • 교대 경계 — 교대 마감 시점에 설비 안에 있던 제품이 어느 교대 실적인지 규칙이 없다. 양쪽 교대 합계가 하루 합계와 안 맞는다
  • 미래 날짜·과거 날짜 입력 — 작업자가 날짜를 잘못 입력해 어제 재공이 오늘 늘어난다

이 중 교대 경계 와 공정 건너뛰기 는 QA 가 시험으로 반드시 덮어야 한다. 나머지는 운영 규칙 문제이지만, 시스템이 그 상황을 표현할 수 있는지 는 시험 대상이다. 폐기 등록 화면이 없으면 폐기 미등록은 사용자 잘못이 아니라 기능 누락이다.

추적성은 양방향 모두 끊길 수 있다

추적성 시험을 "완성품 시리얼을 넣으면 자재 로트가 나오는가" 로만 하면 절반만 본 것이다. 두 방향이 모두 필요하다.

  • 역추적(backward) — 시리얼 EWP24A00731 에 들어간 자재 로트, 작업한 설비, 적용한 레시피, 측정값, 작업자, 시각
  • 정추적(forward) — 자재 로트 IMP-2409-07 이 들어간 완성품 전부. 리콜 범위를 정하는 데 이 방향이 쓰인다

정추적이 더 자주 깨진다. 역추적은 화면이 있어서 누가 한 번은 써 보지만, 정추적은 리콜이 터질 때 처음 쓰이기 때문이다. QA 는 로트 하나를 골라 정추적 결과 건수를 세고, 그 로트의 입고 수량과 비교 한다. 입고 300개인데 정추적 결과가 180대면 120개의 행방이 설명되지 않는다 — 남은 재고일 수도, 기록 누락일 수도 있고, 그 구분을 할 수 있어야 추적성이 성립한다.

시간 축이 데이터를 틀어뜨린다

제조 데이터에는 최소 네 가지 시각이 섞인다.

시각뜻틀어지는 이유
설비 시각PLC·시험기가 찍은 시각설비 시계가 안 맞음, NTP 미동기
수집 시각게이트웨이가 받은 시각버퍼에 쌓였다 몰려 올라옴
저장 시각DB 에 들어간 시각배치 처리로 밀림
업무 시각생산일자·교대자정이 아니라 교대 경계로 나뉨

"생산일자" 가 위 넷 중 무엇을 기준으로 하는지가 정해져 있지 않으면 하루 경계의 수량이 매일 조금씩 틀린다. 그리고 설비 시계가 3분 틀어져 있으면 측정값과 작업 지시의 짝이 어긋나 추적성이 끊긴다. QA 는 설비 시계 동기 여부와 허용 오차를 시험 전제로 문서화 하고, 시계를 일부러 틀어 놓은 조건을 시험 케이스에 넣는다.

실무에서 왜 필요한가

제조 현장에서 QA 가 가장 빠르게 신뢰를 얻는 방법은 조회문으로 틀어진 숫자를 찾아 오는 것 이다. 기능 결함은 개발자도 알고 기획자도 알지만, 데이터 정합성 결함은 보통 아무도 보고 있지 않다.

그리고 이 결함들은 비용이 특이하게 크다. 실적이 틀리면 원가가 틀리고, 재공이 틀리면 재고 자산이 틀리고, 추적성이 끊기면 리콜 범위를 좁힐 수 없어 출하한 전량을 회수한다. 기능 결함 하나가 화면 수정으로 끝나는 데 비해, 데이터 결함 하나는 이미 쌓인 과거 데이터까지 보정해야 한다. 보정 작업은 대개 개발보다 비싸다.

QA 가 착수 시점에 만들어 두면 사업 끝까지 쓰이는 산출물이 셋 있다.

  1. 용어·계산식 정의서 — 투입·산출·불량·재작업·재공·수율의 정의와 식. 합의 서명을 받아 둔다
  2. 정합성 규칙 목록 — 조회문으로 판정 가능한 형태로 쓴 규칙들. 운영 중에도 정기 점검으로 돌아간다
  3. 대조 지점 표 — 어느 계층의 어느 숫자를 어느 주기로 비교하는가

이 셋은 QA 산출물로 끝나지 않고 운영 감시 요건으로 이어진다. 시험 때 썼던 정합성 조회문이 그대로 운영 모니터링 쿼리가 되는 경우가 많다. 이 연결을 의식해서 처음부터 재사용 가능한 형태 로 써 두면 일이 두 번 되지 않는다.

실습 과제

과제 1 — 정의서 작성과 모순 찾기 (25분)

한빛정밀 2공장을 대상으로 용어·계산식 정의서 를 쓴다.

  1. 투입·산출(양품)·불량·재작업·재공 다섯 항목의 정의를 각각 한 문단으로 쓴다. 정의에는 반드시 "어느 시점에, 어느 시스템이, 무엇을 근거로 센다" 가 들어간다
  2. 공정 수율·직행률·최종 수율 세 식을 쓰고, OP30 에서 100대 투입·95대 통과· 떨어진 5대 중 4대 재작업 성공이라는 조건으로 세 값을 각각 계산한다
  3. 재작업품을 "투입에 다시 더한다 / 더하지 않는다" 두 정책을 모두 적용해 위 식의 값을 각각 구한다. 어느 쪽이 더 보수적인 숫자인지 적는다
  4. 정의서를 다 쓴 뒤 스스로 모순을 찾는다. 같은 제품이 두 항목에 동시에 세어지는 경우, 또는 어느 항목에도 안 세어지는 경우를 최소 2개 찾아 적는다

과제 2 — 정합성 규칙 10개를 조회문으로 (30분)

모듈 61 레슨 2 에서 익힌 정합성 조회를 제조 데이터에 적용한다. 아래 표 구조를 가정한다(실제 프로젝트가 있으면 그 스키마를 쓴다).

테이블주요 열
work_orderwo_no, item_cd, plan_qty, prod_date, shift
prod_resultresult_id, wo_no, serial_no, op_cd, judge, equip_tm, recv_tm
measureresult_id, item_nm, value, lsl, usl
material_issuewo_no, lot_no, qty
trace_linkserial_no, lot_no

다음 규칙을 판정 가능한 조회문 으로 각각 쓴다. 결과가 0건이면 통과다.

  1. 같은 serial_no + op_cd 조합이 2건 이상인 실적(중복)
  2. judge 가 OK 인데 measure 값이 lsl ~ usl 밖인 레코드
  3. OP40 실적이 있는데 OP30 실적이 없는 시리얼(공정 순서 위반)
  4. prod_result 에 있는 wo_no 가 work_order 에 없는 레코드(고아)
  5. equip_tm 이 recv_tm 보다 미래인 레코드(시계 역전)
  6. equip_tm 과 recv_tm 차이가 10분을 넘는 레코드(버퍼 밀림 의심)
  7. 작업 지시별 실적 합계가 plan_qty 를 초과한 지시
  8. trace_link 가 없는 완성 시리얼(추적성 끊김)
  9. 교대 경계 전후 30분 구간에서 shift 가 비어 있거나 두 값이 섞인 실적
  10. 같은 serial_no 에 서로 다른 wo_no 가 붙은 실적

규칙마다 "0건이 아니면 무엇을 의미하는가" 와 심각도 를 한 줄씩 붙인다.

과제 3 — 대조 지점 표와 알림 설계 (20분)

한빛정밀 2공장에 대조 지점 표를 만든다.

  • 비교 대상 두 숫자(각각 어느 계층의 어느 값인지)
  • 비교 주기(실시간·시간별·일별)
  • 허용 오차와 그 근거(택트 중 설비 안에 있는 수량만큼은 정상 차이다)
  • 벌어졌을 때 알림 대상과 조치
  • 이 지점이 없을 때 발견하지 못하는 결함

최소 5개 지점을 만들고, 그중 하나라도 없으면 구조적으로 못 잡는 결함 이 무엇인지 마지막에 한 문단으로 정리한다.

과제 4 — 정추적 검증 시나리오 (20분)

자재 로트 IMP-2409-07 에 리콜이 걸렸다고 가정한다.

  1. 정추적으로 영향 범위를 산출하는 절차를 단계별로 쓴다
  2. 각 단계에서 숫자가 설명되지 않을 수 있는 경우 를 적는다 (입고 수량 ≠ 투입 수량 ≠ 정추적 결과 건수)
  3. 이 절차를 시험 케이스로 바꾼다. 사전 조건으로 어떤 데이터를 미리 만들어 둬야 하는지 적는다
  4. 역추적만 시험했을 때 놓쳤을 결함을 하나 구체적으로 적는다

자가 체크리스트

  • 제조 데이터 결함이 즉시 드러나지 않는 이유와, 그래서 검증 전략이 달라지는 이유를 설명할 수 있다
  • 투입·산출·불량·재작업·재공 다섯 숫자의 관계식을 쓰고 설명할 수 있다
  • 공정 수율·직행률·최종 수율을 구분해 계산할 수 있다
  • 화면의 "수율" 이 어느 정의인지 확인해야 하는 이유를 말할 수 있다
  • 실적 중복이 생기는 네 경로를 들고, 각각에 대응하는 시험 방법을 안다
  • 멱등 처리의 열쇠가 되는 식별자가 무엇인지 설명할 수 있다
  • 누락을 발견하려면 다른 계층의 숫자와 대조해야 한다는 것을 알고, 대조 지점을 설계할 수 있다
  • 재공이 실물과 벌어지는 다섯 경로를 들 수 있고, 그중 시험으로 덮을 것을 가를 수 있다
  • 교대 경계와 공정 건너뛰기를 시험 케이스로 만들 수 있다
  • 역추적과 정추적을 구분하고, 정추적이 더 자주 깨지는 이유를 말할 수 있다
  • 설비 시각·수집 시각·저장 시각·업무 시각을 구분하고 각각이 만드는 결함을 안다
  • 정합성 규칙을 "결과 0건이면 통과" 형태의 조회문으로 쓸 수 있다

흔한 실수

용어 정의 없이 숫자를 검증한다. "실적이 틀렸다" 는 결함을 올렸는데 개발자가 "재작업품은 투입에 안 더하는 게 맞습니다" 라고 답하면 더 할 말이 없다. 정의서를 먼저 만들고 합의를 받는 순서가 뒤바뀌면 결함 논쟁이 전부 의견 대립이 된다.

화면 합계만 비교한다. 화면이 보여 주는 합계는 같은 쿼리에서 나온다. 중복이 있으면 양쪽 다 중복된 값이므로 영원히 일치한다. 다른 계층의 숫자 와 비교해야 의미가 있다.

중복만 보고 누락을 안 본다. 중복은 합계가 커져 눈에 띄지만 누락은 신호가 없다. 누락 전용 대조 지점을 반드시 둔다.

판정과 측정값을 따로 본다. judge 가 OK 인데 측정값이 규격 밖인 레코드는 가장 위험한 결함 중 하나다. 불량품이 양품으로 출하된다. 두 값을 교차로 본다.

교대 경계를 자정으로 가정한다. 2교대·3교대 공장에서 생산일자 경계는 자정이 아니다. 자정 기준으로 시험 데이터를 만들면 경계 결함을 영원히 못 만난다.

설비 시계를 맞다고 가정한다. 현장 설비 중 몇 대는 거의 항상 시계가 틀어져 있다. 시계를 틀어 놓은 조건을 시험 케이스에 넣지 않으면 운영에서 처음 만난다.

정추적을 시험하지 않는다. 역추적 화면이 멀쩡하니 추적성이 된다고 보고한다. 리콜이 터지는 날 처음으로 정추적을 돌려 보게 되고, 그날은 시험할 시간이 없다.

과거 데이터 보정 계획 없이 결함만 올린다. 데이터 결함은 고쳐도 이미 쌓인 값이 틀린 채 남는다. 결함 보고서에 "과거 데이터 보정 범위" 항목 을 함께 넣으면 개발·운영이 같은 그림을 본다.

참고 자료

  • 프로젝트의 MES 데이터 모델 문서와 인터페이스 정의서(IFD) — 실적·재공·추적성 테이블의 열 정의와 갱신 시점이 적혀 있다. 정합성 규칙의 출발점은 이 문서다
  • ISA-95 / IEC 62264 의 생산 운영 관리 정보 모델 — 작업 지시·실적·자재 정보의 구조를 다룬다. 파트 번호와 각 모델의 정확한 범위는 원문 확인
  • 수율·DPMO·RTY 같은 지표의 정의는 식스 시그마 계열 교재와 사내 품질 표준의 정의 문장을 원문 확인 한다. 공장마다 식이 다를 수 있으므로 사내 정의가 우선이다
  • 모듈 61 레슨 2 — 정합성 조회: 중복·고아·누락을 찾는 조회문의 기본기. 이 레슨은 그 기법을 제조 스키마에 적용한 것이다
  • 모듈 62 레슨 1 — 공장 소프트웨어 지도: 계층별 숫자가 어디서 생기는지의 지도
  • 모듈 62 레슨 3 — 시뮬레이터: 중복·누락 조건을 인위적으로 만드는 수단

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
ISO — 국제표준화기구
여러 나라가 모여 "이건 이렇게 하자"를 문서로 정하는 단체. 그 문서 자체를 번호로 부른다.
MES — 제조 실행 시스템
공장에서 무엇을 얼마나 어떤 순서로 만들지 관리하는 시스템.
PLC — 프로그램 가능 제어기
공장 설비를 직접 움직이는 산업용 제어 장치.
DB — 데이터베이스
데이터를 넣어 두고 꺼내 쓰는 저장소. 보통 표 여러 개가 서로 연결된 형태다.
ISA-95 — 기업-제어 시스템 통합 표준
공장 설비부터 경영 시스템까지를 층으로 나눠 정리한 국제 표준.
IEC — 국제전기기술위원회
전기·전자 분야의 국제 규격을 만드는 단체.

용어집 전체 보기