brunch

프롤로그

소프트웨어 모듈러 아키텍처에 주목하는 이유

by 심야서점

프롤로그


오늘날 제품과 서비스는 단일 기술이나 하나의 시스템만으로 완성되지 않는다. 기계, 전자, 통신, 소프트웨어가 유기적으로 통합된 복합 시스템 속에서 소프트웨어는 더 이상 보조적인 역할이 아니다. 제품의 경쟁력은 소프트웨어에 의해 결정되며, 설계의 유연성 또한 소프트웨어 아키텍처에 크게 좌우된다.


이 책은 하드웨어 중심의 모듈러 디자인을 넘어, ‘소프트웨어 모듈러 아키텍처’라는 새로운 영역을 본격적으로 탐색한다. 이 주제를 꺼내면 대개 두 가지 반응이 따른다. 하나는 “이미 그렇게 개발하고 있어서 새로울 게 없다”는 반응이고, 다른 하나는 “소프트웨어는 본질적으로 모듈화가 어렵다”는 반응이다.


그러나 현실은 이와 다르다.


첫 번째 반응에 대해 말하자면, 소프트웨어 개발은 그동안 규모가 커지는 과정에서 복잡성 역시 함께 증가해왔고, 이를 관리하기 위해 자연스럽게 모듈화를 적용해왔다. 모듈화는 소프트웨어 설계의 핵심 원칙 중 하나로 자리잡았지만, 복합 시스템 관점에서 소프트웨어가 어떻게 개발되고 관리되는지에 대해서는 충분한 논의가 이루어지지 않았다.


두 번째 반응에 대해서는, 소프트웨어가 시스템 전체의 효율성과 직결되는 상황에서 여전히 “모듈화가 어렵다”고만 말할 수는 없다. 지금은 오히려 소프트웨어 중심의 아키텍처 전환이 요구되는 시점이다. 따라서 이제는 소프트웨어 관점에서 모듈러 아키텍처를 체계적으로 검토해야 한다.


이 책은 ‘모듈러 씽킹(Modular Thinking)’이라는 사고방식에서 출발한다. 모듈화를 적용하는 것과 모듈러 아키텍처를 설계하는 것은 비슷해 보이지만 전혀 다른 이야기다. 이미 여러 분야에서 활용되고 있는 모듈러 씽킹 개념을 먼저 살펴보며, 소프트웨어에 어떻게 적용할 수 있을지 방향을 찾아간다. 즉, 이 책은 모듈화를 하나의 사고방식으로 받아들이는 관점에서 시작해, 소프트웨어 설계의 전략적 방향성을 제시하고자 한다.


그런 의미에서 이 책은 소프트웨어 개발자만을 위한 책은 아니다. 소프트웨어를 이해해야 하는 사람 모두에게 도움이 될 수 있도록 구성했다. 전체 시스템을 이해하는 개발자, 소프트웨어를 이해하는 시스템 관리자에게도 도움이 되기를 바란다. 이 책이 그런 변화에 작게나마 기여할 수 있다면 그것만으로도 의미가 있다.


keyword