AI·자동화··업데이트

AI 재고예측과 발주 자동추천의 원리 — 품절과 과잉재고를 동시에 줄이기

발주추천의 품질은 예측모델보다 가용재고·리드타임 기록·소비기한의 정확성에서 먼저 갈린다. 발주점(언제)과 발주량(얼마)의 분리, 예측은 틀린다는 전제까지 300kg 추천으로 정리한다.

구매담당자 화면에 이런 추천이 떴다고 하자.

원재료 A
현재고 420kg / 가용재고 310kg / 미입고 발주 200kg
향후 10일 예상소요 680kg / 예상 입고 리드타임 6일
→ 추천 발주량 300kg

화면만 보면 단순하다 — “300kg 주문하세요.” 하지만 실제로 중요한 건 300이라는 숫자가 아니라 왜 300kg인지 설명할 수 있는가다. 창고에 420kg이 있는데 왜 부족한지, 이미 200kg을 발주했는데 왜 다시 주문해야 하는지, 왜 오늘 주문해야 하는지, 왜 200kg도 500kg도 아닌 300kg인지가 설명돼야 한다. AI 재고예측과 발주추천은 결국 이 질문에 답하는 시스템이다.

첫 번째 숫자부터 다르다 — 현재고가 곧 쓸 수 있는 재고는 아니다

장부상 원재료 A가 420kg 있어도 생산에 당장 쓸 수 있는 수량은 다르다. 80kg은 이미 다음 생산지시에 예약됐고, 30kg은 품질검사로 HOLD라면 가용재고는 310kg이다. 이 차이는 발주추천에서 매우 중요하다. AI나 예측모델이 아무리 정교해도 입력값을 On Hand 420kg으로 받아 전부 사용 가능한 재고라고 판단하면 추천 결과가 틀어진다. 그래서 발주계산에서는 단순 현재고보다 사용가능재고·예약수량·품질상태·미입고 발주량을 함께 봐야 한다. 재고예측의 품질은 예측모델보다 재고기준의 정확성에서 먼저 갈린다.

두 번째로 볼 것은 ’앞으로 얼마나 쓸 것인가’다

가용재고가 310kg이라는 사실만으로는 주문 여부를 결정할 수 없다. 앞으로 얼마나 쓸지를 알아야 한다. 여기서 두 종류의 수요가 섞인다.

  • Requirement — 이미 확정된 생산계획에서 계산되는 소요량. 다음 주 제품 B를 5,000개 생산 예정이고 Recipe상 원재료 A가 200kg 필요하다면 비교적 명확한 미래소요다.
  • Forecast — 아직 확정되지 않은 미래수요. 반복 판매되는 제품이라면 과거 판매·생산패턴으로 다음 주·다음 달 필요량을 추정한다.

이 둘은 성격이 다르다. 발주추천 시스템은 확정 생산계획에서 계산된 소요량(Requirement)과 아직 발생하지 않은 미래 사용량 추정(Forecast)을 구분해야 한다.

과거 출고량만 보고 원재료 수요를 예측하면 틀릴 수 있다

완제품 판매량이 늘면 원재료 사용량도 늘 가능성이 높지만, 둘이 항상 같은 비율로 움직이는 건 아니다. Recipe가 변경되거나, 수율이 달라지거나, 실제투입량이 표준보다 많거나 적을 수 있고, 같은 원재료가 여러 제품에 쓰일 수도 있다. 그래서 원재료 발주예측에서는 가능하면 완제품 수요예측 → 생산 필요량 → BOM·Recipe 소요량 → 현재고·예정입고 반영 구조로 계산하는 게 설명하기 쉽다. 반대로 실제 소비이력이 안정적인 소모품이라면 과거 출고·사용량 자체를 직접 예측할 수도 있다. 모든 품목에 같은 예측방식을 적용할 필요는 없다.

리드타임은 Master에 적힌 ’7일’보다 실제 기록이 중요하다

