31
1
장
진화적 소프트웨어 아키텍처
적 변화를 허용하는 아키텍처가 진화에 유리하다. 배포 관점에서 보는 점진적 변화는 비즈니스
기능의 모듈화 및 분리 수준과 아키텍처 매핑 방식에 관련된 사안이다. 예를 들면 다음과 같다.
PenultimateWidgets
라는 대형 위젯몰이 있다고 가정해보자. 이 업체는 마이크로서비스 아
키텍처와 최신 엔지니어링 기법으로 제작된 카탈로그 페이지를 운영하며, 사용자가 별점으로
위젯을 평가할 수 있는 기능을 제공한다. 별점 기능은
PenultimateWidgets
의 여러 서비스에
서 공유하며 고객 담당자, 배송 업체 등의 평가에 활용된다. 어느 날 별점 개발팀은 별점을 반
개 단위로 부여할 수 있는 신규 버전을 제작하고 기존 버전에 더해 추가로 릴리스했다. 작지만
매우 핵심적인 업그레이드다. 카탈로그 이외 모든 서비스가 당장 신버전으로 전환하도록 강요
할 필요는 없다. 나머지 서비스들은 각각의 편의에 따라 점진적으로 별점 기능을 마이그레이션
할 것이다.
PenultimateWidgets
는 데브옵스 관행에 따라 서비스뿐만 아니라 서비스 간 경로
를 관찰하는 아키텍처 모니터링 시스템도 갖추고 있다. 운영 부서는 일정 시간 동안 라우팅 내
역이 없는 서비스를 식별할 수 있으며, 이러한 서비스를 전체 생태계에서 자동으로 들어낼 것
이다.
이러한 예시는 아키텍처 수준에서 발생하는 점진적 변화를 나타낸다. 기존 서비스는 자신을 필
요로 하는 다른 서비스가 존재하는 한 신규 서비스와 함께 실행된다. 각 서비스를 담당하는 ...