36
1부
역학
템을 설계해야 한다.
생태계가 예상치 못한 방식으로 끊임없이 변화한다면 또는 예측이 불가능하다면, 기존에 수립
하던 확정적 계획의
대안
은 무엇일까? 이제 엔터프라이즈 아키텍트와 개발자는 새로운 환경에
적응해야 한다. 전통적인 개발 환경에서 장기 계획을 수립했던 관행의 이면에는 소프트웨어 변
경 비용이 매우 높다고 여겼던 재정적인 동기가 있다. 그러나 현대의 엔지니어링 관행은 프로
세스 자동화와 데브옵스 기술의 발전을 통해 소프트웨어 변경 비용을 낮춤으로써 기존의 전제
를 무효로 만든다.
그동안 현명한 개발자들은 시스템 일부가 다른 부분보다 유독 수정하기 어렵다는 사실을 인지
하고 있었다.
소프트웨어 아키텍처
가 ‘나중에 변경하기 어려운 부분’으로 정의된 이유가 바로 여
기에 있다. 이러한 정의는 손쉽게
수정할 수 있는 것
들과 실제로 변경하기 어려운 부분을 구분
하는 편리한 수단이었다. 그러나 안타깝게도 이 정의는 아키텍처를 설계할 때 맹점으로 작용한
다. 변경이 어렵다는 가정 자체가 개발자의 자기실현적 예언이 되고 마는 것이다.
몇 년 전부터 일부 혁신적인 소프트웨어 아키텍트들은 ‘나중에 변경하기 어려운’ 문제를 재고하
기 시작했다. 아키텍처에 변경 가능성을
탑재
할 수 있을까?
손쉬운 변경
이 아키텍처의 기본 원
칙이 된다면 변경은 더 이상 어려운 문제가 아니다. 아키텍처에 진화성이 더해지는 순간, 완전
히 새로운 행동 양식이 등장하며 동적 균형을 다시금 무너뜨리게 된다.
생태계의 변화는 차치하고, 아키텍처 특성의 점진적 저하는 ...