새벽 2 a.m.에 전화가 울렸다. 수화기 너머는 식품 풀필먼트 고객 중 한 곳이었고, 목소리는 떨리고 있었다. 에너지바 로트 중 하나가 원자재 오염 의심으로 양성 반응이 나왔고, 당국은 해당 로트의 완전한 유통 기록을 24 hours 안에 요구하고 있다는 것이다.

전화를 끊고 위장이 철렁 내려앉는 느낌이 들었다. 그 고객의 로트 세 개가 벌크 구역에서 두 달 내내 섞인 채로 놓여 있었다. 로트 라벨? 입고 때 붙인 종이쪽지 하나, 진작에 사라졌다. WMS에는? 로트 필드가 비어 있었다 — 입고 때 누군가 편법을 써서 SKU만으로 전부 입고 처리했기 때문이다.

우리 넷은 그날 밤 모든 출고 주문을 뒤지며 팔레트 단위로 대조했다. 제출한 기록은 간신히 받아들여졌고, 고객은 그 자리에서 다른 업체로 옮기기로 했다. 그날 밤 잃은 것은 하나의 계정만이 아니었다 — 식품 풀필먼트 사업 전체의 평판이었다.

이것이 모든 복수 화주 3PL 창고의 악몽이다: 로트 혼입. 분실 재고도, 피킹 실수도 아니다 — 서로 다른 로트가 물리적으로도 시스템적으로도 얽혀서 리콜이 터졌을 때 어느 단위가 어느 로트인지 아무도 말할 수 없는 상태다. 로트 혼입은 매일 일어나는 일은 아니지만, 일어나면 사업의 존폐가 걸린다: 고객을 잃고, 벌금을 물고, 뉴스에 나온다.

로트 혼입이 실제로 일어나는 방식

먼저 내 결론부터 말하겠다: 로트 혼입은 결코 부주의한 직원의 탓이 아니다. 내가 본 모든 사후 분석은 입고나 적치 작업자가 편법을 쓰는 장면에서 시작되지만, 모든 근본 원인은 같은 곳에서 끝난다 — WMS가 로트에 고유한 정체성을 부여하지 않았던 것이다.

죽는 법의 전형은 세 가지다.

첫째, 로트가 단순한 코멘트 필드다. 많은 WMS 제품에서 로트는 입고 문서상의 자유 입력 텍스트 한 줄에 불과하다. 스캔, 적치, 피킹은 그것을 검증하지 않는다. 코멘트는 사람이 읽으라고 쓴 것 — 시스템은 읽지 않으니 혼입은 눈에 띄지 않는다.

둘째, 입고 시 라벨링이 없다. 로트 정보는 박스의 잉크젯 코드에 인쇄되어 있는데, 입고 담당자는 입력하기 귀찮아하거나, 입력해도 팔레트에 붙이지 않는다. 로트는 무허가 거주자처럼 창고에 들어오고, 이후 모든 공정은 앞을 보지 못한 채 돌아간다.

셋째, 하나의 로케이션에 두 개의 로트. 벌크 구역은 슬롯이 부족해서 한 레인에 두 로트가 들어가고, 보충 때 새 로트가 묵은 로트 위에 바로 쌓인다. 물리적으로 섞였는데 시스템은 여전히 하나의 로트라고 믿는다 — 그 지경이 되면 누구도 가려낼 수 없다.

복수 화주 창고는 한 가지 골칫거리를 더한다: 고객마다 제각기 로트 번호 체계를 가져온다. 통일된 규칙이 없으면 입고 담당자는 즉흥적으로 처리하고, 즉흥 하나하나가 혼란을 더한다.

패턴이 보이는가? 모두 프로세스와 시스템의 실패다. 로트 혼입을 고치는 계획이 "교육 강화"라면 수고를 덜어주겠다 — 사람은 언제나 실수한다. 포카요케는 실수할 기회를 주지 않는 시스템을 만드는 것이다.

