품질성적서(CoA)·시험성적서 관리 — LOT와 연결되지 않은 성적서는 품질증빙이 아니다
성적서가 있다는 것과, 그 성적서가 지금 쓴 원료·출하할 제품을 증명한다는 것은 다르다. 공급사 CoA·자가품질검사·고객 CoA를 구분하고 LOT·Quality Status·출하 Interlock으로 잇는 품질증빙 설계를 정리한다.
식품공장에서 ’성적서가 있다’는 사실과 ’그 성적서가 현재 사용한 원료 또는 출하하려는 제품을 증명한다’는 사실은 다르다.
원료창고에 공급업체 시험성적서가 보관돼 있고 품질팀 서버에 자가품질검사 결과가 저장돼 있어도, 실제 입고 LOT와 어떤 문서가 연결되는지 확인할 수 없다면 사고가 발생했을 때 다시 사람이 관계를 추정해야 한다.
특히 대형 유통사 PB, 프랜차이즈 OEM, 수출제품에서는 고객이 특정 LOT의 CoA를 요구하는 경우가 있다. 이때 필요한 것은 시험성적서 PDF 파일 하나가 아니라 해당 문서가 어떤 원료 LOT·생산 Batch·완제품 LOT와 연결돼 있는지를 증명하는 데이터 구조다.
CoA 관리의 핵심은 문서보관이 아니라 적합성의 연결이다.
자가품질검사와 고객용 CoA는 같은 문서가 아니다
먼저 용어를 구분할 필요가 있다. 식품위생법 제31조는 식품 등을 제조·가공하는 영업자가 제조·가공한 식품 등이 기준과 규격에 적합한지를 검사하도록 자가품질검사 의무를 둔다. 검사는 적법한 자가품질위탁 시험·검사기관에 위탁할 수도 있다. 현행 시행규칙은 자가품질검사 기록서를 2년간 보관하도록 규정한다.
그러나 이것을 “모든 완제품 LOT마다 자가품질검사를 실시하고 그 결과를 CoA로 발행해야 한다”는 의미로 해석하면 안 된다. 자가품질검사는 법령에서 정한 식품유형별 주기와 검사항목에 따라 수행하는 법정 검사다.
반면 고객용 CoA는 특정 완제품 LOT의 생산·검사 결과를 고객에게 증명하기 위해 회사가 발행하는 품질문서다. 고객 계약이나 Supplier Specification에서 요구할 수 있고 회사 자체 QA 정책으로 운영할 수도 있지만, 일반적인 식품제조업 전체에 동일하게 적용되는 법정 LOT별 발행의무와는 구분해야 한다.
공급업체가 원료 입고 시 제공하는 Raw Material CoA 역시 마찬가지다. 원료규격·공급업체 승인조건·HACCP 위해관리·고객 요구 또는 구매계약에 따라 중요한 입고검증 자료가 될 수 있지만, 일반 가공식품의 모든 원재료 LOT에 대해 동일한 형태의 CoA를 받아 보관해야 한다는 단일한 법정의무로 설명하는 것은 정확하지 않다.
따라서 시스템에서도 세 가지를 분리해야 한다. 목적이 서로 다르기 때문이다.
Supplier CoA— 입고 원료의 구매규격 적합성Statutory Self-Quality Test Result— 법정 자가품질검사 결과Finished Product / Customer CoA— 완제품 LOT의 고객 품질보증
자가품질검사 주기는 ’한 달에서 여섯 달’로만 관리해서는 안 된다
식품제조·가공업의 자가품질검사 주기는 제품 유형에 따라 다르다. 현행 시행규칙 별표 12에서는 떡류를 포함한 일정 식품군은 3개월마다 1회 이상, 빵류와 일부 식품은 2개월마다 1회 이상, 그 밖의 식품은 원칙적으로 1개월마다 1회 이상 검사하도록 구분한다. 일정 HACCP 조사·평가 결과를 충족하는 식품 등에 대해서는 6개월 주기가 적용될 수 있으며, 식중독 발생위험이 높은 지정기간에는 검사주기가 단축될 수도 있다. (주기·대상은 개정될 수 있어 최신 별표로 확인한다.)
따라서 ERP에 단순히 자가품질검사 = 3개월이라는 공통 Master를 만들어서는 안 된다. 제품 Master에는 최소한 식품유형·적용 검사주기·적용 검사항목·검사주기 산정기준·최근 검사일·다음 검사 예정일을 관리할 수 있어야 한다. 특히 여러 식품유형을 동시에 생산하는 공장에서는 이 부분을 사람이 달력으로 관리하면 누락 가능성이 높아진다. 검사 Scheduler가 필요한 이유다.
Raw Material CoA에서 가장 먼저 볼 것은 결과값이 아니라 LOT다
공급업체가 원료 A와 함께 CoA를 보내왔다. 미생물·수분·성분함량·중금속 등 여러 결과가 ’적합’으로 표시돼 있다고 하자. 품질팀이 검사결과만 보고 파일을 저장하면 중요한 통제가 하나 빠진다. 그 성적서가 오늘 입고한 원료를 대상으로 한 것인지 확인해야 한다.
입고된 원료의 제조 LOT가 RM-A240901인데 CoA에는 RM-A240815라고 적혀 있다면, 해당 문서는 현재 입고 LOT의 증빙이 아닐 수 있다. 따라서 입고검사에서는 최소한 공급업체·원료코드·공급업체 LOT·제조일 또는 검사대상 식별정보·시험일·검사항목·판정이 구매 Specification과 일치하는지 확인해야 한다.
검사항목도 모든 원료에 동일하게 적용해서는 안 된다. 미생물 위험이 중요한 원료와 중금속 또는 특정 성분규격이 중요한 원료는 관리항목이 다르다. 그래서 ERP Raw Material Master에는 단순히 ’CoA 필요 Y/N’만 두는 것보다 원료 → 공급업체 → Specification Version → Required Test Item 관계를 두는 편이 낫다.
같은 품목이라는 이유로 다른 LOT의 CoA를 돌려 쓰면 안 된다
실무에서 발생하기 쉬운 오류다. 지난달 입고한 원료 A의 CoA가 있다. 이번 달에도 같은 제조사의 같은 원료 A가 입고됐지만 공급업체 LOT가 달라졌다. 담당자가 “같은 원료니까 지난번 성적서로 보관하자”고 처리하면 문서는 존재하지만 LOT 적합성은 증명하지 못한다.
특히 고객사 계약이 LOT별 CoA 제출을 요구하거나 공급업체가 LOT별 분석결과를 발행하는 체계라면 문서와 실제 입고 LOT가 일치해야 한다. 반대로 공급업체의 품질보증 체계가 Batch별 CoA가 아니라 일정주기의 공인시험 결과나 Specification Certificate를 제공하도록 계약돼 있다면 그 방식에 맞춰 관리하면 된다. 중요한 것은 CoA라는 이름 자체가 아니라 구매 Specification에서 무엇을 증명자료로 요구했는지를 명확히 하는 것이다.
성적서가 도착하지 않았을 때 재고상태부터 달라져야 한다
원료가 공장에 도착했지만 필수 CoA가 아직 도착하지 않았다고 하자. 물리적으로 창고에 500kg이 존재하므로 ERP On Hand는 500kg이다. 그러나 구매규격상 CoA 확인 후 사용하도록 정해진 원료라면 500kg 전부를 생산가능재고로 보여줘서는 안 된다.
이때 필요한 것이 Quality Status다. RECEIVED / QC HOLD / RELEASED / REJECTED 같은 상태를 둘 수 있다. 원료는 입고되지만 CoA 검증이 끝나기 전까지 QC HOLD 상태로 유지하고, QA 또는 QC가 문서를 확인해 승인한 뒤 RELEASED로 전환한다.
MES는 생산투입 시 원료 LOT를 Scan하면서 상태를 확인한다. QC HOLD라면 투입을 차단한다. 이것이 Raw Material CoA를 실제 제조통제로 연결하는 방식이다. 파일 서버에 PDF를 저장하는 것만으로는 이런 통제가 발생하지 않는다.
자가품질검사 결과와 개별 생산 LOT의 관계도 과장해서는 안 된다
자가품질검사 결과가 적합하다고 해서 같은 품목의 모든 LOT가 개별적으로 시험을 통과했다는 의미는 아니다. 법정 검사는 정해진 주기에 따라 해당 식품의 기준·규격 적합성을 확인하는 체계이고, 개별 Batch Release는 제조업체가 설정한 품질보증 절차다. 두 가지를 시스템에서 구분해야 한다.
자가품질검사 결과에는 제품 또는 식품유형 · 검사대상 제조정보 · 검사기관 · 접수일 · 검사일 · 검사항목 · 시험결과 · 판정 · 성적서 번호 · 다음 검사 예정일을 연결한다. 반면 생산 LOT에는 공정 중 QC 결과와 완제품 검사결과, CCP 기록, 포장검사, 중량검사 등 해당 Batch에 실제 적용된 품질 데이터를 연결한다.
그래야 고객용 CoA를 만들 때 법정 자가품질검사 성적서를 그대로 복사하는 게 아니라 해당 LOT에서 실제 확보된 품질정보만으로 문서를 구성할 수 있다.
고객용 CoA는 ’검사하지 않은 값을 자동으로 만드는 문서’가 되어서는 안 된다
MES에서 CoA 자동발행 기능을 개발할 때 가장 조심해야 하는 부분이다. 고객 A가 수분·중량·미생물·관능검사 결과가 표시된 LOT별 CoA를 요구한다고 하자. 시스템이 Template에 값을 넣어 PDF를 자동 생성하는 것은 어렵지 않다. 문제는 원천 데이터다. 그 값이 무엇인지 구분해야 한다.
- 해당 LOT에서 실제 측정한 값인가
- 주기검사 결과를 표시하는 것인가
- Specification의 보증범위를 표시하는 것인가
- 공급업체 자료를 전재한 것인가
실제 검사하지 않은 Batch의 시험값을 이전 LOT 결과에서 복사해 넣으면 자동화가 오히려 품질기록의 신뢰성을 떨어뜨린다. 따라서 CoA Field마다 Source를 정의하는 게 좋다. 순중량은 MES Weight Check 결과에서, 생산일과 LOT는 Production Batch에서, 특정 QC 값은 MES Quality Module에서 가져온다. 고객에게 보증하는 규격값은 Customer Specification에서 불러올 수 있다. Measured Result와 Specification Limit을 같은 값처럼 관리해서는 안 된다.
완제품 LOT의 출하여부는 CoA 파일 존재보다 QC Release로 결정해야 한다
제품이 생산되면 Finished LOT가 생성된다. 그러나 생산이 완료됐다고 바로 출하 가능한 것은 아니다. 품질검사가 끝나지 않았거나 검사결과가 부적합일 수 있다. 그래서 완제품 재고에도 Quality Status가 필요하다. 생산완료 직후 QC HOLD, 검사 승인 후 RELEASED, 부적합 판정 시 NONCONFORMING을 쓴다.
ERP 출하지시가 발생했을 때 WMS 또는 출하모듈은 단순 재고수량만 확인해서는 안 된다. 해당 LOT가 RELEASED 상태인지 확인해야 한다. 고객계약상 CoA 발행이 필요한 제품이라면 CoA 승인 여부까지 출하조건에 추가할 수 있다.
Sales Order → Finished LOT → QC Release → CoA Approval → Shipping
의 조건을 통과하지 못하면 피킹지시나 출하라벨 발행을 차단하는 것이 Shipping Interlock이다. 이것은 법에서 모든 식품에 동일하게 요구하는 기능이 아니라 기업이 품질사고를 줄이기 위해 설계하는 내부 통제다.
성적서 보관에서 중요한 것은 PDF보다 검색키다
자가품질검사 기록서는 현행 시행규칙상 2년간 보관해야 한다. 전자보관을 하더라도 폴더에 PDF를 쌓아두는 것만으로는 검색성이 약하다. 파일이 시험성적서_9월.pdf라는 이름으로 저장돼 있다면 1년 뒤 특정 품목의 검사이력을 찾기 위해 다시 파일을 열어봐야 한다.
성적서에는 구조화된 Index가 필요하다. 제품코드 또는 원료코드 · LOT 또는 검사대상 식별정보 · 공급업체 · 검사기관 · 성적서 번호 · 검사일 · 결과 · 승인상태 · 문서파일. 이 정보가 데이터베이스에 있고 PDF가 Evidence로 연결되는 구조가 좋다. 그러면 실사에서 특정 LOT를 지정해도 바로 관련 품질문서를 호출할 수 있다.
수기 성적서 관리와 시스템 관리의 차이는 ’전자화’가 아니다
| 구분 | 서류철·파일 중심 관리 | ERP·MES/QMS 연동 |
|---|---|---|
| 원료 CoA | 담당자가 육안 대조 | 원료 LOT·공급사와 매핑 |
| 필수 검사항목 | 경험·문서 확인 | Specification Master 호출 |
| 입고 승인 | 별도 서명·표찰 | Quality Status 전환 |
| 자가품질검사 주기 | 엑셀·달력 관리 | 식품유형별 Scheduler |
| 시험결과 | PDF 중심 | 결과값+원본문서 연결 |
| 완제품 QC | 검사표 별도 보관 | Finished LOT에 직접 연결 |
| 고객용 CoA | 수기 작성 | 승인된 데이터로 생성 |
| 출하통제 | 출하자가 확인 | QC Release Interlock |
| 변경이력 | 파일 수정일 확인 | 승인·변경 Audit Trail |
| 실사 대응 | 문서철 검색 | LOT 기준 즉시 조회 |
전자화의 핵심은 종이를 PDF로 바꾸는 게 아니라 성적서가 해당 원료와 해당 제품의 사용·출하여부를 결정하도록 만드는 것이다.
시험성적서가 부적합이면 문서관리 문제가 생산통제 문제로 바뀐다
자가품질검사 결과가 부적합으로 나왔을 때는 단순히 성적서 상태를 ’부적합’으로 변경하고 끝낼 일이 아니다. 식품위생법은 자가품질검사를 직접 실시한 영업자가 일정한 법 위반으로 국민건강에 위해가 발생하거나 발생할 우려가 있는 결과를 확인한 경우, 식품의약품안전처장에게 지체 없이 보고하도록 규정한다.
실제 대응에서는 해당 제품이 아직 공장에 남아 있는지, 이미 출하됐는지, 어떤 LOT가 관련되는지를 즉시 확인해야 한다. 따라서 품질성적서 시스템은 LOT 역추적 체계와 연결돼야 한다. 시험결과가 부적합이면 관련 Finished LOT를 찾고, 재고상태를 HOLD로 전환하며, 이미 출하된 경우 거래처와 수량을 확인할 수 있어야 한다. 품질문서와 LOT Tracking이 분리돼 있으면 부적합 통보를 받은 뒤 다시 생산일보와 출고전표를 뒤져야 한다.
검사주기 알림은 법정기한 전날 울리는 방식보다 생산계획과 연결해야 한다
자가품질검사 Scheduler를 단순히 D-1 알림으로 만들면 운영상 불편하다. 검사주기가 도래했는데 해당 제품 생산계획이 한 달 뒤라면 시료 채취 자체가 불가능할 수 있다. 반대로 주기 만료 직전에 대량 생산계획이 잡혀 있다면 미리 검사를 준비해야 한다.
그래서 시스템에서는 다음 검사기한과 생산계획을 함께 보는 편이 좋다. 검사 예정일이 다가오고 해당 품목 생산지시가 예정돼 있다면 QA에 사전 알림을 보낸다. 생산 Batch가 완료되면 필요한 검체채취 업무를 생성할 수도 있다. 검사기관 의뢰 → 접수 → 결과대기 → 적합/부적합까지 Workflow로 관리하면 단순한 일정알림보다 훨씬 안정적이다.
Audit Trail은 성적서 숫자를 못 바꾸게 하는 게 아니라 변경을 숨기지 못하게 하는 것이다
시험결과를 사람이 입력하는 시스템에서는 오입력이 발생할 수 있다. 12.6을 1.26으로 입력할 수도 있다. 따라서 수정 자체를 완전히 막는 것보다 원래 값·변경값·변경자·변경시각·사유·승인자를 남기는 것이 중요하다.
외부 시험기관이 발행한 PDF 원본은 그대로 보존하고, 시스템에 입력한 구조화 데이터와 연결한다. 원본과 시스템 데이터가 다르다면 차이를 확인할 수 있어야 한다. 이 구조가 Audit Trail 기반 품질데이터 관리의 핵심이다. Digital Record는 존재한다는 이유만으로 신뢰할 수 있는 기록이 되는 게 아니다. 원자료가 보존되고 수정·승인과정이 추적돼야 한다.
유통사 실사에서는 ‘성적서가 있습니까’ 다음 질문이 더 중요하다
제2자 품질실사에서 문서 한 장을 보여주는 것은 어렵지 않다. 문제는 다음 단계다.
- “이 성적서의 원료는 어느 제품에 사용됐습니까?”
- “이 완제품 LOT의 검사결과를 보여주십시오.”
- “부적합 원료가 생산에 투입되지 않는다는 것을 어떻게 통제합니까?”
- “검사주기가 지난 제품은 어떻게 확인합니까?”
이때 각각 다른 엑셀과 문서철을 열기 시작하면 관리체계가 분산돼 있다는 것이 드러난다. 반대로 하나의 LOT에서 입고검사·공급사 CoA·실제 생산투입·공정검사·완제품 QC·출하내역까지 연결된다면 성적서가 단순 문서가 아니라 생산이력의 일부로 작동한다. 이 지점이 유통사 제2자 감사 대응과 연결된다.
CoA 자동화의 목표는 PDF 자동생성이 아니다
ERP/MES에서 CoA를 자동화한다고 하면 흔히 버튼을 누르면 PDF가 생성되는 기능부터 생각한다. 하지만 그 기능은 마지막 단계다. 먼저 다음이 갖춰져야 한다.
- 원료 Master에 공급업체별 검사요건이 있어야 한다
- 입고 LOT와 Supplier CoA가 연결돼야 한다
- QC 승인 전에는 사용을 제한할 수 있어야 한다
- 생산 Batch에는 실제 공정검사 결과가 쌓여야 한다
- Finished LOT에는 품질상태가 연결돼야 한다
- 고객별 Specification에 어떤 항목을 CoA에 표시할지가 정의돼야 한다
그 이후에야 승인된 데이터를 사용해 CoA를 자동 생성할 수 있다. 데이터 구조를 먼저 만들지 않고 PDF 자동발행부터 구현하면, 기존 수기문서를 더 빠르게 만드는 수준에 머문다.
품질문서는 재고·생산·출하와 연결될 때 통제가 된다
식품공장의 품질성적서 체계는 세 개의 서로 다른 증명관계를 가지고 있다.
- 공급사 CoA는 입고 원료가 구매규격에 적합한가를 확인하는 Evidence다.
- 자가품질검사는 제조한 식품이 법정 기준·규격에 적합한지를 정해진 주기에 따라 확인하는 법정 검사체계다.
- 완제품 LOT별 CoA는 특정 제품 LOT에 대해 고객과 약정한 품질정보를 제공하는 품질보증 문서로 설계할 수 있다.
세 문서를 하나로 취급하면 검사주기와 LOT 개념이 뒤섞인다. 반대로 ERP Master Data, MES Quality Module과 LOT Traceability를 통해 각 문서의 역할을 구분하면 품질관리가 실제 Transaction과 연결된다. 입고 원료는 승인되지 않으면 생산에 쓸 수 없고, 완제품은 QC Release가 끝나지 않으면 출하할 수 없으며, 부적합 결과가 발생하면 관련 LOT가 HOLD되고 Forward/Backward Tracking이 시작된다.
성적서의 목적은 파일을 보관하는 데 있지 않다. 검사결과가 원료의 사용 가능 여부와 완제품의 출하 가능 여부를 바꾸도록 만드는 것, 그것이 CoA와 MES·ERP를 연결해야 하는 이유다.
식품 제조업 HACCP 문서 전산화 가이드 — 종이 기록에서 전자결재·Audit Trail·스마트 HACCP까지
HACCP · 품질3분 만에 확인최종 검증:
개정 이력
· 발행
여기 담긴 규정·수치는 최소 6개월마다 위 공식 출처와 대조해 재확인합니다. 실질적 변경(요건·기준·수치)은 조용히 덮어쓰지 않고 개정 이력에 남깁니다.
이 글은 일반적인 실무 정보이며 법률·세무·행정 자문이 아닙니다. 규정·수치는 관할과 시점에 따라 달라지므로, 실제 판단 전 위 공식 출처와 관할 기관에서 최신 기준을 확인하시기 바랍니다.
