
12
초판을 쓰던
2017
년만 해도 진화적 소프트웨어 아키텍처는 다소 급진적인 개념이었다. 이 주
제로 강연을 이어가던 레베카는, 아키텍처의 진화라는 개념이 결국 전문성을 가장한 무책임
에 지나지 않는다는 비난을 듣기도 했다. 아키텍처가 불변의 존재라는 인식은 그 정도로 견고
했다.
그러나 현실은 과거의 인식으로부터 우리를 일깨운다. 사용자의 새로운 요구는 지속적으로 등
장하며 소프트웨어 개발 생태계는 끊임없이 발전한다. 시스템은 이러한 모든 변화를 받아들이
며 진화해야 한다.
초판이 발행되던 시점에 우리가 묘사한 기술을 실현한 도구는 거의 없었다. 다행히 소프트웨어
개발 세계는 진화적 아키텍처를 더 쉽게 구축할 수 있는 도구를 많이 탄생시켰으며, 계속해서
발전하고 있다.
책의 구성
개정판은 초판의 구조를 일부 변경했다. 진화적 소프트웨어 시스템의 엔지니어링 관행, 구
축 편의성을 높이는 구조적 접근이라는 두 가지 주제를 이전보다 명확하게 설명하기 위해
서다.
1
부는 진화적 아키텍처의 목표를 구현하는 데 활용할 다양한 메커니즘과 엔지니어링 사례를
정의한다. 또한 이 주제를 이해하는 데 필요한 각종 기술, 도구, 범주, 그 외 다양한 정보를 제
공한다.
구조 설계는 소프트웨어 아키텍처의 주요 분야이며, 설계에 따른 몇몇 결정은 진화와 거버넌스
의 효과를 한층