재고·물류··업데이트

안전재고와 발주점 — 제조업에서 얼마를 언제 주문해야 하나

발주점은 언제, 발주량은 얼마다. 현재고가 아니라 재고 포지션(On Hand+On Order-예약)으로 판단하고, 생산계획·BOM 미래소요·리드타임·MOQ·소비기한까지 함께 보는 법을 정리한다.

제조업에서 발주는 단순한 구매업무가 아니다. 원재료가 부족하면 생산계획을 잡아도 제품을 못 만든다. 반대로 품절이 걱정된다고 필요 이상으로 사면 창고에 재고가 쌓이고 자금이 묶인다. 식품 원재료라면 소비기한·사용가능 기간 때문에 결국 폐기로 이어질 수도 있다. 그래서 구매담당자가 매번 경험으로 “이 정도 남았으니 주문해야겠다”고 판단하는 것보다 재고·생산 데이터로 발주시점을 관리하는 게 좋다.

이때 가장 기본적으로 쓰는 개념이 안전재고(Safety Stock) 와 발주점(Reorder Point, ROP) 이다. 하지만 현장에서는 안전재고 공식 하나를 만들어 ERP에 넣는다고 자동발주가 완성되는 게 아니다. 현재고뿐 아니라 가용재고 → 예약재고 → 미입고 발주 → 예상사용량 → 리드타임 → MOQ → 소비기한 → 생산계획이 함께 움직여야 한다.

발주점은 ’언제 주문할 것인가’를 정한다

발주점은 재고가 일정 수준까지 줄었을 때 새 발주를 검토하는 기준이다.

발주점 = 리드타임 동안 예상되는 수요 + 안전재고

하루 평균 20kg을 쓰는 원재료의 공급 리드타임이 5일이라면, 입고를 기다리는 동안 예상 사용량은 20kg × 5일 = 100kg이다. 안전재고를 40kg으로 잡으면 발주점은 100 + 40 = 140kg이 된다. 재고가 이 수준에 닿으면 새 주문을 검토한다.

개념은 어렵지 않다. 문제는 실제 공장에서는 하루 사용량도 일정하지 않고 리드타임도 항상 5일로 고정되지 않는다는 것이다. 그래서 안전재고가 필요하다.

안전재고는 평소 쓰려고 쌓는 재고가 아니다

Safety Stock이라는 이름 때문에 “항상 이 정도는 남겨둬야 한다”로 이해하기 쉽다. 조금 더 정확히는 수요와 공급의 불확실성을 흡수하는 완충재고다. 예상보다 생산량이 늘어 사용량이 증가하거나, 공급업체 사정으로 입고가 늦거나, 검사에서 문제가 생겨 입고재고를 바로 못 쓰는 경우에 대응하는 Buffer다.

수요·공급이 완벽히 예측되고 리드타임도 항상 같다면 이론적으로 안전재고의 필요성은 크게 준다. 하지만 현장에는 변동이 존재하므로 일정 수준의 완충재고를 운영하는 경우가 많다.

평균사용량만 보면 품절이 날 수 있다

최근 한 달 평균 사용량이 하루 100kg이면 5일 리드타임에 100 × 5 = 500kg만 있으면 될 것 같다. 하지만 실제가 월 70 / 화 130 / 수 90 / 목 160 / 금 110처럼 변하면 평균만으로는 특정 기간의 증가를 설명하기 어렵다. 리드타임도 평균 5일이지만 어떤 주문은 4일, 어떤 주문은 8일 걸린다. 그래서 안전재고는 수요 변동과 리드타임 변동을 흡수하는 역할을 한다.

안전재고 공식은 하나가 아니다

가장 단순한 방법은 과거 최대사용량·최대리드타임을 쓰는 방식이고, 더 정교하게는 수요의 표준편차와 목표 서비스수준을 쓸 수 있다. 리드타임이 비교적 일정하다는 전제에서 개념적으로 이런 통계적 접근을 쓴다.

