M365Con 2027 – 무료 온라인 컨퍼런스 · 11–22 Jan 2027 · 120 sessions→ m365con.net

2026-09-15

제약 기반 스케줄링: 생산 계획을 현실로 만드는 아키텍처

제약 기반 스케줄링: 생산 계획을 현실로 만드는 아키텍처
ERP에는 고객 주문이 금요일에 출하되는 것으로 표시되어 있습니다. 작업 지시서는 발행되었고, 라우팅은 올바르게 보이며, 용량도 가용한 것처럼 보입니다. 계획 보고서에는 모든 것이 문제없어 보입니다. 그런데 월요일 아침이 되자 핵심 5축 가공기가 멈춥니다. 한 주문은 이미 생산 중이고, 다른 주문은 자재를 기다리고 있습니다. 세 번째 주문은 이론적으로는 다른 기계로 옮길 수 있지만, 공용 지그가 비어 있고, 올바른 프로그램이 승인되어 있으며, 해당 교대에 자격을 갖춘 작업자가 배치되어 있어야 가능합니다. ERP 계획에는 여전히 금요일이라고 적혀 있습니다. 하지만 ERP에 적힌 날짜가 공장이 실제로 납품할 수 있다는 것을 자동으로 보장하지는 않습니다. 이 에피소드에서는 제약 기반 생산 스케줄링을 다룹니다. 즉, 사업이 원하는 바를 기술하는 생산 계획과 공장이 실제로 실행할 수 있는 바를 반영하는 유한 생산 스케줄의 차이를 살펴봅니다. 가상의 정밀 가공 업체 사례를 활용하여 설명합니다.

당신의 ERP는 고객 주문이 금요일에 출하된다고 말합니다. 작업 지시서는 릴리스되어 있습니다. 라우팅도 올바른 것으로 보입니다. 용량도 여유가 있는 것처럼 보입니다. 계획 보고서에서는 모든 것이 괜찮아 보입니다. 그런데 월요일 아침이 되자 핵심 5축 머시닝 센터가 고장 납니다. 한 주문은 이미 생산 중이고, 다른 주문은 자재를 기다리고 있으며, 세 번째 주문은 이론적으로는 다른 기계로 옮길 수 있습니다. 단, 공용 고정구(fixture)를 사용할 수 있고, 올바른 프로그램이 승인되어 있으며, 해당 교대 근무에 자격을 갖춘 작업자가 배치되어 있어야 합니다. ERP 계획에는 여전히 금요일이라고 적혀 있습니다. 하지만 ERP에 있는 날짜가 곧 공장이 실제로 그 납기를 맞출 수 있다는 뜻은 아닙니다. 이번 에피소드에서는 제약 기반 생산 스케줄링(constraint-based production scheduling)과, 사업이 원하는 바를 나타내는 생산 계획과 공장이 실제로 수행할 수 있는 바를 반영하는 유한 생산 스케줄(finite production schedule) 사이의 차이를 살펴봅니다. 가상의 정밀 가공 공장을 예로 들어, 생산 수요가 ERP에서 시작해 라우팅, 기계, 공구, 고정구, 인력, 자재, 품질, MES, 정비, 현장 이벤트를 거치는 과정을 따라가 보고, 스케줄링 엔진이 이러한 제약들을 어떻게 결합해 달성 가능한 생산 스케줄을 만드는지 알아봅니다.

생산 계획이 실제 공장과 만날 때

생산 계획은 보통 수요에서 출발합니다. 고객은 제품을 필요로 하고, 주문에는 수량과 납기일이 있습니다. ERP는 이 수요를 작업 지시서, 자재 소요량, 라우팅, 그리고 대략적인 용량 요구량으로 변환합니다. 이는 필수적입니다. 하지만 이것이 매일 생산팀이 답해야 하는 질문, 즉 "다음에 실제로 무엇을 돌릴 수 있는가?"와 같은 것은 아닙니다. 생산 계획은 가공 작업장에서 8시간을 예약해 둘 수 있습니다. 그러나 실제 공장은 그 8시간을 어떤 기계가 제공할지 알아야 합니다. 그 기계는 사용 가능한가? 정확히 이 부품 리비전을 생산할 수 있는가? 올바른 공구가 있는가? 고정구를 쓸 수 있는가? 자재가 출고되었는가? 계획된 셋업 시간 동안 필요한 작업자 자격을 갖춘 인력이 있는가? 해당 주문이 다음 공정에 도달할 만큼 충분히 일찍 완료되는가? 제약 기반 스케줄링은 사업이 충족하기를 원하는 수요를 실제로 존재하는 생산 조건에 대입해 검증합니다.