원재료 A의 표준 리드타임이 7일로 등록돼 있어도 실제 최근 입고기록이 5 · 6 · 5 · 9 · 6 · 11일이었다면 평균은 약 7일이지만 변동폭이 크다. 이런 품목을 항상 “7일이면 들어온다”고 가정하면 납기지연이 발생한 주문에서 품절 위험이 커진다. 반대로 공급업체가 안정화돼 실제로는 대부분 3일 만에 들어오는데 Master가 계속 7일로 남아 있다면 필요 이상으로 일찍 주문한다. 그래서 발주추천에서 중요한 건 단순 리드타임 한 숫자가 아니라 실제 발주일→입고일 기록이다. 이 데이터가 쌓이면 평균 리드타임뿐 아니라 변동성도 확인된다.

’언제 주문할까’와 ’얼마나 주문할까’는 다른 문제다

재고관리에서 이 두 질문이 자주 한 문장으로 묶이지만 시스템에서는 분리하는 게 좋다. 첫 번째는 지금 주문해야 하는가(발주점) — 예상 소요량·리드타임·안전재고를 고려했을 때 재고가 위험수준에 들기 전에 주문해야 한다. 두 번째는 주문한다면 얼마를 주문해야 하는가(발주량) — MOQ·주문배수·포장단위·가격조건·저장공간·소비기한을 추가로 고려한다. 계산상 173kg이 필요해도 MOQ가 200kg이면 실제 추천은 200kg이고, 25kg 포대 단위로만 주문 가능하면 175kg이나 200kg처럼 배수에 맞춰야 한다. 좋은 발주추천 시스템은 ’부족수량’을 그대로 발주수량으로 보여주지 않는다.

안전재고는 단순히 많이 쌓아두는 숫자가 아니다

수요·공급이 항상 계획대로 움직이면 안전재고의 필요성은 준다. 현장은 그렇지 않다 — 생산량이 갑자기 늘고, 입고가 늦고, 불량·폐기로 가용재고가 준다. 안전재고는 이 불확실성에 대응하는 완충이다. 하지만 변동이 크다는 이유로 모든 품목의 안전재고를 많이 잡으면 과잉재고가 된다. 그래서 품목마다 수요변동·리드타임 변동·품절 시 영향·대체 가능성이 다르면 안전재고 정책도 달라진다. 중요한 건 AI가 안전재고를 임의로 만드는 게 아니라, 회사가 어떤 서비스 수준과 위험을 감수할지 먼저 정해야 한다는 점이다.

식품 재고는 ’언젠가 쓸 수 있다’보다 ’쓸 수 있을 때까지 남아 있는가’다

일반 부품과 식품원재료의 발주추천이 다른 지점이다. 원재료 A를 1,000kg 주문하면 가장 싸도, 소비기한 안에 600kg밖에 못 쓴다면 400kg은 비용절감이 아니라 폐기위험이다. 그래서 식품 재고에서는 발주량을 계산할 때 예상소요량 · 현재 LOT별 잔여기간 · 예정입고 품목의 소비기한 · FEFO 출고가능성을 함께 봐야 한다. 판매처가 최소 잔여기간을 요구한다면 법적으로 소비기한이 남았다는 이유만으로 모든 재고를 동일하게 쓸 수 있는 것도 아니다. 그래서 발주추천의 목표는 재고를 많이 확보하는 게 아니라 필요한 시점까지 실제 쓸 수 있는 재고를 확보하는 것이다.

같은 500kg이라도 LOT 구성에 따라 판단이 달라진다

원재료 A가 총 500kg 있어 숫자만 보면 충분해 보인다. 그런데 —

LOT 01  100kg  잔여 10일
LOT 02  150kg  잔여 25일
LOT 03  250kg  잔여 90일

앞으로 30일 예상사용량이 300kg이라면 총재고 500kg이라는 숫자만으로는 실제 위험을 알기 어렵다. 짧은 잔여기간의 LOT를 제때 쓸 수 있는지 검토해야 하고, 반대로 100kg이 곧 쓰기 어려워질 가능성이 있다면 신규 발주를 늦추는 게 더 적절할 수도 있다. 이건 단순 수요예측 문제가 아니라 재고의 수량과 동시에 시간축을 관리하는 문제다.

발주추천에서 가장 먼저 쓰이는 게 반드시 AI는 아니다

