재고·물류··업데이트

FEFO 뜻과 FIFO 차이 — 소비기한 재고, 뭘 먼저 내보내야 하나

FEFO(First Expired, First Out)는 기한이 먼저 오는 재고를 먼저 내고, FIFO(First In, First Out)는 먼저 입고된 것부터 낸다. 둘의 뜻·차이와 식품 재고에서 언제 뭘 쓰는지, 품질상태·가용재고 기준까지 정리한다.

FEFO(First Expired, First Out) 는 기한이 먼저 도래하는 재고를 먼저 출고하는 방식이고, FIFO(First In, First Out) 는 먼저 입고된 재고부터 출고하는 방식이다. 이름은 비슷하지만 기준이 다르다 — FIFO는 입고일, FEFO는 기한을 본다.

제조업 재고관리에서 FIFO와 FEFO는 자주 같이 등장한다. 차이는 단순해 보이지만, 식품공장에서는 이 차이가 폐기량·원재료 손실·반품·생산계획과 직접 연결된다. 같은 품목이라도 먼저 입고된 LOT의 기한이 더 늦고, 나중에 입고된 LOT의 기한이 더 빠른 경우가 있기 때문이다.

그래서 제조업에서 중요한 건 “FIFO가 맞나, FEFO가 맞나”라는 선택보다, 어떤 재고를 먼저 쓸 수 있는 상태인지 판단한 뒤, 그 안에서 어떤 우선순위 규칙을 적용할 것인가다.

FIFO는 입고 순서를 기준으로 한다

FIFO(First In, First Out)는 먼저 들어온 재고를 먼저 쓴다. 원재료 LOT A가 8월 1일, LOT B가 8월 5일 입고됐다면 FIFO는 LOT A → LOT B 순으로 쓴다. 장점은 단순함이다. 입고순서가 명확하고 현장에서 이해하기 쉽다. 소비기한·사용기한이 중요한 관리요소가 아닌 원부자재에서는 FIFO만으로 충분한 경우가 있다. 다만 입고가 먼저 됐다고 반드시 기한도 먼저 오는 건 아니다. 여기서 FEFO가 필요해진다.

FEFO는 기한을 기준으로 한다

FEFO(First Expired, First Out)는 기한이 먼저 도래하는 재고를 먼저 쓴다.

LOT 입고일 관리기한
A 8월 1일 9월 20일
B 8월 5일 9월 10일

FIFO를 적용하면 먼저 입고된 A를, FEFO를 적용하면 기한이 빠른 B를 우선 쓴다. FIFO는 입고일을, FEFO는 기한을 본다. 같은 품목이라도 공급 시점·제조일·공급처 재고상황에 따라 LOT별 기한이 달라질 수 있어, 식품처럼 날짜 관리가 중요한 재고에서는 FEFO가 실무적으로 유용하다.

’유통기한’보다 어떤 날짜를 관리하는지 먼저 구분한다

과거엔 유통기한이라는 표현을 썼지만, 현재 국내 식품 표시체계는 소비기한 중심으로 관리되는 제품이 많아 시스템에서도 날짜의 의미를 정확히 구분하는 게 중요하다. 다만 모든 재고의 날짜를 소비기한 하나로 통일하면 안 된다. 완제품은 소비기한을, 원재료는 공급받은 제품에 표시된 기한이나 회사가 정한 관리기준에 따라 별도의 사용가능 기간을 관리할 수 있다. 개봉 후 사용기간이 따로 필요한 원료도 있다.

제조일 → 입고일 → 소비기한 → 사용기한 → 개봉일 → 사내 사용한계일

FEFO는 결국 이 날짜 중 업무적으로 우선순위 판단에 쓸 날짜를 기준으로 정렬하는 정책이다.

FEFO는 ’가장 날짜가 빠른 재고’를 무조건 꺼내는 기능이 아니다

FEFO를 단순 구현하면 같은 품목 중 날짜가 가장 빠른 LOT을 자동 추천한다. 하지만 현장에서는 이것만으로 부족하다. LOT A의 기한이 가장 빨라도 품질검사 대기 중이면 못 쓴다. 부적합 판정으로 QC HOLD면 더더욱 못 쓴다. 특정 생산라인에서 쓸 수 없는 Location에 있을 수도 있다. 그래서 실제 우선순위는 이 구조가 적절하다.

사용 가능한 품질상태 확인 → 출고·투입 제한 여부 확인
   → 재고 가용수량 확인 → 통과한 LOT 중 기한이 빠른 순서로 FEFO 적용

즉 FEFO는 전체 재고를 날짜순으로 정렬하는 게 아니라 Available Inventory 안에서 적용되는 우선순위 정책이다.

On Hand와 Available을 구분해야 FEFO가 작동한다

