MRP 전개(MRP Explosion)
MRP 전개(MRP Explosion)
MRP 전개(MRP Explosion)는 MRP레코드, BOM, Routing, Item Master 등을 기초 데이터로 하여 실행됩니다. 본 절에서는 이들 기초 데이터가 어떻게 활용됨으로써 MRP 전개가 실행되는 지를 살펴보도록 하겠습니다.
MRP 전개를 확실하게 이해하게 되면, MRP 시스템의 핵심 로직을 이해하게 되는 것입니다. MRP 전개의 로직은 의외로 단순합니다. 앞서 MPS/MRP 레코드를 설명드릴 때 재고균형식(Inventory Balance Equation)을 설명드린 바 있습니다. 기간별 수요에 따라 언제 부품이 얼마만큼 필요한지를 계산할 수 있었습니다. 그리고, Planned Order Release의 시점과 양을 계산할 수 있었지요? MRP Explosion은 이렇게 계산된 Planned Order Release의 시점과 양을 이용하여 하위 단계의 부품에 대한 수요량을 구하고 다시 하위 부품의 생산/구매 계획을 세우는 과정을 BOM의 최하위 단계의 부품까지 해 주는 역할을 합니다. MRP Explosion의 핵심 과정은 BOM, Routing(리드타임의 정확한 계산에 사용됨), Item Master(발주정책 및 Parameter), 재고 데이터를 이용하여 MRP 레코드를 생성(수정)하는 과정입니다.
다음의 그림은 MRP Explosion을 설명하기 위해 간단하게 만든 안경의 BOM입니다. 앞서 BOM을 설명드릴 때 사용하였던 안경의 BOM과는 다르지만, 설명을 위한 용도임을 이해해 주시기 바랍니다.
안경의 BOM과 리드타임 정보
그림에서 안경은 테와 렌즈로 구성되어 있습니다. 렌즈의 경우 Manufactured Item이라고 가정하였으므로, 아마도 렌즈를 만드는 데 필요한 하위 부품들이 렌즈밑으로 있으리라 예상할 수 있습니다. 그리고, 안경 하나를 만드는 데 렌즈는 2개 필요하다는 것을 알 수 있지요. 이 외에도 렌즈와 테가 있을 때, 이를 안경으로 조립하는 데에는 2주가 걸림을 알 수 있으며, 테를 구입하는 데에는 1주가 소요되며, 렌즈를 만드는 데에는 2주가 필요하다는 것을 알 수 있습니다. 이러한 리드타임에 대한 정보는 Item Master와 라우팅을 통해 얻을 수 있습니다. 제조되는 부품인 경우에는 라우팅을 통해 리드타임을 정확하게 구할 수 있으며, 구입되는 부품인 경우에는 Item Master를 참조하면 리드타임을 구할 수 있습니다. 만일 우리가 T주말까지는 안경 100개를 납품해야 한다면, T-1주 초, 즉 T-2주말까지는 렌즈 200개와 테 100개를 가지고 있어야 할 것입니다. ( Parent Item의 소요량에 따른 Child Item의 소요량 정보는 BOM에서 얻을 수 있습니다.) 그리고, 테 100개는 구매 리드 타임이 1주이기 때문에, 적어도 T-2주 초에는 또는 T-3주말까지는 구매오더가 나가야 할 것입니다. 마찬가지로 렌즈 200개에 대한 생산지시는 T-3주초 또는 T-4주말까지는 나가야 할 것입니다. 그러나, 테나 렌즈에 대한 재고가 충분하거나 일부 재고가 확보되어 있는 경우에는 주문을 하지 않거나 혹은 주문량을 줄일 수도 있습니다. 그리고, 테나 렌즈가 다른 안경의 생산에도 사용된다면, 즉 공통부품(Common Component)라면 이들 요구량과 요구시점까지를 고려해서 수요량을 구하고, 생산 계획 또는 구매 계획을 작성하도록 하여야 할 것입니다. 이러한 계산은 어떻게 할 수 있을까요? 다음의 MRP 레코드를 보면서 설명드리도록 하지요.
MRP Explosion 과정
안경의 경우 현재 재고가 없군요(현재고=0). 그리고, 2주, 5주, 8주에 각각 300개씩이 필요하다는 것을 알 수 있습니다. 그리고, 2주에 공급해야 할 안경에 대해서는 생산지시가 내려졌거나 Firm Planned 상태라는 것을 알 수 있습니다. 안경의 주문정책은 안전재고가 0이고(SS=0, SS:Safety Stock), 리드타임이 2주이며, 주문정책은 Fixed Order Quantity를 쓰고 있는데, Order Quantity는 300으로 정해져 있군요. 렌즈의 경우에는 현재 400개의 재고를 가지고 있으며, 주문정책은 Fixed Order Quantity(FOQ)이며, 안전재고는 100, 리드타임은 1주이군요. 그리고, 주문은 1,000개 단위로 하고 있습니다.
위의 그림에서 안경의 MRP 레코드(MPS Table)를 보면, 주문정책에 따라 300개씩의 주문을 하는데, 주문시점은 리드타임 2주를 고려하여 각각 3주와 6주임을 알 수 있습니다. 적어도 3주초와 6주초에는 안경 조립에 들어가야 한다는 것이지요. 그렇다면, 3주초와 6주초에는 안경 조립을 위한 렌즈가 있어야 겠지요? 몇개의 렌즈가 필요할까요? BOM에는 한 단위의 안경을 안경을 만드는 데 필요한 렌즈의 양에 대한 정보가 있습니다. 즉, 1개의 안경을 만드는 데에는 2개의 렌즈가 필요하다는 것이지요. 따라서, 3주초와 6주초까지는 렌즈가 각각 600개씩 필요하게 됩니다. 렌즈의 제조에 소요되는 리드타임은 1주라고 했습니다. 가용재고가 있다면 추가의 생산 오더를 내리지 않아도 됩니다(렌즈에 대한 MRP레코드중 6주의 데이터를 보시면 됩니다.). 그러나, 재고가 부족하다면 생산오더를 내려야겠지요. 즉, 3주초에 확보해야 할 렌즈를 위해 2주초 또는 1주말에 1,000개의 생산 오더를 내게 됩니다. 생산지시가 없다 하더라도 400개의 재고가 있지만, 주문정책에 의해 1,000개의 오더를 내개 됩니다. 따라서, 3주말에는 400개의 재고(2주말) + 1000개의 (예정)입고량 - 600개의 소요량을 반영(계산)한 800개의 재고가 남게 됩니다. 이렇게 Parent Item(안경)의 소요시점과 소요량을 바탕으로, Child Item (렌즈 또는 테)의 소요시점과 소요량을 계산해나가는 과정을 MRP Explosion이라고 합니다. 이러한, MRP Explosion은 BOM의 최상위 부품에서 시작하여 BOM의 최하위 부품(leaf node)에 이를 때까지 수행됩니다.
지금까지는 한 제품을 기준으로 MRP Explosion에 대해서 설명드렸습니다. 그러나, 많은 제품들은 동일한 부품을 이용하여 생산 또는 조립되는 경우가 많습니다. 즉, 공통부품이 많이 존재합니다. 공통부품이 존재하는 경우, 무작위로 제품별로 MRP Explosion을 하면, 문제가 생깁니다. 예를 들어, 안경 A도 렌즈 C를 이용하여 조립되며, 안경 B도 렌즈 C를 이용하여 조립된다고 가정하겠습니다. 안경 A의 MRP Explosion을 끝내면, 렌즈 C의 소요량이나 생산 계획 그리고 렌즈 C를 만드는 데 필요한 부품들에 대한 생산 계획 및 구매 계획이 수립되게 됩니다. 그러나, 다시 안경 B에 대한 MRP Explosion을 하게 되면, 렌즈 C에 대한 생산 계획 및 구매 계획은 변경되어야 됩니다. 그러면, 다시 렌즈 C의 부품에 대한 생산 계획 및 구매 계획도 변경되겠지요. 바로 이러한 문제는 동일한 부품의 존재때문에 발생합니다. 어떻게 해결할 수 있을까요?
LLC(Low Level Code)의 계산
이러한 문제는 MRP Explosion의 순서를 잘 정하면 해결될 수 있습니다. 위의 그림은 2종류의 제품에 대한 BOM 그림입니다. A라는 제품을 만드는 데에도 C라는 부품이 이용되고, F라는 제품을 만드는 데에도 C라는 부품이 사용되지요. 물론, C를 만드는데 필요한 D와 E부품도 공통부품이 되겠습니다. 만일 A라는 제품에 대한 MRP Explosion을 한다면, A에 대한 생산계획 결과를 이용하여 B와 C의 구매/생산계획이 수립될 것이고, 다시 D와 E의 구매계획이 수립되겠지요? 다시, F라는 제품에 대해 MRP Explosion을 하면, G와 H에 대한 구매/생산계획이 수립될 것이고, 다시 F에 대한 생산 계획을 바탕으로 C와 I에 대한 생산/구매계획이 수립될 것입니다. 또, C에 대한 생산계획을 바탕으로 D와 E에 대한 구매계획이 수립되겠지요. 결국, 두번에 걸친 별개의 MRP Explosion에 의해 C와 D, E의 대한 생산 및 구매계획은 계속 변경되어야 할 것입니다. 공통부품이 많을 수록 특히 공통부품을 만드는 데 필요한 Child Item이 늘어날 수록 이러한 변경에 대한 계산량은 늘어나게 될 것입니다. 한 번에 정확하게 계산할 수 있으려면 MRP 계산의 순서를 잘 정해야 합니다. 이러한 계산 순서는 LLC(Low Level Code)를 이용하여 정할 수 있습니다. 각 제품의 BOM을 통합하여 그린다면 우측의 그림과 같을 것입니다. 이를 Goz-Into Graph라고 합니다. 이러한 그래프에서 최상위 노드의 값을 0이라고 하고, 각 링크의 거리를 1로 둔 뒤에 각 부품까지의 최장거리(Longest Distance)를 구하면 이 결과를 LLC라고 합니다. 이러한 최장 거리를 구하는 데에는 Shortest Path를 구하는 알고리즘이 이용됩니다. 단, Cycle이 존재하지 않아야 합니다. 이러한 Cycle이 존재하는 지의 여부는 Labeling Algorithm 을 이용하여 구할 수 있습니다. 자세한 알고리듬이 궁금하시면 주변에 산업공학을 전공한 분에게 문의하시기 바랍니다. LLC를 눈으로 계산해 보기로 하지요. 제품 A와 F는 LLC 0이고, 부품 B,G,H는 LLC 1입니다. 그리고, 부품 C, I는 LLC 2이고, 부품 D,E는 LLC가 3이지요. MRP Explosion을 할 때에는 LLC값이 작은 것으로 부터 큰 것의 순서로 전개하면 앞서 언급한 문제들이 사라지게 됩니다. 대개의 MRP/ERP 팩키지에서는 이러한 LLC 코드를 계산해 주는 기능이 탑재되어 있으며, 이러한 LLC 코드를 이용하여 MRP 전개를 합니다.
MRP 전개를 이해하셨습니까? 이러한 MRP 전개에는 많은 시간이 소요됩니다. 왜냐하면 부품의 수가 워낙 많기 때문이지요. 그래서, 주기적으로 MRP를 전개하는 것을 관행으로 하고 있습니다. 물론, 필요에 따라서는 정해진 시점이 아니라 할지라도 MRP 전개를 하지요. 이러한 MRP 전개는 크게 Net Change와 Regeneration 방법이 있으며, MRP/ERP 팩키지에 따라서 추가의 기능을 제공합니다. 이러한 기능들은 계산의 효율성을 높이기 위한 것들과 의사결정지원을 위한 What-If Simulation에 사용되는 것, 그리고 시스템의 상황을 보다 빠르게 반영하기 위한 것 등이 있습니다. 이러한 내용에 대해서는 이후 보다 자세히 설명드리도록 하겠습니다.
본 절은 MRP 전개에 대한 기본적인 이해를 돕기 위한 것이었습니다. 그러나, MRP Explosion과 관련하여 언급하지 못한 많은 주제들이 존재합니다. 이러한 주제들에 대해서는 앞으로 다루도록 하겠습니다.
본 페이지는 1997년 12월 29일에 만들어졌습니다.