원재료 사용량이 매우 안정적이고(매주 거의 100kg) 리드타임도 항상 3일이라면 복잡한 AI 모델보다 간단한 발주점 계산으로 충분하다. 반대로 계절성이 강하고, 판매변동이 크며, 여러 제품이 같은 원재료를 공유하고, 공급업체 리드타임도 불안정하다면 단순 Rule만으로 관리하기 어려워 통계적 예측이나 머신러닝을 검토한다.

Rule 기반 발주점 → 통계 기반 수요·변동성 계산 → 예측모델 미래소요 추정 → 여러 제약 결합한 발주추천

중요한 건 가장 복잡한 기술을 쓰는 게 아니라 현재 품목의 불확실성을 설명할 수 있는 수준의 기술을 선택하는 것이다.

품목 전체를 하나의 모델로 예측하지 않아도 된다

원재료 300종이 다 같은 특성을 갖진 않는다 — 매일 쓰는 핵심원료, 한 달에 한 번 쓰는 부재료, 주문 있을 때만 쓰는 특수원료가 섞여 있다. 그래서 모든 품목을 동일한 모델로 예측하기보다 특성에 따라 다른 정책을 적용하는 게 현실적이다.

A군 반복소비 안정 → Rule/단순 통계
B군 계절성      → 시계열 예측
C군 주문생산 전용 → 확정 생산계획 기반
D군 저가 소모품  → Min-Max 관리

AI 재고예측의 핵심은 모든 품목을 AI로 바꾸는 게 아니라 품목별로 어떤 계산이 적합한지를 나누는 것이다.

예측 정확도 하나만 보면 재고 시스템을 잘못 평가한다

예측모델이 다음 달 사용량을 95% 맞혀도 재고관리는 실패할 수 있다 — 공급업체가 늦게 입고했거나, MOQ 때문에 필요 이상 주문했거나, 이미 발주된 수량을 계산에서 빠뜨렸거나, HOLD 재고를 정상재고로 잘못 포함했을 수 있다. 반대로 예측오차가 다소 있어도 안전재고와 공급정책이 적절하면 품절 없이 운영된다. 그래서 발주추천의 성과는 Forecast Accuracy 하나보다 실제 업무결과 — 품절 발생횟수 · 긴급발주 횟수 · 평균재고 · 폐기·기한경과 재고 · 재고회전 · 담당자 수동 수정빈도 — 로 봐야 한다.

예측은 반드시 틀린다

이 문장을 전제로 시스템을 설계하는 게 좋다. 미래수요를 완벽하게 맞히는 모델은 없다 — 대형 주문이 갑자기 들어오고, 거래처 주문이 취소되고, 생산계획이 변경되고, 공급업체가 예상보다 늦게 납품한다. 따라서 재고예측 시스템의 목표를 “미래를 정확하게 맞힌다”로 잡으면 실패하기 쉽다. 더 현실적인 목표는 예측오차가 존재하더라도 품절과 과잉재고의 위험을 관리할 수 있도록 판단자료를 제공하는 것이다.

예측값에는 숫자 하나보다 범위가 더 유용할 수 있다

다음 주 예상사용량이 500kg으로 표시되면 담당자는 자연스럽게 500을 확정값처럼 받아들인다. 하지만 예측에는 불확실성이 있다. 평소 안정적인 품목이라면 480520kg에서 움직이고, 변동성이 큰 품목이라면 350700kg까지 흔들린다. 두 품목의 예상값은 모두 500kg이지만 재고정책은 같을 수 없다. 그래서 시스템이 가능하면 예상값 · 예측범위 · 변동성을 함께 보여주는 편이 유용하다. 발주결정은 평균적인 미래만 보는 문제가 아니라 불확실성을 어디까지 감수할 것인가의 문제이기 때문이다.

신제품은 ’AI가 유사품목을 알아서 찾는다’고 가정하지 않는다