로트의 신분증은 입고 도크에서 발급된다

로트 혼입에 대한 첫 번째 방어선은 랙 위가 아니라 입고 도크에 있다. 나의 철칙: 로트 정보가 불완전한 팔레트는 재고로 들어가지 않는다. SOP에 쓰고, WMS의 하드 검증으로 강제한다, 예외는 누구에게도 없다.

먼저 로트 번호 규칙을 고정하고 가볍게 바꾸지 말 것. 내가 권장하는 방식: 고객 코드 + 제조일 + 라인/교대. "ABC-20260314-A" 같은 번호면 고객, 제조일, 교대가 한눈에 들어온다. 화려할 필요는 없지만, 건물 전체에서 통일되어야 한다 — 고객당 규칙 버전 하나, WMS 사전에 저장, 입고 담당자의 즉흥은 절대 금지.

다음은 라벨링이다. 팔레트당 하나의 코드는 가장 게으르고 효과적인 포카요케다: 입고 때 세 가지 요소 — 로트 번호, 제조일, 유통기한 — 를 모두 넣은 로트 라벨을 인쇄한다. 식품이나 수출 고객이라면 SSCC로 바로 가기를 강력히 권한다: 18-digit의 전 세계 유일 시리얼 번호로, 바코드 속 AI (00)로 표시되는 GS1 공개 표준이다. 한 번 붙이면 공급망 전체가 인식하고, 리콜 때는 한 번의 스캔으로 그 팔레트의 전체 이력이 나온다. 어떤 라벨 프린터로도 만들 수 있다.

유럽행 식품에 대한 한 가지 참고: EU 지침 2011/91/EU는 포장 식품에 로트 마크를 부착하도록 의무화하고 있으며, 일반적으로 문자 "L"을 앞에 붙인다 — 마크 없으면 시장 진입 불가. 고객이 유럽에 판매한다면, 컨테이너가 세관에 잡힌 뒤가 아니라 입고 때 로트 마크 적합성을 확인하라.

WMS 쪽에서는 로트에 로트 번호 텍스트 상자 이상의 것이 필요하다. 제조일, 유통기한, QC 상태, 공급업체 로트 — 입고 때 한 번만 수집하는 구조화된 로트 속성이다. FEFO 할당, 유통기한 알림, 리콜 동결이 나중에 전부 이것들 위에서 돌아가기 때문이다.

혼합 보관은 괜찮다, 로트 혼입은 안 된다

복수 화주 창고는 슬롯이 절대 부족하므로 혼합 보관은 당연하다. 하지만 두 개념을 구분하라: 혼합 보관은 공간 전략이고, 로트 혼입은 관리 실패다. 서로 다른 고객의 화물이 인접 레인에 있는 것 — 괜찮다. 하나의 로케이션이나 하나의 팔레트에 두 개의 로트 — 레드라인이다.

나의 적치 격리 플레이북은 세 단계다.

풀팔레트 구역: 하나의 팔레트, 하나의 슬롯, 하나의 로트. 팔레트는 자연스러운 격리 단위다 — WMS에서 팔레트 ID를 로트에 바인딩하고, 지게차 기사는 풀팔레트 입출고만 한다. 혼입은 거의 불가능해진다.

벌크 구역: 하나의 레인, 하나의 로트. 벌크는 로트별로, 한 번에 레인 전체를 적치하고, WMS에 로케이션 로트 전용 설정을 건다 — 로케이션 X에 이미 로트 A가 있다면 시스템은 스캔 시점에 로트 B를 알람과 함께 단호히 거부한다. 이것은 하드 설정이지 제안이 아니다.

로트 혼입이 가장 많이 일어나는 낱개 피킹 구역. 새 로트는 묵은 로트 뒤에 보충하거나 별도 레인에 보충하고, 시스템이 FEFO(first-expired, first-out)로 피킹을 지시하게 하며, 피커가 가까운 것을 멋대로 가져가게 하지 않는다. 시스템이 잠그지 않으면 사람은 쉬운 길을 택한다.

