병목이 꼭 있어야 하는 이유   

2011. 2. 24. 09:00
반응형



먼저 여러분이 생산관리자라고 가정해 보세요. 알다시피 원재료가 생산 라인에 투입되어 하나의 제품이 생산되고 출하되기까지 여러 개의 공정을 거쳐야 합니다. 여러분이 라인을 최적화시킬 생각이라면, A기계에서 가공되어 나온 중간제품(이를 재공품이라고 함)이 곧바로 B기계로 투입되도록 하고 싶을 겁니다. 그래야 각 재공품이 기계들 사이사이에 쌓여있지 않고 물 흐르듯 여러 기계들을 흘러서 완제품이 될 테니 말입니다. 또한 각 기계가 '노는 시간' 없이 계속 돌아가는 라인을 구축하고 싶을 겁니다. 예컨대 앞공정을 기다리느라 놀고 있는 후공정 기계가 없도록 말이죠.

이를 '라인 평준화'라고 합니다. 구체적으로 설명하면 이렇습니다. A기계가 1분에 2개의 재공품을 가공하고 B기계가 1분에 1개의 재공품을 가공한다면, A기계와 B기계를 1 대 2의 비율로 라인에 깔아서 재공품 재고가 쌓이지 않게 하는 것이 평준화의 개념이죠. 이렇게 하려면 일단 A기계와 B기계가 오차 없이 정해진 시간에 가공을 끝내야 한다는 전제조건이 있습니다. A기계가 1분에 2개를 만들어 내야 하는데 원재료 투입이 늦어진다든지 고장으로 잠시 운행을 중단하면 뒤에 있는 B기계는 놀 수 밖에 없으니까요.



그래서 여러분은 최종제품 하나가 만들어지는 데 걸리는 시간(이를 택트 타임(tact time)이라고 함)의 변동을 줄여야 하는 숙제가 주어집니다. 거칠게 설명했지만, 이런 과정을 바로 라인 평준화라 하죠.

하지만 라인의 변동성을 과연 줄일 수 있을까요? 공급업체가 원재료를 늦게 갖다 준다든지 고객으로부터 긴급한 오더가 떨어진다든지 등 외생변수 뿐만 아니라, 기계의 고장이나 유지보수, 작업자의 착오 등으로 발생하는 각종 내생변수들이 라인을 평준화된 상태로 그냥 놔두지를 않습니다. 변동을 줄일 수는 있겠지만 없앨 수는 없는 노릇이죠. 그래서 재공품들이 기계들 사이에 산처럼 쌓이고 최종제품을 출하하기까지 시간이 오래 걸리는 상황이 자주 발생합니다.

진짜 그러한지 시뮬레이션을 해볼까요? 생산 라인을 예로 들면 생소할지 모르니, '동전 옮기기' 게임으로 평준화된 라인의 문제점을 살펴보겠습니다.

여기에 여섯 명의 사람이 있습니다. 현빈, 동건, 상우, 태현, 도연, 정민, 이렇게 6명이 각자 주사위를 던져서 나온 수만큼 동전을 뒤로 전달하는 게임을 생각해 보죠. 이때 현빈은 동전 공급자라서 충분히 많은 양의 동전을 가지고 게임을 시작합니다. 그리고 나머지 다섯 명은 각각 4개씩 총 20개의 동전을 가지고 게임에 임합니다.

준비가 되면, 각자 동시에 주사위를 던집니다. 그런 다음, 현빈은 동건에게, 동건은 상우에게, 상우는 태현에게... 이런 식으로 주사위에서 나온 수만큼의 동전을 뒷사람에게 전달합니다. 이때 한 가지 규칙은 주사위에 나온 수보다 현재 가지고 있는 동전의 수가 적으면, 그만큼만 뒷사람에게 전달할 수 있다는 점입니다. 예를 들어 상우가 가지고 있는 동전의 수가 3개인데 주사위에서 6이 나왔다면, 6이 나왔다 해도 3개만 태현에게 전달할 수 있습니다. 두 번째 규칙은 뒷사람에게 먼저 동전을 전달한 다음에 앞사람에게서 동전을 받아야 한다는 것입니다(앞사람에게서 받은 동전과 자신이 가진 동전을 합해서 뒷사람에게 전달하는 것이 아님).

맨 끝에 있는 정민은 '공정'의 마지막 단계이기 때문에 주사위를 던져 나온 수만큼 동전을 라인 밖으로 '출하'시키면 됩니다. 게임 규칙이 조금 까다로운가요? 천천히 읽어 보면 이해가 될 겁니다. 여섯 사람 모두 1개씩의 주사위를 가졌기 때문에 평준화된 라인으로 간주할 수 있습니다. 그리고 주사위는 1부터 6까지의 수를 나타내므로 라인의 변동성을 상징하죠.

주사위를 한번 던지는 것을 1일로 가정하면, 20번은 1개월을 의미합니다(주말 제외). 주사위를 20번 던지면(즉, 한 달 동안 라인을 돌리면) 어떤 일이 벌어질까요? 정민이는 1개월 동안 총 몇 개의 동전을 출하할 수 있을까요? 주사위의 수는 1부터 6까지니까 평균값을 계산하면 3.5입니다. 그리고 주사위를 20번을 던진다고 하니까 평균 70개(=3.5 * 20)의 동전이 출하되리라 예상됩니다.

하지만 이런 예상은 보기 좋게 틀리고 맙니다. 다음은 Excel을 사용해서 동전 옮기기 게임을 시뮬레이션한 모습입니다(잘 안 보이면 그림을 클릭하세요).