신제품에는 과거 판매이력이 없다(Cold Start 문제). 유사품목 데이터를 참고하는 방법은 쓸 수 있지만, 어떤 제품이 실제로 유사한지는 회사의 제품구조를 알아야 한다. 같은 카테고리라도 가격대·판매채널·포장규격·계절성·프로모션 여부가 다르면 수요패턴도 크게 다르다. 그래서 초기에는 담당자의 목표수요나 판매계획을 쓰고, 데이터가 쌓인 뒤 예측비중을 높이는 방법도 가능하다. 신제품이라는 이유로 기존 품목의 패턴을 자동 복사하는 것은 위험하다.

프로모션은 과거데이터만으로 설명하기 어려운 대표적 사건이다

평소 하루 100개 팔리는 제품에 다음 주 대형 프로모션이 예정돼 있다면, 과거 판매이력만 쓰는 모델은 이를 모른다 — 프로모션 정보를 입력하지 않았다면 평소와 비슷한 수요를 예측한다. 그래서 재고예측에서는 시계열 데이터 외에 필요한 경우 프로모션 · 가격변경 · 신규거래처 · 판매채널 변경 · 계약수주 같은 미래정보를 반영할 수 있어야 한다. AI가 모든 정보를 스스로 발견한다고 생각하기보다 시스템이 알고 있는 미래 Event를 예측에 넣어주는 구조가 중요하다.

추천 300kg을 구매담당자가 500kg으로 바꿨다

시스템은 300kg을 추천했는데 담당자가 500kg으로 수정했다. 이걸 곧바로 “AI 추천이 틀렸다”고 판단하면 안 된다. 공급업체가 이번 주문 이후 한 달간 생산을 중단할 예정일 수도, 500kg부터 운송비가 무료일 수도, 다음 주 예정된 대형 주문이 아직 ERP에 반영 안 됐을 수도 있다. 중요한 건 왜 수정했는지다. 담당자가 MOQ · 가격조건 · 공급불안 · 생산계획 변경 · 프로모션 · 기타 같은 사유를 남기면 시스템이 놓친 정보가 무엇인지 알 수 있다. 추천값과 실제결정의 차이는 모델 개선자료이면서 동시에 Master Data 개선자료다.

’피드백하면 AI가 알아서 학습한다’는 표현은 조심한다

예측이 맞고 틀림을 시스템이 학습해 점점 정확해진다는 설명은 가능한 구조이지만, 모든 시스템이 자동으로 지속학습하는 건 아니다. 운영환경에서 모델을 자동으로 계속 변경하는 것이 오히려 위험할 수도 있다. 새 데이터로 재학습한 뒤 성능을 검증하고 기존 모델과 비교한 다음 배포하는 방식이 더 적절하다. 특히 계절변화나 사업구조 변화로 데이터 패턴이 달라지면 모델 성능이 시간이 지나며 떨어질 수도 있다. 그래서 AI 운영에서는 단순한 ’학습’보다 예측 → 실제결과 비교 → 성능평가 → 필요 시 재학습·검증이라는 관리과정이 필요하다.

몇 달치 데이터면 충분하다는 기준도 없다

기술적으로 계산을 시작하는 건 가능해도, 충분한 데이터량은 품목 특성과 예측기간에 따라 다르다. 연간 계절성을 분석하려면 몇 달치로는 계절 전체를 볼 수 없고, 일별 변동이 큰 품목은 더 많은 관측치가 필요하다. 반대로 소비량이 매우 안정적인 품목은 짧은 데이터로도 단순한 기준을 만든다. 그래서 데이터 준비도를 “몇 개월이면 된다”로 정의하기보다 예측하려는 패턴을 데이터가 충분히 포함하고 있는가로 판단하는 편이 정확하다.

자동발주는 추천발주보다 한 단계 다른 문제다

발주추천과 자동발주는 이름이 비슷하지만 위험수준이 다르다. 추천발주는 시스템이 수량을 계산하고 담당자가 확인한 뒤 Purchase Order를 생성하고, 자동발주는 특정 조건에서 시스템이 실제 주문까지 진행한다. 이 단계에서는 예측 정확도뿐 아니라 발주한도 · 품목별 허용범위 · 공급업체 · 가격 · 계약조건 · 중복발주 · 승인권한 · 오류복구 통제가 필요하다. 그래서 초기에는 추천과 승인을 분리하는 게 현실적이다. 다만 모든 회사가 영구적으로 수동승인을 유지해야 한다는 뜻은 아니다 — 반복적이고 위험이 낮으며 Rule이 명확한 일부 품목은 충분한 검증 뒤 자동화 수준을 높일 수 있다. 자동화 수준은 AI 성능만이 아니라 틀렸을 때의 비용을 기준으로 결정해야 한다.