공통된 실마리: 강제하는 주체는 사람이 아니라 시스템이다. WMS에서 로트는 독립적인 재고 차원이어야 한다 — 화주 × SKU × 로트로 팔레트를 특정한다 — SKU에 매달린 코멘트가 아니다. WMS를 평가할 때 이것을 가장 먼저 확인하라: 로트를 자유 입력 텍스트 메모로 구현한 제품은 내가 즉시 탈락시킨다. 그것이 나의 거부권 항목이다.

리콜 통지가 왔을 때: 네 단계로 거슬러 올라가기

리콜 당일, 당신을 구하는 것은 용기가 아니다 — 평범한 날들에 쌓아둔 데이터다. 훈련을 네 단계로 압축한다.

1단계, 로트 동결. 의심 로트 번호(또는 제조일 범위)를 잡아 WMS에서 해당 로트의 모든 단위를 동결한다 — 출고 금지. 동결은 몇 분 안에, 건물 전체가 한 번의 클릭으로 끝나야 한다. 이게 안 되는 WMS는 교체해야 한다.

2단계, 세 개의 보고서를 뽑는다: 해당 로트의 출고 판매明細(누구에게, 얼마나, 언제), 현재 보유 재고 분포(어느 로케이션에, 몇 팔레트), 그리고 운송 중(출고됨, 미입고). 세 개는 맞아떨어져야 한다 — 출고 + 보유 = 입고.

3단계, 시간 창을 넓힌다. 오염은 하나의 로트만 존중해주지 않는다: 같은 라인의 앞뒤 날짜 로트들, 같은 원자재로 만든 다른 로트들도 모두 용의자가 된다. FDA의 FSMA 204 추적성 규정(최종 규칙 November 2022 공포, 시행은 July 20, 2028로 연기)에 따르면 기업은 요청 후 24 hours 이내에 정렬 가능한 전자 추적성 기록을 제출해야 한다. 로트 데이터가 여기저기 흩어진 스프레드시트에 산다면 그 기한을 절대 맞출 수 없다. 컴플라이언스 부채는 반드시 이자를 붙여 갚게 된다 — 리콜 당일에.

4단계, 격리하고 통지한다. 의심 로트는 빨간 태그로 즉시 격리하고, 모든 납품 고객에게 통지한다. 빨리 움직일수록 처벌은 가벼워진다. 그건 뼈아프게 배웠다.

로트 구역별로 보관된 화물이 있는 복수 화주 창고의 팔레트 랙

적치 전 마지막 확인: 혼입 방지 체크리스트

  • 로트 번호 규칙이 건물 전체에서 통일되어 있고, 입고 담당자가 현장에서 로트 번호를 지어낼 수 있는가? (그렇다면: 불합격.)
  • 모든 팔레트에 입고 때 세 가지 요소 — 로트, 제조일, 유통기한 — 라벨이 붙어 있는가?
  • WMS에서 로트가 독립적인 재고 차원이고, 적치와 피킹에서 스캔 검증으로 강제되는가?
  • 로케이션 로트 전용 설정이 되어 있어, 두 번째 로트가 같은 로케이션에 들어오면 시스템이 알람을 울리는가?
  • 벌크는 레인별로 로트 단위로 보충되고, 피킹은 시스템이 FEFO로 지시하는가?
  • 한 번의 액션으로 건물 전체의 로트를 몇 분 안에 동결할 수 있는가?
  • 지난달 모의 리콜을 실시했고, 통지부터 세 개의 보고서까지 얼마나 걸렸는가? (24 hours 초과: 불합격.)

이 체크리스트를 입고 사무실 벽에 붙여라. 프로세스 규율이 로트 혼입을 막는다. 희망 사항은 막지 못한다.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.