생산 계획 vs. 생산 스케줄

생산 계획과 생산 스케줄링은 밀접하게 관련되어 있지만, 서로 다른 질문에 답합니다. 생산 계획은 수요, 날짜, 수량, 자재, 그리고 대략적인 용량 요구량에 초점을 맞춥니다. 생산 스케줄은 더 깊이 들어갑니다. 특정 공정을 실제 자원에, 실제 시간에, 실제 순서로 배정합니다. 이러한 구분은 계획 시스템이 무한 용량(infinite capacity)을 가정할 때 특히 중요합니다. 무한 용량 계획은 실제 공장이 수행할 수 있는 양보다 더 많은 작업을 특정 기간에 배치할 수 있습니다. 두 개의 긴급 주문이 같은 시간에 같은 기계를 필요로 하는 것처럼 보일 수 있습니다. 서류상으로는 두 주문 모두 여전히 긴급합니다. 그러나 현장에서는 하나의 스핀들이 한 번에 한 공정만 수행할 수 있습니다. 유한 용량 스케줄링은 이러한 충돌을 드러냅니다. 작업장이 할당된 수요를 무엇이든 흡수할 수 있다고 가정하지 않고, 자원 캘린더, 정비, 셋업 시간, 고정구, 공구 및 기타 제약을 고려합니다.

유한 용량은 용량을 만들어내지 않습니다

이것은 중요한 구분입니다. 유한 용량 스케줄링은 마법처럼 기계를 하나 더 만들어 내지 않습니다. 자재를 더 일찍 도착하게 하지도 않고, 다른 작업자에게 자격을 부여하지도 않으며, 설비를 수리하지도 않습니다. 대신 생산 현장이 지연, 긴급 처리, 초과 근무, 고객 확대 요청을 통해 발견하기 전에 충돌을 미리 드러냅니다. 두 고객 주문이 같은 5축 기계를 필요로 한다고 가정해 봅시다. 둘 다 긴급하고, 납기도 빡빡합니다. 무한 계획은 두 주문을 같은 용량 버킷에 넣을 수 있습니다. 유한 스케줄은 결정을 내려야 합니다. 하나가 먼저 가고, 다른 하나는 뒤따릅니다. 또는 하나는 승인된 대체 설비로 옮겨집니다. 아니면 하나가 지연됩니다. 이로 인해 생산 스케줄이 ERP 계획보다 더 나빠 보일 수 있습니다. 하지만 스케줄이 문제를 만든 것은 아닙니다. 물리적 제약은 이미 존재하고 있었습니다. 스케줄이 그것을 보이게 했을 뿐입니다.

생산 제약이란 무엇인가?

제약(constraint)이란 생산 작업을 시간에 배치할 때 반드시 준수해야 하는 조건입니다. 어떤 제약은 강제적(hard)입니다. 주문이 긴급하다는 이유로 단순히 무시할 수 없습니다. 기계는 필요한 기능이 없다면 공정을 수행할 수 없습니다. 고정구는 두 기계에 동시에 장착될 수 없습니다. 품질 보류 상태의 자재는 소비할 수 없습니다. 인증이 없는 작업자는 통제된 셋업을 수행할 수 없습니다. 정비 시간대는 사용 가능한 기계 용량을 제거합니다. 공정은 필요한 이전 공정이 필요한 산출물을 생산하기 전에는 시작할 수 없습니다. 다른 제약은 연성(soft)입니다. 이는 선호나 사업 목표를 나타냅니다. 셋업 횟수를 줄이고 싶을 수 있습니다. 초과 근무를 최소화하고 싶을 수 있습니다. 재공품(WIP)을 줄이고 싶을 수 있습니다. 계약상 고객 납기를 우선할 수도 있습니다. 병목 설비를 지속적으로 가동하고 싶을 수도 있습니다. 따라서 유용한 스케줄링 원칙은 다음과 같습니다. 먼저 실현 가능성(feasibility), 그다음 최적화(optimization). 먼저 생산이 물리적으로, 그리고 운영상으로 무엇을 실행할 수 있는지 결정합니다. 그런 다음 실현 가능한 옵션 중 어떤 것이 사업 목표를 가장 잘 지원하는지 결정합니다.

