37
1
장
진화적 소프트웨어 아키텍처
한다. 대부분은 성능이라는 명분을 내세운다. 그러나 아키텍트가 계층을 분리한 이유는 변경
사항을 격리하기 위해서다. 개발자의 요청은 이러한 계층을 우회하며 커플링을 늘리고 계층의
존재 의의를 무위로 돌리려는 시도나 다름없다.
한 번 정의한 아키텍처의 핵심 특성이 추후 저하되지 않도록
보호
하려면 아키텍트는 어떠한 조
치를 취해야 할까?
진화성
을 아키텍처 특성으로 추가한다는 것은 시스템이 진화하며 나머지 특
성을 보호한다는 의미다. 만일 아키텍트가 확장성에 중점을 두고 아키텍처를 설계했다면 시스
템이 진화하더라도 확장성이 저하되는 것을 원치 않을 것이다. 이렇듯
진화성
은 다른 모든 아
키텍처 특성을 보호하는 메타적 성격을 띤 아키텍처 래퍼
wrapper
다.
진화적 아키텍처의 메커니즘은 아키텍처 거버넌스의 목표 및 관심사와 많은 부분에서 중첩된
다. 아키텍처 거버넌스는 설계, 품질, 보안 등의 요소로 정의한다. 이 책은 진화적 아키텍처의
관점에서 아키텍처 거버넌스를 자동화하는 다양한 기법을 설명한다.
1.5
왜 진화인가? 왜 진화인가?
진화적 아키텍처라는 명칭 자체에 궁금증을 갖는 이가 많다. 다른 이름도 아니고 꼭
진화적 아
키텍처
evolutionary
architecture
라고 부르는 이유는 무엇인가?
점진적
incremental
,
지속적
continual
,
애자
일
agile
,
반응형
reactive
,
창발적
emergent
등의 여러 후보가 있지만 이들은 모두 핵심에서 비켜나 있
다. 이 책이 설명하는 ...