도서 리뷰 : 진화적 아키텍처

nofence 2023. 9. 24. 22:30

비즈니스 세계는 하루하루 변화한다. 이뿐만 아니라 고객의 요구 사항 역시 끊임없이 변경되며, 이러한 변화와 변경은 소프트웨어의 구조를 바꾸는 동인이 된다. 그런데 소프트웨어의 구조를 변화시키는 건 결코 쉽지 않은 일이다. 소프트웨어는 그 자체로서 복잡하고, 여러 구성 요소로 이뤄진 복합체이기 때문이다. 하나의 구성 요소가 변경되었을 때 그와 맞물린 다른 요소 역시 그에 따른 영향을 받을 수 있으며, 이는 곧 전체 시스템의 영향으로 파급되기도 한다. 

 

애자일로 대변되는 현재의 프로그래밍 패러다임 속에서, 소프트웨어는 끊임없이 변화하고 있다. 애자일을 지원하는 데브옵스 철학과 CI/CD라는 엔지니어링 프랙티스가 소프트웨의 점진적 변화를 주도하는 일등 공신으로 온전히 자리매김하고 있다. 그런데 이러한 기조가 소프트웨어 아키텍처에는 적용될 수 없을까? 아키텍처 역시 변화를 피할 수 없고, 반드시 변해야 한다면 바로 점진적 변경이 해답이 될 수 있다. '진화적 아키텍처'는 어떻게 하면 아키텍처의 변화를 유도하고, 그 변화를 안착시킬 수 있는가에 대한 논의를 심층적으로 다루는 책이다. 

 

본 서적에서 자주 접하게 되는 '피트니스 함수'라는 용어가 굉장히 낯설고 그 의미가 한번에 와닿지 않았지만, 입력과 출력을 통해 어떠한 값을 평가하는 함수의 본래 의미와 같이, 아키텍처의 특성을 평가하는 도구로 이해하고 나서야 그것의 중요성을 명료하게 인지할 수 있었다. 피트니스 함수를 통해 아키텍처의 컴포넌트와 제반 요소를 올바르게 평가하고, 아키텍처를 올바른 변화로 유도할 수 있을 때 비로소 아키텍처는 '진화'에 성큼 다가서게 된다.

 

진화적 아키텍처를 구현하기 위한 여러 담론이 책 전체를 관통하면서 끝내 머릿속에 남는 건 바로 '점진적 변화'였다. 애자일과 데브옵스 그리고 CI/CD가 지향하는 점진적 변화가 소프트웨어 아키텍처에도 적용되어, 궁극적으로는 아키텍처의 진화를 꾀하게 되고, 이는 곧 소프트웨어 전체의 가치 향상으로 이어지게 된다. 좋은 소프트웨어는 좋은 구조 위에서 꽃을 피우게 되고, 좋은 소프트웨어를 이용할 수 있는 고객은 행복해지게 되는 게 아닌가? 결국 진화적 아키텍처는 소프트웨어 생태계를 이루는, 모든 플레이어를 행복하게 만드는 공공선의 아키텍처다. 진화적 아키텍처를 뒷받침하는 여러 구성 요소와 이와 관련된 진지한 논의가 궁금한 이들에게 이 책에 대한 일독을 권한다. 

 

P.S 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.