모듈 구조 정의와 모듈화 설계 간의 관계
그게 그거 아니야?
모듈러 디자인 컨설팅을 하다 보면, 모듈 구조 정의만 하면 모든 것이 끝난다고 생각하는 고객과 모듈화 설계는 동의하지만 굳이 모듈 구조 정의를 할 필요가 없다고 생각하는 고객을 만나게 됩니다.
이전에 모듈화 설계는 협의의 모듈러 디자인이고, 광의의 모듈러 디자인은 모듈 구조 정의와 모듈러 디자인 운영관리로 구성이 되어있다고 언급한 적이 있습니다. 그렇다면 모듈화 설계와 광의의 모듈러 디자인, 그중에서도 모듈 구조 정의와는 무슨 관계가 있는 걸까요?
먼저 모듈 구조 정의에 대해서 다시 정의를 명확히 하겠습니다.
모듈 구조 정의는 모듈화, 모듈 기반의 제품 아키텍처 정의, 모듈 기반의 제품군 아키텍처 정의 등으로 말을 바꿔 쓸 수 있지만, 주목해야 하는 건 정의입니다. 무엇을 정의하겠다는 것이냐, 이미 만들어둔 제품을 바꾼다는 것이냐 생각할 수 있겠지만, 엄밀히 따지면 재정의, 리스트럭처링, 재구조화 등으로 표현할 수 있습니다.
기존에 명목 상으로 구분을 해놓았던 것을 명확히 경계선을 그어두는 겁니다.
이전까지는 하나의 땅덩어리로 경계 없이 지내다가 선을 그어두는 거죠. 이제 여기를 국경으로 정한다고 함부로 넘어 다니면 안 된다고 말이죠.
먼저 선을 그어두고, 모듈 상호 간의 변경에 대한 규칙을 정합니다. 그것을 표준 인터페이스라고 부릅니다.
모듈 구조 정의는 경계를 두었으니, 그 경계에 맞게 운영하고 관리하라는 의미를 내포하고 있습니다.
즉, 모듈 구조 정의의 경계는 결국 지켜야 효과를 볼 수 있습니다.
모듈화 설계는 무엇일까요?
명목상이든, 경험적이든 나누어진 덩어리가 서로 영향을 주지 않도록 제품을 만드는 과정을 의미합니다. 앞서 이미 설계된 결과물을 재정의, 재구조화한 것이라면 모듈화 설계는 정의를 하고 그것을 기초로 결과물까지 만드는 과정입니다.
둘 중 무엇을 먼저 해야 할까요?
당연히 모듈 구조 정의부터 하는 게 이상적입니다. 그렇지 못하다면 먼저 모듈화 설계를 하고 모듈 구조 정의로 재구조화를 한 후에 모듈화 설계로 보완하는 작업이 현실적입니다.
둘 중 하나를 선택하는 것이 아니라,
모듈 구조 정의가 없는 모듈화 설계는 유지되기가 어렵습니다. 명확히 모듈로 나눠놓지 않은 결과물을 이후에 설계 변경 시에 준수한다는 보장도 없으며, 설계만 기준을 잡아두었다고 해도 이후 운영 부서에서 그것을 준수하지 않으면 모듈화 설계의 효과를 얻기가 어려워집니다.
반대로, 모듈화 설계가 없는 모듈 구조 정의는 단순한 문서 작업이 될 수도 있습니다. 이상적으로 모듈 구조 정의를 하기 위해서는 설계에서 근본적으로 바꿔줘야 할 수도 있습니다. 현재는 하나의 덩어리로 얽히고설킨 두 개의 모듈을 정의했는데, 설계에서 단순 명료하게 정리해주면 두 개의 모듈 간의 인터페이스 관리도 쉬워지고, 운영하는 데 용이해지겠죠. 설계의 도움 없는 재구조화는 한계가 있습니다.
즉, 모듈 구조 정의에서 방향을 잡고, 기준을 정의했다면 모듈화 설계에서 그것을 가지고 최적화를 해줘야 합니다. 그래야 운영관리 시 문제없이 효과를 낼 수 있습니다.
결론적으로 모듈 구조 정의 없는 모듈화 설계는 유지되기 어렵고, 모듈화 설계 없는 모듈 구조 정의는 문서 작업만으로 끝날 수 있습니다.