"안녕하세요, 아미고! OOP의 목적을 이해해 주셨으면 합니다. 그래서 이야기를 들려드리겠습니다."
옛날에 우주로 상품을 배송하는 작은 회사가 있었는데…
"갤럭틱 러시처럼?"
"네, 갤럭틱 러쉬처럼요. 5명이 거기서 일했어요. 첫 번째는 재무, 두 번째는 창고, 세 번째는 배송, 네 번째는 광고 담당, 다섯 번째는 모든 것을 감독했습니다."
그들은 열심히 일하고 번성했습니다. 그 회사는 좋은 평판을 얻었고 많은 돈을 벌었습니다. 해마다 주문량이 늘어나 CEO는 더 많은 직원을 고용해야 했다. 몇 명은 창고, 몇 명은 배송, 또 한 명은 출납원, 마케팅 담당자는 판매를 늘립니다.
이것은 문제가 시작된 때입니다. 더 많은 인원이 있었고 , 그들은 서로 간섭하기 시작했습니다 .
마케팅 담당자는 긴급하게 배송해야 하는 상품을 구매할 수 있는 현금을 손에 남기지 않고 새로운 광고 캠페인에 모든 돈을 썼습니다 .
창고에는 한 달에 한 번 배송되는 새로운 하이퍼 드라이브가 들어 있는 10개의 상자가 있었습니다. 택배기사 한 명이 하이퍼드라이브 한 개를 들고 날아가서 다른 클라이언트의 하이퍼드라이브 10개 주문이 한 달 더 지연되었습니다. 첫 번째 배달원은 두 번째 배달원이 처리 중인 다른 주문에 대해 알지 못했습니다.
신임 부회장은 물건을 사기 위해 배에 택배를 보냈고 나머지는 다음 배를 기다렸다. 급한 배송이 많았는데 이 비서님은 구매만 관리하고 자기 일을 잘 하려고 노력하고 계셨어요. 한 사람이 자신의 의무를 더 잘 수행할수록 나머지 사람들을 더 많이 방해했습니다 .
CEO는 상황을 분석하면서 배, 현금, 상품과 같은 중요한 자원이 최적으로 사용되는 것이 아니라 "선착순"으로 사용되고 있음을 깨달았습니다. 누구나 자신의 작업을 수행하기 위해 리소스를 가져갈 수 있으며 나머지 직원과 회사의 생산성을 위협할 수 있습니다.
뭔가 조치를 취해야 했습니다. CEO는 모놀리식 회사를 여러 부서로 나누기로 결정했습니다. 그는 운송 부서, 마케팅 부서, 구매 부서, 재무 부서 및 창고 부서를 만들었습니다. 이제 아무도 그냥 배를 탈 수 없습니다. 해운부장은 모든 해운 정보를 받아 회사에 가장 이익이 될 수 있는 택배사에게 선박을 인도했다. 게다가 물류창고는 택배기사들이 물건을 그냥 가져가도록 내버려두지 않았다. 그들은 그 과정을 통제했습니다. 재무 부서는 곧 구매가 있을 것이라는 것을 안다면 마케팅 비용을 할당할 수 없습니다. 각 부서에는 부서장이라는 한 명의 공인이 있었습니다. 각 부서의 내부 구조는 자체 관심사였습니다.택배기사가 물건을 가져가려고 하면 창고가 아니라 창고관리인에게 갑니다. 새로운 주문이 들어오면 택배( 개인 )가 아닌 배송부장( 공인 ) 에게 갔다 .
즉, CEO는 자원과 조치를 부서로 그룹화 하고 다른 사람이 내부 부서 구조에 간섭하는 것을 금지했습니다. 특정인만 연락이 가능했습니다.
OOP의 관점에서 이것은 프로그램을 객체로 분할하는 것 외에는 아무것도 아닙니다 . 함수와 변수로 구성된 모놀리식 프로그램은 객체로 구성된 프로그램으로 변환됩니다. 그리고 이러한 개체에는 변수와 함수가 포함되어 있습니다.
"잠깐만요. 그러면 모든 직원이 리소스에 무제한으로 액세스할 수 있고 다른 직원에게 명령을 내릴 수 있다는 것이 문제라는 말씀이신가요?"
"네, 맞습니다."
"흥미롭군요. 우리는 약간의 제한을 도입했지만 더 많은 주문을 받았습니다. 그리고 그들은 모든 것을 더 잘 통제할 수 있었습니다."
"예. 가장 순수한 형태로 분할 정복하십시오."
"네가 말한 대로 분할 정복하라. 기억해야 할 사항이다."
GO TO FULL VERSION