lhjg***
2023-09-25

새로운 시대, 애자일을 넘어선 진화적 소프트웨어 개발의 부상. 소프트웨어 개발 생태계에 혁신을 가져올 진화적 아키텍처
“소프트웨어는 변화해야 하는가?” 저는 이 질문이 진화적 아키텍처를 잘 이해하기 위한 좋은 질문이라고 생각합니다. 컴퓨터 공학에서는 폭포수 개발모델에서 시작하여 비교적 최근의 애자일 방법론으로까지 변화하고 있고 애자일 또한 세부적인 사항이 변화하고 있습니다. 이 책의 후반부에 언급하는 테스트 주도 개발 (TDD) 등도 이러한 변화 과정을 나타내는 방법론이라고 할 수 있습니다.
여러 사람이 함께하는 소프트웨어 프로젝트는 분명 달성하기 위한 목적과 목표가 있을 것 입니다. 예를 들면 자사의 제품을 온라인에서도 팔기 위한 쇼핑몰 사이트가 될 수도 있겠습니다. 이 때, 쇼핑몰이라는 큰 틀은 변하지 않는다 하더라도 세부적인 사항들은 언제나 변할 수 있습니다. 만약 소규모 개발이 아닌 대규모 프로젝트를 진행한다면 서로 역할을 나눠 마이크로서비스로 각자의 역할은 분리하되 규약을 세워 API 등을 통해 공동의 문제를 해결해 나갈 것 입니다. 이러한 규모라면 우리는 언제나 레거시를 고려하며 앞으로 전진해야 합니다. “소프트웨어는 변화해야 하는가?” 이 질문을 다시 생각해보자면 변화할 수 밖에 없다고 생각합니다. 이 책의 진화적 아키텍처는 그러한 과정을 저자들이 어떤 관점을 갖고 있고 어떻게 해결해 나가는지에 대해 PenultimateWidgets의 사례를 기반으로 설명하고 있습니다 (이는 물론 가상의 사례일 것이라 생각합니다).
이 책을 처음 읽었을 땐 어휘가 익숙하지 않아 눈에 익는데 조금 시간이 걸렸습니다. 제가 알고 있던 용어와 연결하는데 시간이 좀 걸린 것이고 이것이 익숙해지니 변화하는 소프트웨어 개발을 이렇게 볼 수도 있다는 관점을 엿볼 수 있었습니다. 레거시화 된 코드를 보며 어떻게 하면 좀 더 안전하게 그리고 적절한 비용으로 개선할 수 있는지 고민이 있으셨던 분들이 읽어보시면 생각을 정리하는데 도움이 될 수 있을 것이라 생각합니다.
전체 리뷰는 아래 링크에서 확인하실 수 있습니다.
https://altari.io/2023/09/24/Building_Evolutionary_Architectures.html