식품 회수·리콜 실행 가이드 — 숨기는 것보다 얼마나 빨리 범위를 좁히고 회수하느냐가 중요하다
위해 위반을 확인하고도 '조금 더 보고 움직이자'가 가장 위험하다. 출고 차단→역추적/정추적→Mass Balance로 회수범위를 좁히고, 생산량·출하·회수·미회수를 하나의 데이터로 설명하는 법.
식품사고가 발생했을 때 가장 위험한 판단은 “조금 더 확인해 본 뒤 움직이자”다.
자가품질검사나 외부 시험검사 결과에서 위해 관련 위반이 확인됐는데도 출고를 계속하거나, 이미 유통된 제품을 비공식적으로 조용히 회수하려 하면 문제의 범위가 커질 수 있다.
현행 식품위생법 제45조는 판매 목적으로 식품을 제조·가공·소분·수입 또는 판매한 영업자가 위해와 관련된 위반 사실을 알게 된 경우 지체 없이 해당 식품을 회수하거나 회수에 필요한 조치를 하도록 규정하고 있다. 이 경우 회수계획을 관할 행정기관에 미리 보고해야 한다.
식품회수의 핵심은 이미지 관리가 아니라 영향받은 제품의 범위를 빠르게 확정하고, 더 이상 출고되지 않게 막으며, 이미 유통된 수량을 추적해 회수하고, 그 결과를 행정기관에 설명할 수 있는가다.
회수는 “문제 제품을 버리는 일”이 아니다
회수는 일반적인 폐기와 다르다. 공장 내부에서 품질검사 중 부적합을 발견해 아직 출고되지 않은 제품을 격리·폐기하는 것은 내부 부적합 관리에 가깝다. 반면 이미 판매 또는 유통된 제품이 회수대상 위해식품에 해당한다면 법정 회수절차가 작동할 수 있다.
시행규칙 제58조는 회수대상 기준을 별표 18에 연결하고 있으며, 자가품질검사나 지정 시험·검사기관의 검사결과를 통해 회수대상 위반 사실을 확인한 경우를 명시하고 있다. 따라서 QA팀은 공장 내부에서 차단 가능한 부적합과 이미 유통돼 법적 회수절차가 필요한 부적합을 먼저 구분해야 한다.
회수계획은 먼저 ‘무엇을 얼마나 회수해야 하는지’ 정의해야 한다
현행 시행규칙 제59조에 따르면 회수계획에는 최소한 다음 정보가 포함돼야 한다.
- 제품명 / 제조연월일 / 소비기한
- 회수계획량 / 회수 사유 / 회수방법
- 회수기간과 예상 소요기간
- 회수제품의 폐기 등 처리방법
- 회수 사실을 국민에게 알리는 방법
이 중 가장 어려운 값은 회수계획량이다. 단순히 해당 Lot의 총생산량을 적는 것이 아니라 위해식품으로 판명된 시점의 소비량과 소비기한 등을 고려해 산출해야 한다.
결국 회수 시스템의 첫 번째 질문은 이것이다. 문제 Batch가 몇 개였는가가 아니라, 그중 얼마가 이미 소비됐고 얼마가 유통 중이며 얼마가 아직 창고에 남아 있는가.
회수의 첫 단계는 원인분석보다 출고 차단이다
위해 가능성이 확인됐을 때 가장 먼저 해야 할 일은 추가유통을 막는 것이다.
QMS에서 Recall Event가 생성되면 대상 완제품 Lot를 HOLD 상태로 전환하고, ERP/WMS에서 출하지시·Picking·라벨발행이 더 이상 진행되지 않도록 해야 한다. 공장 내부에 남아 있는 제품뿐 아니라 아직 출하전표만 생성되고 차량에 싣지 않은 제품도 확인해야 한다.
이 시점에서 원인을 완전히 규명할 필요는 없다. 회수범위가 더 넓어지는 것을 막는 것이 먼저다. Event Capture → Lot Hold → Shipment Block 구조가 필요한 이유다.
Backward Traceability는 “무엇이 들어갔는가”를 확인한다
문제 완제품 Lot가 확인됐다고 하자. MES에서는 해당 Lot가 어떤 생산 Batch에서 나왔는지 확인할 수 있어야 한다. 그 다음 Batch에 투입된 원재료 Lot와 포장재 Lot, 작업시간, 설비, CCP 기록을 역방향으로 추적한다. 구조는 다음과 같다.
Finished Lot → Production Batch → WIP/Semi-finished Batch → Raw Material Lot → Supplier
이것이 Backward Traceability다. 문제가 특정 원료 Lot에서 시작됐다면 이 역추적 결과가 다시 Forward Traceability의 시작점이 된다.
Forward Traceability는 “어디까지 퍼졌는가”를 확인한다
문제 원료 Lot가 확인됐다고 하자. 그 원료가 사용된 모든 Batch를 찾고, 해당 Batch에서 생산된 완제품 Lot와 출하처를 확인해야 한다.
Raw Material Lot → Batch → Finished Lot → Inventory → Shipment → Customer/Channel
Forward와 Backward 중 하나만 있어서는 회수 범위를 정확히 정하기 어렵다. 완제품에서 원료까지 내려갔다가 다시 원료에서 모든 영향제품으로 올라올 수 있어야 한다.
Mass Balance가 맞지 않으면 회수범위도 신뢰하기 어렵다
예를 들어 완제품 10,000개를 생산했다고 하자. 시스템에 다음처럼 기록돼 있다면 1,000개의 행방이 비어 있다.
- 출하 6,000개
- 창고재고 2,500개
- 폐기 500개
이 상태에서는 “회수대상 6,000개”라고 자신 있게 말하기 어렵다. 생산량은 생산량 = 출하 + 현재재고 + 폐기/반품 + 기타 정당한 이동으로 설명돼야 한다. 원재료도 마찬가지로 입고량, 투입량, 잔량, 폐기량, Return이 연결돼야 한다. 회수의 속도보다 먼저 중요한 것이 수량 정합성이다.
5분 추적은 법정 기준이 아니라 시스템 목표다
MES와 ERP가 제대로 연결돼 있다면 특정 Lot의 원료·생산·재고·출하 흐름을 몇 분 안에 조회하는 것은 충분히 가능하다. 다만 “법에서 5분 이내 추적을 의무화한다”고 표현해서는 안 된다. 5분은 디지털 Traceability 시스템이 지향할 수 있는 내부 KPI에 가깝다.
실무에서는 유통사 제2자 감사나 모의회수에서 신속한 완결성을 요구받을 수 있기 때문에 회사 내부 목표를 10분 이내 1차 범위 확정 또는 30분 이내 Mass Balance 완료처럼 설정할 수 있다. 핵심은 숫자 자체보다 서류철을 뒤지지 않고 시스템에서 즉시 범위를 확정할 수 있는 구조다.
자진회수계획은 관할 관청에 보고한다
법 제45조는 회수계획을 식품의약품안전처장, 시·도지사 또는 시장·군수·구청장에게 미리 보고하도록 규정한다. 식품제조·가공업의 일반적인 영업등록 관청과 연결해 실제 보고경로를 확인해야 한다.
시행규칙 제59조에 따라 관할 관청은 회수계획을 보고받은 뒤 식약처에 통보하고, 회수계획 공표 명령과 유통 중 제품에 대한 검사 등의 조치를 한다. 따라서 “회수계획서를 식약처 종합상황실에 직접 보내면 끝”과 같이 단순화해서는 안 된다. 사업장과 영업형태에 따라 보고기관을 확인해야 한다.
공표 방식은 회사가 임의로 숨길 수 있는 문제가 아니다
회수계획에는 회수 사실을 국민에게 알리는 방법도 포함된다. 또 관할 관청은 법 제73조에 따라 회수계획의 공표를 명할 수 있다.
현재 식품안전나라에는 실제 회수·판매중지 식품정보가 공개되고 있으며, 제품명·회수사유·제조업체·제조일자·소비기한·회수등급 등의 정보를 제공하는 Open API도 운영되고 있다. 따라서 회사 내부에서 거래처에게만 알리고 외부에는 공개하지 않는 방식으로 처리할 사안이라고 보면 안 된다. 구체적인 공표방법은 해당 회수 건에 적용되는 고시와 행정기관의 명령에 따라 확인해야 한다.
회수등급은 위해성 분류이지 회사가 임의로 정하는 마케팅 등급이 아니다
현장에서는 흔히 1등급·2등급·3등급 회수라는 표현을 사용한다. 이 등급은 위해 정도를 기준으로 한 행정적 분류이며, 실제 식품안전나라 회수정보에도 회수등급 필드가 관리되고 있다.
다만 특정 사례를 “알레르기 미표시는 무조건 1등급”, “미생물은 모두 1등급”처럼 일반화해서는 안 된다. 구체적인 위해성, 위반항목과 적용기준에 따라 판단해야 하므로 실제 사건에서는 현행 회수지침과 관할기관 판단을 확인해야 한다. 회수등급을 현장 직원이 임의로 결정하는 구조도 피해야 한다.
회수제품은 무조건 현장에서 바로 폐기하면 안 된다
회수된 제품은 폐기 등 적절한 후속처리가 필요하다. 시행규칙 제59조도 회수계획에 회수식품의 폐기 등 처리방법을 포함하도록 규정하고 있다. 하지만 모든 회수 건이 반드시 식약처 직원 입회하에 같은 방식으로 폐기된다고 일반화해서는 안 된다. 회수사유와 행정기관의 조치에 따라 폐기·반송·기타 처리방법이 달라질 수 있다.
중요한 것은 Recovered Quantity / Disposed Quantity / Other Disposition을 구분해 수량 이력을 남기는 것이다. 회수품이 창고에 들어오는 순간 일반 정상재고와 섞이지 않게 RECALL HOLD Location으로 격리하는 것이 안전하다.
회수결과 보고는 회수율 하나만 적는 서류가 아니다
회수 후 영업자는 결과를 지체 없이 관할기관에 보고해야 한다. 시행규칙은 회수결과 보고서에 다음을 포함하도록 규정한다.
- 제조·가공량 / 판매량
- 회수량 / 미회수량
- 미회수량에 대한 조치계획
- 재발방지대책
즉 시스템에서는 회수된 박스 수만 관리해서는 부족하다. 최초 생산량부터 소비·출하·잔여·회수·미회수까지 전체 흐름이 설명돼야 한다.
자진회수는 행정적으로도 의미가 있다
식품위생법 제45조제2항은 회수에 필요한 조치를 성실히 이행한 영업자에 대해 관련 행정처분을 감면할 수 있도록 규정한다. 시행령에는 회수계획량의 5분의 4 이상을 회수한 경우 등 회수실적에 따른 구체적인 감면기준도 마련돼 있다.
따라서 자진회수는 단순히 “기업 이미지에 손해가 되는 행동”으로만 볼 사안이 아니다. 문제를 인지하고도 회피하는 것과 법정 절차에 따라 신속하게 회수조치를 이행하는 것은 규제상 의미가 다르다.
수기 회수체계는 검색보다 연결에서 무너진다
엑셀에서 완제품 Lot를 찾는 것 자체는 어렵지 않을 수 있다. 문제는 연결이다. 다음을 서로 다른 파일에서 맞춰야 한다.
- 완제품 Lot를 생산한 Batch
- Batch에 들어간 원료 Lot
- 같은 원료 Lot가 투입된 다른 Batch
- 각 완제품이 어느 거래처로 몇 개 출고됐는지
- 반품된 수량 / 현재 창고에 남은 수량
하나라도 누락되면 회수범위가 불필요하게 확대된다. 그래서 종종 문제가 있는 1개 Batch만 회수하면 될 사건이 일자 전체 또는 제품 전체 회수로 확대된다. 추적성이 정밀할수록 정상제품까지 폐기할 필요가 줄어든다.
MES·ERP·WMS가 연결되면 회수는 하나의 Query가 된다
디지털 구조에서는 다음 데이터가 동일 키로 연결되어야 한다.
Material Lot/Batch ID/Finished LotPallet/Box ID/Warehouse LocationShipment ID/Customer
문제 원료 Lot를 입력하면 영향받은 Batch와 완제품을 조회하고, 해당 완제품의 현 재고와 출하이력을 즉시 볼 수 있다. 반대로 소비자 클레임에서 완제품 Lot만 들어와도 원료와 생산조건까지 역추적할 수 있다. 이것이 Traceability Engine이다.
출고차단은 ERP와 WMS에서 동시에 작동해야 한다
QA가 QMS에서 Recall Hold를 걸었는데 WMS에는 아직 Available Inventory로 남아 있다면 창고에서 출고될 수 있다. 따라서 Recall Status는 시스템 간 공유돼야 한다.
QMS Recall/Hold → ERP Inventory Block → WMS Picking Block → Shipment Block
이미 Picking된 제품은 별도의 작업취소 또는 출하검증에서 다시 차단해야 한다. 단순 경고창보다 Transaction 자체를 금지하는 Interlock이 안전하다.
수기 회수와 디지털 회수의 차이는 범위를 얼마나 빨리 좁힐 수 있는가다
| 구분 | 수기·엑셀 대응 | MES/ERP/WMS 연동 |
|---|---|---|
| 완제품 Lot 확인 | 생산일보 검색 | Lot Query |
| 원료 역추적 | 여러 서류 대조 | Backward Trace |
| 영향제품 정추적 | 수기 계산 | Forward Trace |
| 재고현황 | 창고 확인 | Location별 실시간 |
| 출하처 | 거래명세서 대조 | Shipment Data |
| 수량정합성 | 수기 Mass Balance | 자동 집계 |
| 출고차단 | 전화·메신저 | Lot Hold |
| 회수수량 | 엑셀 업데이트 | Recall Transaction |
| Audit Trail | 제한적 | Event History |
| 결과보고 | 재작성 | Report Data 자동집계 |
Mock Recall은 실제 사고가 없을 때 시스템을 검증하는 방법이다
회수시스템은 사고가 발생했을 때 처음 사용해서는 안 된다. 정기적으로 임의의 완제품 Lot나 원재료 Lot를 지정해 다음을 실제처럼 추적해 보는 Mock Recall이 필요하다.
- 원료 / 생산 / 재고
- 출하 / Mass Balance
이 과정에서 누락된 Barcode Scan, Rework 기록, 소분 Lot 재발행 문제를 발견할 수 있다. 모의회수는 서류연습이 아니라 Traceability 데이터 품질 테스트다.
회수 시스템의 목적은 모든 제품을 더 빨리 폐기하는 것이 아니다
추적성이 좋을수록 회수범위를 더 정확하게 좁힐 수 있다. 문제가 원료 Lot 하나에 한정됐는데 어떤 Batch에 들어갔는지 알 수 없다면 며칠치 생산제품 전체를 회수해야 할 수 있다. 반대로 Lot Genealogy가 정확하면 영향을 받은 Batch만 분리할 수 있다.
그래서 Traceability는 식품안전 기능이면서 동시에 손실통제 기능이다.
Product Complaint → Finished Lot → Batch → Raw Material Lot → Affected Batches → Shipments → Recall
이 흐름이 몇 분 안에 연결될수록 정상재고 폐기와 브랜드 손실도 줄일 수 있다.
회수의 마지막 단계는 폐기가 아니라 재발방지다
시행규칙이 회수결과 보고에 재발방지대책을 요구하는 이유도 여기에 있다.
- 회수원인이 원재료라면 Supplier Quality와 입고검사를 수정할 수 있다.
- Recipe 문제라면 BOM과 4M Change Control을 수정해야 한다.
- CCP 문제라면 HACCP Plan과 Digital CCP Monitoring을 재검토해야 한다.
- 표시오류라면 Label Master와 바이어 사양서 Version Control을 바꿔야 한다.
그리고 해당 조치는 CAPA로 연결되어야 한다. Recall → Root Cause → CAPA → Master Change → Verification 구조가 닫혀야 사건이 끝난다.
식품 회수의 품질은 회수 공문을 얼마나 잘 작성했는지로 결정되지 않는다.
문제 제품을 얼마나 빨리 멈추고, 영향범위를 얼마나 정확하게 찾아내며, 생산량·출하량·회수량·미회수량을 하나의 데이터 흐름으로 설명할 수 있는지가 핵심이다.
그 구조가 MES Lot Tracking과 ERP/WMS에 연결될 때, 회수는 위기 때마다 전 직원이 엑셀을 뒤지는 비상업무에서 벗어나 평소 제조데이터가 그대로 작동하는 컴플라이언스 프로세스가 된다.
확인 안내: 본문은 작성 시점 시행 중인 식품위생법 및 시행규칙 기준으로 정리했다. 회수대상, 위해도 분류, 공표방법, 제출서식과 세부 절차는 개정될 수 있으므로 실제 회수 발생 시 최신 법령·식약처 회수 관련 고시·관할기관 지시를 확인해야 한다.
식품 제조업 HACCP 문서 전산화 가이드 — 종이 기록에서 전자결재·Audit Trail·스마트 HACCP까지
HACCP · 품질3분 만에 확인최종 검증:
공식 출처
개정 이력
· 발행
여기 담긴 규정·수치는 최소 6개월마다 위 공식 출처와 대조해 재확인합니다. 실질적 변경(요건·기준·수치)은 조용히 덮어쓰지 않고 개정 이력에 남깁니다.
이 글은 일반적인 실무 정보이며 법률·세무·행정 자문이 아닙니다. 규정·수치는 관할과 시점에 따라 달라지므로, 실제 판단 전 위 공식 출처와 관할 기관에서 최신 기준을 확인하시기 바랍니다.