Safety Stock = Z × 수요 표준편차 × √리드타임

여기서 Z는 목표 서비스수준과 관련된 계수다. 하지만 이 공식을 모든 제조업체에 그대로 적용하면 안 된다. 수요·리드타임이 어떤 형태로 변동하는지, 데이터가 충분한지, 어떤 서비스수준을 목표로 하는지에 따라 모델이 달라진다. 그러니 중요한 건 복잡한 공식이 아니라 우리 공장의 실제 소비량과 공급 리드타임 데이터를 확보하는 것이다.

데이터가 부족한 초기엔 단순한 기준으로 시작한다

중소 제조업체가 ERP를 처음 구축하면 수년간의 정제된 소비데이터가 없는 경우가 많다. 그래도 안전재고 관리를 못 하는 건 아니다. 초기에는 최근 평균사용량 → 최근 최대사용량 → 평균리드타임 → 최대리드타임 → 실제 품절이력 같은 단순 데이터로 내부 기준을 잡고, 운영하며 데이터가 쌓이면 다시 계산한다.

Rule-based 관리 → 통계적 관리 → Forecast 기반 관리

처음부터 AI 수요예측 모델을 도입하기보다 Master와 Transaction 데이터의 정확도를 먼저 확보하는 게 중요하다.

현재고가 발주점 아래라고 바로 주문하면 안 된다

실제 ERP에서 가장 중요한 부분이다. 원재료 A의 발주점이 500kg이고 현재고가 400kg이라면 단순한 시스템은 400 < 500이니 발주경고를 낸다. 하지만 이미 1,000kg을 주문했고 내일 입고 예정이라면 새 발주는 필요 없다. 그래서 발주판단에서는 현재고가 아니라 재고 포지션(Inventory Position) 을 본다.

Inventory Position = On Hand + On Order − Allocated/Backorder

회사에 따라 예약·미출고·품질상태를 더 세분할 수 있다. 즉 발주점은 창고 현재고와 비교하는 숫자가 아니라 실제 공급가능성을 반영한 재고상태와 비교하는 기준이어야 한다.

On Hand와 Available은 다르다

재고관리에서 다룬 것처럼 물리적으로 존재하는 재고와 실제 쓸 수 있는 재고는 다르다. On Hand가 1,000kg이어도 QC HOLD 200kg, 생산예약 300kg이면 신규 생산에 자유롭게 쓸 수 있는 건 훨씬 적다. 그래서 발주판단에서도 On Hand → Quality Status → Reserved → Available을 구분한다. 특히 식품공장에서는 검사대기·부적합·회수대상 재고가 창고에 있어도 정상 가용재고로 계산하면 안 된다.

생산계획이 있으면 과거 평균보다 미래소요량이 더 중요하다

제조업의 원재료 수요는 판매량과 같지 않다. 앞으로 어떤 제품을 얼마나 생산할지에 따라 소요량이 달라진다. 원재료 A의 평소 사용량이 하루 100kg이어도 다음 주 대형 주문으로 생산계획이 두 배가 되면 과거 평균만 보고 발주하면 부족하다. ERP·MES가 연결돼 있으면 이렇게 계산한다.

판매계획 → 생산계획 → BOM/Recipe → 원재료 소요량 → 현재 가용재고 → 발주잔량

즉 과거사용량 기반 Reorder Point와 미래 생산계획 기반 Material Requirement를 함께 본다.

BOM은 미래 원재료 수요를 계산하는 기준이다

제품 A 1개에 원재료 X가 표준 500g 필요하고 다음 주 생산계획이 10,000개라면 표준소요량은 500g × 10,000 = 5,000kg이다. 여기서 현재 Available 재고·미입고 발주량·예약재고·예상 입고일을 고려해 추가 구매가 필요한지 계산한다. 다만 BOM은 표준이다. 실제 사용량이 표준보다 지속적으로 높다면 과거 Actual Consumption도 함께 분석해야 한다. 그래서 발주예측에는 BOM 기준 미래소요량과 실제투입 이력을 함께 활용하는 게 좋다.

