jrcfore***
2023-03-26

소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서
신규 소프트웨어 아키텍처를 막 적용하려 하는, 혹은 시작하려 하는 개발 팀에게 추천드리는 도서입니다.
이번에 출간된 책은, fundamentals of software architecture에 이어 출간된 아키텍처 설계 관련 심화 도서라고 생각하면 될듯싶다.
이 책이 기존의 책과 다른 점은 기존의 책들은 신규 기능이나, 최신 기술을 열거하며 설명하는 것이 주목적이 있었다면, 이 책은 그런 기술들을 이용하여 실제 있을 법한 일을 예시로 들어가며 최신의 확장과 효율 그리고 응집과 의존을 제거한 훌륭한 소프트웨어 아키텍처를 설계하는 방법에 대해서 정리했다는 점이다.
무엇보다 이 책을 읽으며 상당히 와닿았다는 점은 회사에서 있을 법한 일을 "한빛 가이버 사가"라는 가상의 프로젝트를 통해 독자에게 친숙하게 다가가려 시도했다는 점이다. 또한 가상의 (실존할지도 모르지만?) 개발자들이 서로의 의견을 주고받으며 소통하는 과정이 꽤나 실무의 모습과 그 궤를 비슷이 하고 있었다.
특히, 실무에 투입되면 경험할 법한 이사진들과 개발자들 간의 생각 차이, 관점의 차이 등을 아주 잘 묘사했다는 점에서 박수를 보내고 싶다.
【책의 구성】 "소프트웨어 아키텍처 The hard parts"의 구성은?
이 책은 크게 두 개의 파트로 구성되어 있다.
1파트에서는 "따로 떼어놓기"라는 주제로 모놀리틱하게 설계된 서비스를 보다 확장 가능하며 응집도를 잘 갖춘 형태로 서비스 아키텍처를 기획하고 구성하며 나아가 피트니스 코드 등을 통해 자동화 검증하는 과정에 대한 지식을 제공한다.
2 파트에서는 "다시 합치기"라는 제주로 분산 데이터 액세스와 분산 워크플로 관리와 같은 보다 심화된 내용에 대해서 설계 및 검증하는 과정에 대해서 정리하고 있다.
본 리뷰는 1파트의 내용을 주로 하여 리뷰하였으며, 2파트의 내용은 직접 독자분들이 읽어보시길 권장한다. (참고로 내용이 상당히 좋다.)
【 소프트웨어 아키텍처 The hard parts 읽고 나서 】
이 책은 상당히 매력적인 책이다. 특히나 각 챕터 중간중간에 "한빛 가이버 사가"라는 가상의 프로젝트를 진행하며 가상의 개발자 그룹이 대화하는 부분이 있는데, 이 부분은 정말 실무에서나 겪을 법한 일을 그대로 옮겨두었다고 해도 과언이 아닐 정도로 묘사의 퀄리티가 상당히 좋았다.
또한 아키텍처를 설계해야 할 때. 가져야 할 철학과 배경지식, 나아가 유지 보수에서 필요한 비용 관점까지 깔끔히 정리해 줬다는 점에서 몹시 만족스러웠다.
이제는 시대가 많이 변해서 main function에 10만 줄씩 코드를 넣는? 스타일의 코딩과 단일 머신을 스케일 업하는 스타일의 서비스 개발을 지향하는 시대는 아니다.
그렇기에 컨테이너 기반의 scale-out을 할 줄 아는 능력과 이때 각 서비스를 이루는 컴포넌트를 적당한 응집도로 설계할 줄 아는 능력. 마지막으로 모든 컴포넌트들이 적당한 동적 커플링과 정적 커플링을 가질 수 있게 하는 아키텍처를 구성할 줄 아는 능력이 각광받는 시대라 평하고 싶다.
#본 도서는 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.