발주추천 화면에 꼭 보여야 하는 건 ’추천량’만이 아니다

“원재료 A — 300kg 발주 권장”만 보여주면 근거를 확인하려 다시 여러 화면을 찾아야 한다. 실무에서는 추천과 함께 주요 근거 — 현재 가용재고 · 예정입고 · 리드타임 중 예상소요량 · 안전재고 · 예상 소진일 · MOQ·주문배수 — 를 보여주는 게 좋다. 그리고 “6일 후 예상 가용재고가 안전재고 아래로 내려감”처럼 추천사유를 보여줄 수 있다. 좋은 추천시스템은 숫자를 대신 정해주는 시스템보다 사람이 더 빨리 판단할 수 있도록 근거를 압축해주는 시스템에 가깝다.

구매팀 화면과 경영자 화면은 달라야 한다

구매담당자는 오늘 무엇을 주문해야 하는지가 중요하지만, 경영자는 다른 질문을 한다 — 지난 3개월간 품절이 얼마나 줄었는가, 평균재고는 어떻게 변했는가, 긴급발주가 감소했는가, 기한경과·폐기가 줄었는가, 공급업체별 리드타임은 안정적인가. 발주추천 시스템의 효과는 추천건수보다 이런 결과에서 확인한다. 추천이 많아졌다는 사실 자체는 성과가 아니다. 오히려 추천은 적지만 필요한 품목을 정확하게 골라준다면 더 좋은 시스템일 수 있다.

처음 화면의 300kg은 이렇게 만들어진다

다시 원재료 A로 돌아가면 — 현재고는 420kg이지만 예약·HOLD를 빼면 가용재고는 310kg이고, 이미 200kg이 발주돼 있다. 앞으로 일정기간의 확정 생산소요와 예측수요를 합치면 680kg이 필요할 것으로 계산됐다. 공급업체의 실제 리드타임과 변동성도 고려하고, 품절위험 대비 안전재고가 필요하며, 공급업체의 MOQ와 주문배수를 적용한다. 이 계산의 결과로 300kg이라는 추천이 나온다. 중요한 건 정확히 이 공식으로 모든 회사가 300kg을 계산해야 한다는 뜻이 아니라 — 회사의 품목 특성·재고정책·생산방식에 따라 계산구조는 달라진다 — 추천수량이 설명 가능한 데이터의 결과여야 한다는 것이다.

재고예측의 목적은 미래를 맞히는 게 아니다

AI 재고예측을 도입하면서 가장 쉽게 빠지는 함정은 예측 정확도 경쟁이다. 실제 구매업무의 목적은 미래 사용량을 소수점까지 맞히는 게 아니라, 필요한 재료가 없어 생산을 멈추지 않으면서도 쓰지 못할 재고를 과도하게 쌓지 않는 것이다. 그러려면 예측모델 하나보다 더 많은 것 — 정확한 가용재고, 생산계획, 실제 소비이력, 공급업체 리드타임, 안전재고 정책, MOQ, 소비기한과 LOT, 사람이 알고 있는 예외정보 — 이 함께 작동해야 한다.

그래서 AI 발주추천의 수준을 평가할 때 질문을 이렇게 바꾸는 편이 낫다. “예측이 몇 퍼센트 맞았는가?” 보다 “품절과 과잉을 줄이면서 구매담당자가 확인해야 할 예외를 얼마나 정확하게 좁혀주었는가?” 재고예측이 실제 발주업무의 도구가 되는 지점은 바로 여기다.

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

이어서 읽으면 좋은 글

제조업 AI 자동화 — 어디서부터 시작하나

AI · 자동화3분 만에 확인
저자 Michael Han

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

최종 검증:

개정 이력

· 발행
· 개정

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

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