FEFO를 무시한 안전재고는 식품공장에서 위험하다

식품 원재료는 수량만 많다고 안전한 게 아니다. 원재료 A가 2,000kg 있어도 그중 1,000kg의 사용가능 기간이 곧 끝난다면 “재고가 많으니 발주 안 한다”도 부족하다. 반대로 안전재고를 확보한다며 기한 짧은 원재료를 계속 사면 과잉재고와 폐기가 난다. 그래서 식품 제조에서는 이걸 함께 본다.

LOT → 관리기한 → FEFO 순위 → 현재수량 → 예상사용량 → 예상소진일

안전재고는 수량의 안전만 뜻하지 않는다. 실제로 사용 가능한 기간 안에 소진할 수 있는 재고인지도 중요하다.

MOQ 때문에 필요한 만큼만 못 사는 경우가 있다

계산상 필요한 수량과 발주 가능한 수량이 다를 수 있다. 시스템이 추가 필요량 320kg을 계산했어도 공급업체 MOQ가 500kg이면 최소 500kg을 주문해야 한다. 포장단위가 1 BAG = 20kg이면 325kg이 필요해도 실제 발주는 340kg처럼 포장단위에 맞춰야 한다. 그래서 발주추천에는 필요수량 → MOQ → Order Multiple → 포장단위 → 공급조건이 반영돼야 한다.

가격할인 때문에 과잉구매하는 게 항상 이익은 아니다

500kg 시 kg당 5,000원 / 1,000kg 시 4,800원처럼 수량할인이 있으면 단가만 보면 1,000kg이 유리하다. 하지만 추가 500kg 때문에 보관비용·자금점유·기한경과 위험·폐기위험이 커지면 실제로는 더 비쌀 수 있다. 그래서 구매단가만이 아니라 총 재고보유비용을 함께 본다. EOQ(Economic Order Quantity)도 발주비용과 재고보유비용의 균형을 찾는 전통적 모델이지만, 수요·리드타임이 안정적이라는 전제를 가지므로 모든 식품 제조환경의 정답은 아니다.

발주점과 발주량은 서로 다른 문제다

자주 혼동하는 부분이다. 발주점은 언제 주문할 것인가, 발주량은 얼마나 주문할 것인가를 정한다. 발주점이 500kg이라고 항상 500kg을 주문한다는 뜻은 아니다. 발주량은 목표재고 · 예상사용량 · 다음 입고 가능일 · MOQ · 포장단위 · 구매단가 · 창고용량 · 소비기한을 고려해 별도로 계산한다. 그래서 ERP에서는 Reorder Point와 Order Quantity를 별도 Parameter로 관리하는 게 좋다.

정기발주 방식은 발주점 방식과 계산구조가 다르다

모든 회사가 재고가 특정 수준에 닿을 때마다 주문하는 건 아니다. 매주 월요일에만, 또는 매월 정해진 날짜에 발주할 수 있다. 이 경우 다음 발주검토 시점까지 쓸 재고까지 고려한다. 매주 한 번 발주하고 리드타임이 3일이면 다음 검토주기 + 입고 리드타임 동안 필요한 수요를 본다. 즉 Continuous Review와 Periodic Review는 재고보충 논리가 다르다. ERP에서 모든 품목에 동일한 발주점 방식만 적용하지 않는 이유다.

공급업체 리드타임을 Master 고정값 하나로만 두면 부족하다

리드타임을 Supplier A = 5일로 저장할 수도 있지만, 실제로는 품목·주문량·계절·공급처 상황에 따라 달라진다. 그래서 발주일 → 약속납기일 → 실제입고일을 기록해 실제 리드타임을 축적하는 게 좋다. 그러면 평균리드타임·최대리드타임·납기준수율·리드타임 변동성을 공급업체별·품목별로 분석할 수 있고, 이 데이터가 쌓이면 안전재고 계산도 실제 공급성과를 반영한다.

