

모듈러 디자인은 일관성의 원칙과 일맥이 닿아있다. 즉, 이질적인 요소가 최소화된 단위 형태를 변형하지 않고 반복적으로 사용하는 것이다(Consistency & Integrity). 이것은 효율적인 작업을 가능하게 만들며 기대 이상의 디자인 성과를 거둘 수도 있다.
대형 시스템 개발을 맡았다고 가정해보자. 프로젝트 관리자(PM)는 가장 먼저 시스템을 하위 시스템으로 세분화한다. 이런 세분화 과정을 반복적으로 거치면 더 이상 쪼갤 수 없는 최소 단위 시스템을 확인할 수 있게 된다. 그런 다음 최소 단위 시스템을 어떻게 구조화(Structuring)시키고 연결(Connecting)할 것인지 설계 전략을 수립한다.
마찬가지로 인터페이스와 인터랙션 영역에서도 모듈러 디자인은 복잡성과 거대함을 극복하기 위한 효과적인 도구로 활용된다. 가령, 복잡하고 많은 정보로 구성되어 있는 인터페이스는 정보 구조를 확인하기 어렵고 (User-side) 수정이나 변형이 상대적으로 까다롭지만(System-side), 이러한 문제점은 모듈러 디자인을 채택하게 되면 손쉽게 해결할 수 있다.
정보 구조 측면과 달리 인터페이스와 인터랙션 측면에서의 모듈러 디자인은 시각적 상호작용이 수반되기 때문에 여러 가지 디자인 이슈가 있다. 그래서 설계 단계에서 모듈러 체계(Modular System)를 잘 디자인했더라도 구현 단계에서 이를 제대로 반영하지 못할 경우 모듈러 디자인은 실패하게 된다.
즉, 모듈 컴퍼넌트(Module Components)들이 나름의 독립성을 띄면서 전체적으로는 통일성을 확보해야 하는 어려운 과제를 디자인 이슈로 해결해야 하는 것이다.
그래서 설계자들은 모듈러 디자인을 추구하고 디자이너들은 추구하지 않는 경향이 일반적이다. 아마 설계자들은 레고 블록처럼 모듈을 단순히 분리, 조립 가능한 단위 요소로 간주하는 반면 디자이너들은 모듈화(Modularity)가 창조적 작업을 방해하며 모듈간의 상호작용(Interaction)을 수반하기 때문에 단순하게 생각하지 않고 있기 때문일 것이다.
여하튼 모듈러 디자인은 심플한 디자인을 제공한다는 점에서 사용성을 향상시킨다는 사실은 분명하다.

BBC 사이트의 그리드 시스템
이러한 모듈러 디자인은 형태적 동질감으로 인해 다소 내용이 복잡하고 많더라도 단순하게 인식되는 장점을 가진다. 그리고 아래 그림처럼 모듈러 디자인을 위한 그리드 체계(Grid System)를 도입하게 되면 디자인을 변형하게 되더라도 아이덴티티를 효과적으로 유지할 수 있다.

반복되는 모듈러 디자인
이러한 모듈러 디자인에서는 시각적 위계질서(Visual Hierarcy)를 어떻게 표현하느냐가 과제로 남는다. 대개 중요한 영역을 강조하기 위해 크기와 형태를 이용한 대비를 주로 사용하는데, 모듈러 디자인에선 모듈의 크기와 형태가 비슷할 수 있기 때문이다.
내용이 더 복잡하고 더 많은 인터페이스는 페이지에 대한 그리드 체계만으로 모듈러 디자인을 달성하기 어려우므로 모듈 컴퍼넌트에 대한 그리드 체계도 수립하여 가이드라인에 포함시키는 것이 좋다.
그런데 굳이 모듈 컴퍼넌트까지 설계할 필요성을 느끼지 못하고 있는 현실이다. 그러나 디자인은 디테일(Detail)과 디테일의 연결에 의해 완성된다는 사실을 생각해 보면 모듈 컴퍼넌트도 기본적으로 고려해야 할 설계 및 디자인 영역으로 설정하는 것이 바람직하다고 본다

모듈 컴퍼넌트를 위한 그리드 체계 (Source: Basic Visual Concepts and Principles)
모든 디자인에 모듈 시스템을 적용할 필요는 없다. 다만 적절하게 디자인에 적용시키면 불필요한 작업 소요를 줄일 수 있으므로 보다 창의적인 작업을 가능하게 하며 좋은 비례감을 통해 강한 질서와 단순명쾌한 조형적 감정을 유발시킬 수 있다는 점을 공감했으면 한다.
게다가 표준 인터페이스를 비교적 수월하게 적용시킬 수 있는 강점이 있으므로 한 번쯤은 시도해 볼 필요가 있다고 생각한다.
'알고리즘' 카테고리의 다른 글
C#에서 C API사용 (0) | 2006.09.12 |
---|---|
신재호의 SW 개발이야기]-아키텍처 중심의 개발(1) (0) | 2006.03.29 |
모듈러 디자인(Modular Design)-1부 (0) | 2006.03.27 |
닷넷 설계시 자바와 다른 가이드 #1 2005-09-07 11:54 (0) | 2005.09.07 |
유니코드에 대해 알아보자 (0) | 2005.09.01 |