같은 원재료가 총 500kg 있다고 하자.

LOT A: 200kg, AVAILABLE
LOT B: 100kg, QC HOLD
LOT C: 150kg, AVAILABLE
LOT D:  50kg, 검사대기

장부상 물리재고는 500kg이지만 실제 생산에 쓸 수 있는 건 A와 C, 350kg이다. 이때 LOT B의 기한이 가장 빠르다고 FEFO 1순위로 추천하면 안 된다. 그래서 재고시스템에서는 On Hand Quantity와 Available Quantity를 구분해야 한다. FEFO는 Available 상태의 LOT을 대상으로 적용하는 게 일반적인 설계다.

원재료와 완제품에서 적용 목적이 다르다

  • 원재료 — 생산투입 순서를 정하는 데 쓴다. 기한이 빠른 원료를 먼저 투입해 장기보관 폐기위험을 줄인다.
  • 완제품 — 출고 우선순위를 정하는 데 쓴다. 다만 단순히 기한 빠른 것부터 내보내면 된다고 단정할 수 없다. 거래처별 최소 잔여기한 조건이 있을 수 있기 때문이다.

어떤 거래처가 납품 시점에 최소 60일 이상 잔여기간을 요구한다면, 기한이 가장 빠른 LOT이 FEFO상 1순위여도 그 거래처엔 못 낸다. 그래서 완제품 출고에서는 거래처 조건 → 품질상태 → 출고 가능여부 → 잔여기한 → FEFO 순위를 함께 본다. FEFO는 출고판단 전체를 대신하는 게 아니라 출고가능 후보 가운데 우선순위를 정하는 기준이다.

잔여기한을 같이 계산한다

날짜만 보여주는 것보다 “지금 며칠 남았는가”를 같이 보여주는 게 현장에서 유용하다. 소비기한 2026-09-15, 현재일 2026-08-31이면 잔여 15일이다. 이를 자동 계산해 정상 → 임박 → 긴급사용 → 출고제한 → 사용금지처럼 내부 정책과 연결할 수 있다. 다만 이 구간은 법이 일률적으로 정해주는 숫자가 아니라 품목·거래처·보관조건에 따라 회사가 정하는 내부 관리정책이다. D-30 알림 / D-14 경고 / D-7 긴급검토 같은 설정을 쓸 수 있지만 이걸 법정 기준처럼 표시해선 안 된다.

FEFO 알림은 날짜 하나만 보면 안 된다

임박 알림을 만들 때 “30일 남음”만 띄우면 실무 가치가 떨어진다. 같이 봐야 할 게 수량이다. 같은 D-15 재고라도 10kg 남은 원료와 2톤 남은 원료는 대응이 완전히 다르다. 그래서 LOT → 잔여기한 → 현재수량 → 최근 평균사용량 → 예상소진일을 함께 본다.

최근 실적 기준 하루 평균 20kg을 쓰는 원료가 400kg 남고 기한이 10일밖에 안 남았다면, 정상 생산으로 다 소진하기 어렵다는 걸 미리 판단할 수 있다. 이때 생산계획 조정·구매중단·다른 계획과의 조정을 검토한다. 이렇게 되면 FEFO는 단순 정렬기능이 아니라 재고폐기 위험을 사전에 보여주는 관리도구가 된다.

FIFO가 더 적합한 품목도 있다

모든 재고에 FEFO를 적용할 필요는 없다. 변질 위험이 낮은 일부 포장재·부자재처럼 기한보다 입고순서 관리가 더 중요한 품목은 FIFO가 단순하고 효율적이다. 다만 포장재라고 다 날짜관리가 불필요한 건 아니다. 라벨·인쇄포장재는 표시사항 Version 때문에 구형 자재를 먼저 소진해야 하거나 오히려 사용금지해야 하는 경우가 있다. 이건 FIFO·FEFO만으로 안 풀린다.

Label Version V1 → 사용가능
Label Version V2 → 신규 적용
V1 사용중지 결정 → 남은 V1은 입고일·기한과 무관하게 BLOCKED

즉 실제 재고정책은 FIFO/FEFO 둘 중 하나만 고르는 구조보다 품목별 재고정책 + 품질상태 + Version + 출고조건을 함께 관리하는 방향이 좋다.

품목별로 FIFO·FEFO 정책을 다르게 설정한다

품목 Master에 재고출고 정책을 둘 수 있다. 원재료 A → FEFO, 원재료 B → FEFO, 포장박스 C → FIFO, 기계부품 D → FIFO처럼. 그러면 생산투입·출고 시 시스템이 해당 품목 정책에 따라 LOT을 추천한다.