공급업체 평가와 안전재고는 연결된다

Supplier A는 평균 3일에 안정적으로, Supplier B는 단가는 저렴하지만 3~10일로 크게 흔들린다고 하자. 구매단가만 보면 B가 유리하지만, 공급변동 때문에 더 많은 안전재고를 보유해야 한다면 전체 비용에서는 결과가 달라진다. 즉 공급업체의 납기안정성은 Safety Stock → Inventory Cost와 연결된다. ERP에서 구매이력과 실제입고일을 관리하는 이유가 단순 거래기록만을 위한 게 아니다.

안전재고를 모든 품목에 동일하게 설정하면 안 된다

원재료마다 중요도가 다르다. 어떤 건 국내 여러 업체에서 하루 만에 사고, 어떤 건 수입품이라 몇 주 걸린다. 단가가 낮아도 그게 없으면 완제품 출고 자체가 불가능한 부자재도 있다. 그래서 안전재고는 재고금액만 보고 정하지 않는다. 조달 리드타임 · 대체 공급처 · 생산중단 영향 · 수요변동 · 보관기한 · 단가 · 품질위험을 고려해 품목별 정책을 정한다. ABC 분석과 함께 중요도·공급위험을 별도로 분류하는 방법도 쓴다.

품절 비용도 품목마다 다르다

원재료가 하루 부족했을 때 손실은 다 같지 않다. 대체 가능한 부자재 부족과 핵심 원료 부족으로 라인이 서는 건 영향이 다르다. 그래서 안전재고를 최적화할 때 재고보유비용뿐 아니라 Stockout Cost도 생각한다. 핵심 원료가 부족하면 생산중단 → 납기지연 → 긴급구매 → 긴급운송 → 고객클레임으로 이어진다. 이런 품목은 상대적으로 높은 서비스수준을 목표로 둔다.

계절성이 강하면 하나의 평균값은 의미를 잃는다

식품 제조는 명절·여름·겨울·행사·프로모션에 따라 생산량이 크게 변한다. 연평균 하루 100kg이어도 비수기 50 / 성수기 300이면 연평균으로 발주점을 계산하는 건 위험하다. 그래서 계절성이 있으면 월별·주별·시즌별 수요패턴을 구분한다. 프로모션·대형 납품처럼 과거 데이터에 없던 이벤트는 Forecast만으로 알기 어렵다. 그래서 자동예측에서도 Historical Demand + Confirmed Orders + Production Plan + Event Information을 함께 본다.

발주 추천과 자동발주는 구분한다

시스템이 필요한 수량을 계산한다고 바로 구매발주서를 공급업체에 보낼 필요는 없다. 특히 초기에는 이 구조가 안전하다.

재고부족 예상 → 발주추천 → 구매담당자 검토 → 승인 → Purchase Order

시스템은 무엇을·언제까지·얼마나 사야 하는지 제안하고, 사람은 가격변동·공급업체 상황·대형 주문·생산계획 변경처럼 시스템에 아직 반영 안 된 정보를 검토한다. 데이터와 업무가 안정된 이후 일부 반복품목에 자동발주 범위를 확대한다.

AI가 없어도 자동 발주추천은 가능하다

발주추천이라고 바로 AI를 떠올리지만, 기본적인 자동발주는 AI 없이도 충분히 만든다.

Available Inventory + Open PO − Planned Consumption ≤ Reorder Point → 발주후보 생성
발주량 = Target Stock − Inventory Position  (MOQ·포장단위로 보정)

이것만으로도 사람이 수백 개 품목을 하나씩 확인하는 업무를 크게 줄인다. AI는 그다음 단계다.

AI 재고예측은 무엇을 더하나

