쓸모 있는 모듈러 디자인
제품을 모듈화 하면서 그 결과가 제대로 된 것인지 확인하기 위해서
모듈화 체크리스트를 활용합니다.
제가 가지고 있는 체크리스트에는 모듈화가 제대로 되었을 때 얻는 바람직한 결과,
좋은 모듈이란 무엇인가에 대한 대답이 적혀 있습니다.
이번 글에서도 계속해서 모듈화 체크리스트 일부를 옮겨 보도록 하죠.
1. 좋은 모듈의 생명 주기는 제품과 타 모듈과 분리되어 있다.
2. 좋은 모듈은 타 모듈과의 경계가 명확히 나눠져 있다.
3. 좋은 모듈은 타 모듈과의 상호 관계, 상호 작용이 정해진 틀에서 이루어진다.
4. 좋은 모듈은 단독으로 설계, 생산, 구매, 품질 검증이 가능하다.
5. 좋은 모듈은 자신의 목적이 명확하며, 자신의 기능성을 완벽히 발휘한다.
6. 좋은 모듈은 동일한 기능을 발휘하는 모듈 대비 경쟁력이 우위에 있다.
7. 좋은 모듈은 조화롭게 제품 내에서 자신의 기능성을 완벽하게 수행한다.
8. 좋은 모듈은 다른 모듈과 명확히 다른 특성을 갖는다.
앞에서 좋은 모듈은 제품과 다른 모듈과 라이프사이클이 디커플링 되어야 한다고 했습니다.
그로 인해서 좋은 모듈은 다양한 모델에 공용화가 용이하거나, 세대 간에 재사용이 용이합니다.
다르게 말하면 공용화나 재사용이 용이하지 않은 모듈은 제품과 다른 모듈과 라이프사이클이 커플링이 되어 있음을 의미합니다.
공용화, 재사용이 잘된다는 것이 라이프사이클이 디커플링 된다는 것은 결과론적 이야기이고,
공용화, 재사용이 잘되기 위해서는 앞에서 말한 좋은 모듈의 조건을 만족해야 합니다.
먼저 모듈이 다른 모듈과 명확히 다른 특성을 갖아야 합니다. 그래야만 제품의 사양이 바뀔 때 변화하는 모듈의 범위가 최소화되고, 재사용하고 공용화되는 모듈의 범위가 최대화됩니다. 또한 모듈 간의 경계가 명확히 나눠져 있어야만 변화하는 모듈이 있어도 공용화하거나 재사용하려는 모듈은 유지할 수 있습니다.
즉, 공용화와 재사용이 용이하다는 건 좋은 모듈의 다른 조건을 만족하는 결과로 볼 수 있습니다.
제품이 모듈화가 된다는 건 모듈 간의 명확한 경계가 만들어진다는 것이고, 목적에 따라서 경계로 모듈을 독립시킬 수 있음을 의미합니다. 예를 들어서, 고장 잦거나 마모가 일어나는 제품 부위가 있다면, 만약 다른 제품에 밀착해서 결합해 있는 부분은 그것을 고치거나 교체하기 위해서 제품의 상당한 부분을 뜯어고쳐야 할지도 모릅니다. 아니면, 최악의 경우는 제품을 새롭게 교체해야 하는 경우도 있을 수 있겠죠.
좋은 모듈은 이러한 제품 변화 특성에 따라서 의도한다면 제품에서 분리하고, 새롭게 교체할 수 있어야 합니다. 앞서 유지보수나 교체에 대한 모듈의 특성뿐만 아니라, 기술의 발전에 따라서 모듈의 성능이 업그레이드할 경우는 제품의 상당 부분을 바꾸지 않더라도 해당 모듈을 바꾸는 것만으로 제품의 경쟁력을 높일 수 있을 겁니다.
좋은 모듈은 모듈 내부의 정보를 감추고, 정해진 규칙에 따라서 외부에 정보를 제공합니다.
모듈이 제품과 디커플링 하여 공용화, 재사용이 가능하기 위해서는 해당 모듈을 만들지 않은 곳에서 그것을 사용할 수 있어야 합니다.
그런데, 사용할 때마다 모듈을 리엔지니어링해서 정보를 알아내야만 사용할 수 있다면 그건 처음부터 만드는 것보다 못한 일일 겁니다. 당연히 모듈은 자신의 정보를 외부를 공개해선 안됩니다. 공개하더라도 그것을 바꾸는 것을 정해진 절차 대로 이루어지지 않는다면, 다양한 버전의 모듈이 난무하는 것을 겪을 수밖에 없을 겁니다. 모듈을 활용하는 데 필요한 최소한의 정보만 외부에 공개하고, 그것을 활용할 수 있도록 해야 합니다.
앞의 내용과 연결됩니다. 좋은 모듈은 해당 설계 자산을 분석, 분해할 필요 없이 공개된 정보만 가지고 재사용, 공용화가 가능해야 합니다. 보통 공개된 정보는 표준 인터페이스일 겁니다. 그것만 가지고 사용할 수 있는지 여부를 결정하고, 어떻게 사용해야 하는지, 어떻게 제품에 결합해야 하는지 등의 정보를 제공해야 합니다.
좋은 모듈이 공용화, 재사용해서 효율성을 높이는 데 기여를 하더라도 그 결과가 제품의 성능에 악영향을 미쳐서 제품의 가치를 떨어뜨린다면 좋은 모듈이라고 볼 수 없습니다. 좋은 모듈은 제품의 경쟁력을 최우선으로 지원하면서 재사용, 공용화로 효율성을 높일 수 있어야만 합니다.
이번 글까지 좋은 모듈의 조건에 대해서 살펴보았습니다.
약간 중복되는 내용이 있었지만, 그대로 남겨두었습니다. 중요한 내용이기 때문에 반복되는 것이라고 생각하시면 됩니다.
모듈화 활동을 하고, 제대로 모듈화가 되었는지 알고 싶다는 경우가 있습니다. 그런 상황에 있다면 위의 좋은 모듈의 조건을 한번 따져보는 것이 도움이 될 것으로 보입니다.
Image by Matthias Wewering from Pixabay