다만 추천과 강제는 구분해야 한다. 특정 생산용으로 이미 준비된 재고나 품질팀이 별도 승인한 재고가 있을 수 있다. 이때 무조건 막기보다 FEFO 우선 추천 → 다른 LOT 선택 → 사유입력 → 필요 시 승인 같은 Workflow가 낫다. 예외를 금지하는 것보다 예외가 발생한 이유를 남기는 것이 현실적인 경우가 많다.

시스템 FEFO와 창고 배치가 다르면 현장에서 무너진다

FEFO를 시스템에 구현했다고 실제 창고가 FEFO로 움직이는 건 아니다. 화면은 LOT B를 먼저 쓰라는데 창고 맨 앞에 LOT A가 적재돼 있으면 바쁜 작업자는 손에 잡히는 A를 쓴다. 그래서 물리적 창고구조도 함께 봐야 한다. 입고 시 LOT 라벨을 명확히 하고, 동일 품목을 LOT별로 구분하며, 출고우선 LOT이 실제로 접근하기 쉬운 위치에 있게 관리한다. WMS나 Location 관리가 있으면 품목 → LOT → Location → 기한 → 우선순위를 함께 보여줄 수 있다. 결국 FEFO는 데이터상의 우선순위와 물리적 재고배치가 일치해야 작동한다.

LOT 추적이 없으면 FEFO도 제대로 구현하기 어렵다

FEFO는 품목 전체의 기한이 아니라 LOT별 기한을 관리한다. 같은 원재료 A라도 LOT A-01 → 9/10, LOT A-02 → 10/5처럼 다르기 때문이다. 그래서 FEFO를 구현하려면 최소한 품목 → LOT → 입고일 → 관리기한 → 수량 → 품질상태 → Location이 연결돼 있어야 한다. LOT 추적이 번호만 있고 실제 재고와 연결이 안 됐다면 FEFO도 정확히 작동하기 어렵다. FEFO는 LOT 관리 위에서 작동하는 재고출고 정책이다.

생산예약이 걸린 LOT도 고려한다

Available 재고라고 다 다른 생산에 쓸 수 있는 건 아니다. 특정 생산지시에 이미 예약된 재고가 있을 수 있다. LOT A: 100kg AVAILABLE, 그중 80kg 생산예약이면 신규 생산에 실제 쓸 수 있는 건 20kg이다. 그래서 정확한 FEFO 추천을 하려면 On Hand → QC Status → Reserved → Available을 계산해야 한다. 물리수량만 보고 추천하면 여러 생산 Order가 같은 재고를 동시에 쓰려는 문제가 생긴다.

실제 투입 시엔 추천 LOT과 사용 LOT을 연결한다

시스템이 FEFO LOT을 추천했어도 생산실적에는 실제로 쓴 LOT이 기록돼야 한다. 시스템이 LOT A를 추천했는데 현장에서 LOT B를 투입했다면 재고는 B에서 차감돼야 한다.

FEFO 추천 LOT → 현장 Scan → 실제 투입 LOT → 실제 투입량 → 생산 Batch

추천정보와 실제정보를 구분하지 않으면 LOT 추적과 재고가 틀어진다. 이 원리는 BOM과 실제투입을 구분하는 것과 같다. 계획은 계획, 실적은 실적이다.

FEFO를 잘못 운영하면 재고 숫자가 맞아도 손실이 난다

흔히 수량정확도만 본다. ERP에 1,000kg, 창고에도 1,000kg이면 재고관리가 잘 된다고 여긴다. 하지만 그중 400kg이 다음 주 사용한계를 넘는 재고라면 경영적으로 좋은 재고상태가 아니다. 그래서 재고는 Quantity뿐 아니라 Age와 Remaining Life도 봐야 한다.

정상재고 → 30일 이내 임박 → 14일 이내 임박 → 7일 이내 임박 → 기한경과

구간 숫자는 제품 특성과 회사정책에 따른 내부기준이다. 이 데이터를 구매·생산계획에 연결하면 FEFO의 가치가 더 커진다.

구매발주까지 연결해야 과잉재고가 반복되지 않는다

임박재고가 계속 생기는데 창고에서 FEFO만 열심히 한다고 해결되지 않는다. 입고량 자체가 사용량보다 많으면 언젠가 폐기가 난다. 그래서 현재고 → 기한별 재고 → 평균사용량 → 생산계획 → 발주예정량을 함께 봐야 한다. 기한 내 예상 사용량이 300kg인데 가용재고가 600kg이면 추가 발주를 자동 중지하거나 경고할 수 있다. 즉 FEFO는 구매·생산계획과 연결될 때 효과가 커진다. 창고는 이미 들어온 재고의 순서를 최적화할 뿐이고, 과잉재고 자체는 앞단의 구매·계획 문제일 수 있다.