데이터가 충분히 쌓이면 단순 평균보다 많은 패턴을 반영한다 — 요일별 사용량·월별 계절성·프로모션·생산계획·납기변동·품목 간 관계. 그러면 고정된 안전재고 하나 대신 시기별 위험에 따라 발주추천을 조정한다. 하지만 AI가 잘 작동하려면 먼저 데이터가 정확해야 한다. 입출고가 누락되고, BOM이 실제와 다르고, 생산투입이 BOM 자동차감으로만 처리되고, 리드타임 실적도 기록 안 하면 AI가 아무리 복잡해도 좋은 결과가 안 나온다. 그래서 순서는 이게 현실적이다.

Transaction 정확도 → Master Data → Rule-based Recommendation → Statistical Forecast → AI Optimization

발주추천 결과에는 이유를 보여준다

시스템이 “원재료 A 500kg 발주”라고만 표시하면 담당자는 신뢰하기 어렵다. 왜 500kg인지 보여줘야 한다.

현재 Available: 300kg / 미입고 발주: 0kg / 향후 7일 예상사용: 600kg
안전재고: 200kg / 목표재고: 800kg → 추천발주량: 500kg

AI를 쓰더라도 마찬가지다. 추천결과보다 중요한 건 왜 이런 추천이 나왔는지 사람이 검토할 수 있는 구조다.

발주 후에는 추천이 맞았는지 다시 확인한다

자동화의 마지막 단계는 발주서를 만드는 게 아니라 실제 결과를 다시 데이터로 가져오는 것이다. 추천발주 → 실제발주 → 공급업체 납기 → 실제입고 → 실제사용 → 품절 여부 → 잔여재고 → 폐기 여부를 비교하면, 안전재고가 너무 높았는지·발주점이 너무 낮았는지·리드타임이 변했는지·수요예측이 틀렸는지 확인할 수 있다. 안전재고는 한 번 계산하고 끝나는 숫자가 아니라 실제 결과를 보고 계속 조정하는 Parameter다.

발주추천을 재고 숫자 하나로 계산하지 않은 이유

재고와 구매를 연결할 때 단순히 현재고 < 최소재고 → 발주 구조만으로는 제조현장을 충분히 표현하기 어렵다고 봤다. 제조업에서는 현재고가 아니라 실제 쓸 수 있는 재고와 앞으로 필요한 수량을 봐야 하기 때문이다. 기본 구조는 이렇게 연결한다.

품목 Master → Supplier → Lead Time → MOQ → Order Multiple
   → LOT → Quality Status → On Hand → Reserved → Available → Open PO
   → Production Plan → BOM/Recipe Requirement → Actual Consumption
   → Safety Stock → Reorder Point → Purchase Recommendation

식품 원재료라면 여기에 FEFO → 잔여기한 → 예상소진일까지 연결한다. 실제 구매가 발생하면 Purchase Order → Expected Receipt → Actual Receipt → Supplier Lead Time History가 다시 다음 발주판단의 데이터가 된다.

결국 안전재고와 발주점의 목적은 창고를 가득 채우는 것도, 재고를 무조건 줄이는 것도 아니다. 생산에 필요한 재료를 필요한 시점에 쓸 수 있으면서 불필요한 재고와 폐기를 최소화할 수 있는 수준을 찾는 것이다. 그리고 그 수준은 고정돼 있지 않다. 수요·생산계획·리드타임·원재료 가격과 기한이 변하면 안전재고와 발주기준도 다시 계산해야 한다.

좋은 발주시스템은 사람 대신 무조건 주문하는 시스템이 아니다. 현재 재고와 미래 생산, 공급위험을 같은 데이터로 계산해 구매담당자가 더 정확한 결정을 내릴 수 있게 만드는 시스템이다.

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

이어서 읽으면 좋은 글

제조업 재고관리 완전정복 — 원재료부터 완제품·LOT·FEFO·원가까지

재고 · 물류3분 만에 확인
저자 Michael Han

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

최종 검증:

개정 이력

· 발행
· 개정

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

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