납기일은 우선순위와 같지 않다

여러 주문이 같은 자원을 두고 경쟁할 때 생산 스케줄링은 특히 흥미로워집니다. 납기일은 무엇이 언제 끝나야 하는지를 알려 줍니다. 그러나 최선의 순서가 무엇인지 자동으로 알려 주지는 않습니다. 긴급한 주문은 긴 셋업을 필요로 할 수 있습니다. 다른 주문은 자재가 이미 준비되어 있고 기계의 현재 셋업을 그대로 쓸 수 있을 수도 있습니다. 세 번째 주문은 배치 공정 마감 시한 전에 즉시 완료되어야 할 수도 있습니다. 단순히 생산 큐를 납기일로 정렬하면 이러한 관계를 무시하게 됩니다. 제약 기반 스케줄링은 전체 생산 맥락을 평가합니다. 이는 우선순위를 명시적으로 만들어, 누가 계획자에게 먼저 전화했는지에 따라 정해지는 것을 막아 줍니다.

라우팅과 공정 간 의존성

생산 주문은 단일 작업 덩어리가 아닙니다. 여러 공정을 거칩니다. 이번 에피소드에서 살펴보는 예에서 가공된 하우징은 5축 밀링, 이어서 열처리, 검사, 조립을 거쳐야 합니다. 이 공정들은 서로 의존합니다. 밀링이 늦게 끝나면 문제가 반드시 가공 단계에만 머무르지는 않습니다. 주문이 다음 열처리 배치를 놓칠 수 있습니다. 그 지연으로 검사가 밀릴 수 있고, 검사가 밀리면 조립이 밀리고, 조립이 밀리면 최종 납기일이 밀릴 수 있습니다. 그래서 제약 기반 스케줄링은 개별 기계 가동률만이 아니라 공정 간 의존성도 이해해야 합니다. 스케줄은 생산의 흐름을 모델링해야 합니다.

자재 가용성은 재고 이상의 문제

계획 시스템은 자재가 존재한다고 보여 줄 수 있습니다. 하지만 생산이 실제로 그 자재를 소비할 수 있을까요? 이는 서로 다른 질문입니다. 자재는 물리적으로 공장 안에 있지만 아직 입고 검사를 기다리고 있을 수 있습니다. 다른 생산 주문에 할당되어 있을 수 있습니다. 격리(quarantine) 상태일 수 있습니다. 고객 전용 성적서가 필요할 수 있습니다. 올바른 재질 등급이지만 승인되지 않은 로트일 수도 있습니다. 따라서 유용한 스케줄링 질문은 단순히 "자재가 있는가?"가 아닙니다. "이 공정이 계획된 시간에 이 승인된 자재를 소비할 수 있는가?"입니다. 답이 아니요라면, 기계가 가용하더라도 그 공정은 준비되지 않은 것입니다. 이 에피소드는 자재와 품질 게이트가 어떻게 단순한 재고 속성이 아니라 시간 기반 생산 제약이 되는지를 보여 줍니다.

기계 역량 vs. 기계 가용성

다른 기계에 여유 용량이 있다고 해서 그것이 자동으로 대체 설비가 되는 것은 아닙니다. 해당 자원은 공정을 수행할 수 있는 역량을 갖추어야 합니다. 올바른 작업 범위(working envelope)를 가져야 합니다. 공차 가공 능력이 중요할 수 있습니다. 특정 컨트롤러나 승인된 프로그램이 필요할 수 있습니다. 고객 승인이 특정 기계로만 공정을 제한할 수도 있습니다. 같은 ERP 작업장에 속한 서로 다른 기계들도...

Apple Podcasts · Spotify · YouTube · Deezer

Constraint-Based Scheduling: The Architecture That Makes Production Plans Real (English)