덧글 : Excel에서는 주사위 던지기를 randbetween(1,6)이라는 함수로 대신했습니다. randbetween() 함수가 진정한 난수(random number)를 내지 못한다는 문제를 제기하는 분이 꼭 있을 텐데, 실제의 주사위도 완벽하게 균질한 물체가 아니거니와, 어차피 라인의 변동성을 대신하기 위함이므로 randbetween() 함수가 별로 문제될 것이 없는 좋은 대체 장치라고 생각합니다.


70개 정도가 출하될 줄 알았는데, 고작 52개가 출하되고 말았습니다. 게다가 처음에 20개로 시작한 재공품의 개수가 한 달이 지나자 45개로 2배 이상 늘었습니다. 이는 기계들 사이에 재공품들이 쌓여있는 라인의 모습과 같습니다.

아마 여러분 중 누군가는 주사위가 1부터 6을 가지기 때문에 일부러 변동을 크게 잡아서 이런 일이 벌어졌다고 생각할지 모르겠습니다. 하지만 변동폭을 줄여본 다음 시뮬레이션해도 이와 비슷한 현상이 일어납니다. 그건 여러분이 직접 한번 해보기 바랍니다. 변동폭을 줄인다고 해서 동전의 출하량을 늘리기엔 한계가 있다는 점을 알게 될 겁니다.

이렇게 말하는 이유는 각자에게 주사위를 2개씩을 주어서 변동폭을 1에서 12로 오히려 늘려도 동전 출하량이 높아지는 방법이 있기 때문입니다. 그것은 바로 라인의 평준화를 의도적으로 깨뜨리는 방법입니다. 역시 동전 옮기기 게임으로 시뮬레이션을 해보겠습니다.

태현이에게만 주사위를 하나 주고, 나머지 다섯 사람에게는 주사위를 2개씩 주고 동전을 옮기게 해보겠습니다. 이렇게 함으로써 태현이는 라인의 '병목'이 됩니다. 다른 사람들은 최대 12개의 동전을 옮길 수 있지만 태현이는 기껏해야 6개를 옮길 수 있으니 말입니다.

아마 여러분은 병목과 같은 제약이 생기면 그만큼 출하량이 적으리라 생각할 겁니다. 하지만 다음의 시뮬레이션 결과를 보면 이런 예상도 여지없이 빗나가고 맙니다.


시뮬레이션할 때마다 출하량이 바뀌긴 하지만, 앞에서의 경우(평준화된 경우)보다 평균적으로 더 많은 동전을 출하하는 모습을 볼 수 있습니다. 태현이라는 제약을 일부러 설정하자 출하량이 줄어들기는커녕 오히려 높아지는 현상이 참 신기합니다. 믿기지 않으면 직접 해보기 바랍니다.

시뮬레이션하기 어려운 분들을 위해 Excel 파일을 올리니, 다운로드해서 확인하기 바랍니다.


하지만 여기서도 문제는 있습니다. 재공품이 굉장히 증가한다는 점입니다. 위의 그림을 보면 처음에 20개로 시작한 동전이 78개로 늘어나 사람들 앞에서 쌓여있습니다. 주사위가 하나 밖에 없는 태현이가 적은 동전 밖에 처리할 수 없어서 그 앞에 재공품들이 쌓이기 때문입니다. 재공품이 많다는 말은 하나의 제품을 출하시키기 위해 라인에 많은 자원을 투입해야 한다는 뜻입니다. 그리고 재공품에 그만큼의 돈이 묶이기 때문에 현금유동성을 악화시킨다는 의미이기도 합니다.

그렇다면, 재공품의 수를 줄일 수 있는 방법은 없을까요? 물론 있습니다. 하지만 글이 너무 길어지니 여기서 줄이고, 내일 이어가는 것이 좋겠군요.

이미 알아차린 분도 있겠지만, 오늘 설명한 내용은 엘리 골드랫이란 물리학자가 주장하는 '제약이론(Theory of Constraint, TOC)'의 한 부분입니다. 노는 기계 혹은 노는 인력 없이 프로세스를 구축해도 자체의 변동성 때문에 예상치 못한 '비효과'가 발생한다고 제약이론은 말합니다. 또한 시스템 상에 '태현'과 같은 제약을 의도적으로 설치하면 재공품은 쌓일지언정 출하되어 '돈으로 바꿀 수 있는' 최종제품의 수는 더 늘어난다는 점이 제약이론의 요점이기도 합니다.

제약이론에서는 출하되어 돈으로 바꿀 수 있는 제품(혹은 서비스)를 쓰루풋(throughput)이라는 말로 표현합니다. 생산의 목적은 라인을 평준화함으로써 개별 기계의 효율을 높이기 위한 것이 아니라, 쓰루풋을 극대화함으로써 돈을 버는 데에 있겠죠. 그래서 제약이론은 바로 쓰루풋을 높이기 위해 라인을 평준화한다는 생각을 버릴 것을 요구합니다. 오히려 제약을 인정하고 그것에 리듬을 맞추는 것이 좋은 해결책이라고 말합니다. 위의 게임이 단적으로 이를 증명하죠.

병에 목이 없으면 액체를 따를 때 흐름을 조절하기가 어렵습니다. 병목이 없으면 아주 세심하게 조절해야 액체를 따를 수 있죠. 병목(bottleneck)과 제약이 항상 나쁜 것만은 아닙니다. 효율보다 효과를 우선하려면 흐름을 조절하는 데에 제약을 이로울 수 있다는 점을 인식하기 바랍니다. 이 또한 중용의 마인드이니까요.

(*참고도서 : '더 골', '속도전쟁')
(*내일 나머지 내용을 이어가겠습니다)


inFuture 아이폰 앱 다운로드       inFuture 안드로이드 앱 다운로드

반응형

  
,