반품된 재고를 바로 AVAILABLE로 돌리면 안 된다

완제품 반품이 발생하면 기한이 남았다는 이유만으로 바로 FEFO 대상에 넣으면 안 된다. 반품제품은 보관상태·유통과정 등을 확인해야 할 수 있다.

RETURNED → QC HOLD → REVIEW → RELEASED / BLOCKED

검토 결과 다시 판매 가능으로 승인된 경우에만 일반 Available 재고로 복귀시켜 FEFO 순위에 넣는다. 이처럼 FEFO보다 먼저 봐야 하는 건 재고의 품질상태다.

FEFO는 법규 준수 기능이라기보다 재고운영 정책이다

“식품제조업은 법적으로 FEFO를 해야 한다”처럼 단정하는 건 주의해야 한다. 식품 관련 법령과 HACCP은 원재료·제품의 위생적 보관, 적절한 관리, 표시기준과 소비기한 등 다양한 요구를 두지만, 일반 ERP 용어인 FEFO 알고리즘 자체를 모든 식품제조업소가 동일한 방식으로 적용해야 한다고 단순화해선 안 된다. FEFO는 이런 요구와 품질관리 목적을 효율적으로 수행하기 위해 현장에서 쓰는 재고운영 방식으로 이해하는 게 적절하다. 회사는 제품 특성·보관조건·기한관리 필요성에 따라 FIFO·FEFO 또는 별도 출고정책을 정할 수 있다.

FEFO를 단순 날짜 정렬로 설계하지 않은 이유

재고 출고 우선순위를 설계할 때 기한 하나만 보는 방식으로는 실제 제조현장을 충분히 표현하기 어렵다고 봤다. 먼저 그 LOT이 사용 가능한 상태인지 확인하고, 그다음 예약수량·가용수량을 계산하고, 기한으로 우선순위를 정해야 한다.

품목 → LOT → 품질상태 → Location → On Hand → Reserved → Available → 관리기한 → FEFO Priority

생산에서 실제 사용하면 FEFO 추천 → LOT Scan → 실제 투입량 → Production Batch → 재고차감으로, 완제품 출고에서는 거래처 → 출고조건 → Available LOT → 잔여기한 → FEFO 추천 → 실제 출고 LOT으로 연결된다. 이렇게 해야 FEFO가 단순 창고 정렬을 넘어 LOT 추적과 생산·출고·재고관리의 일부로 작동한다.

FIFO와 FEFO 중 무엇이 더 좋은가를 따지는 건 큰 의미가 없다. 재고 특성이 다르기 때문이다. 기한관리 필요성이 낮고 입고순서가 중요하면 FIFO가, LOT별 소비기한·사용기간이 중요하면 FEFO가 적합하다. 하지만 어느 경우든 가장 먼저 확인할 것은 이 재고가 지금 쓸 수 있는 상태인가다. 그다음에 FIFO·FEFO가 적용된다. 결국 제조업의 재고출고 정책은 Quality Status → Available Inventory → FIFO/FEFO → 실제 Scan·출고 순으로 설계하는 게 현실적이다.

FEFO의 핵심은 기한이 빠른 재고를 무조건 먼저 꺼내는 게 아니다. 사용 가능한 재고 가운데 기한 위험이 높은 LOT을 먼저 식별하고, 생산·출고에서 실제로 그 우선순위가 실행되게 만드는 것이다.

참고 — 소비기한 표시·보관 기준은 품목·영업형태·최신 법령에 따라 다르다. FEFO 구간·잔여기한 정책은 회사 내부기준이며 법정 수치가 아니다. 실제 적용은 식품안전나라와 관할 기준으로 확인한다.

이 글 다음엔

그래서 기한 먼저인 그 재고를, 시스템은 어떻게 콕 집어 먼저 빼낼까?

재고 · 물류LOT 추적이란 무엇인가 — 원재료 입고부터 생산 Batch·완제품·출고까지 연결하는 법3분 만에 확인
저자 Michael Han

글 · Michael Han
(주)단지 대표(식품제조, 2016~) · VSL Vietnam MD · ISO 9001·14001·45001 인증심사원.저자 소개 →

최종 검증:

개정 이력

· 발행
· 개정

여기 담긴 규정·수치는 최소 6개월마다 위 공식 출처와 대조해 재확인합니다. 실질적 변경(요건·기준·수치)은 조용히 덮어쓰지 않고 개정 이력에 남깁니다.

이 글은 일반적인 실무 정보이며 법률·세무·행정 자문이 아닙니다. 규정·수치는 관할과 시점에 따라 달라지므로, 실제 판단 전 위 공식 출처와 관할 기관에서 최신 기준을 확인하시기 바랍니다.