imjihye***
2023-03-26

소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서
프로젝트에서 PM의 역할은 광범위한 범위에 걸쳐져 있다. 그중에서도 전체 시스템을 관망할 수 있는 아키텍트의 역할이 가장 크지 않을까 싶다. 어떻게 하면 좋은 아키텍트가 될 수 있을까 고민해보곤 했다. 시스템적인 차원에서 개발을 공부하는 것이 큰 도움이 될 것처럼 느껴지기도 했다. 주위에 조언을 구한 결과, 단순히 개발을 공부하는 것만이 답이 되지 않는다는 것을 쉽게 알 수 있었다. 그렇다면 어떻게 아키텍처를 공부할 수 있을까.
책 소프트웨어 아키텍처는 수십년 간의 아키텍트 경력이 있는 저자들이 모여 자신의 지식과 경험을 토대로 글을 썼다. 목차를 살펴보면 패턴별로 설명이 되어있음을 확인할 수 있다. The Hard Parts 이전의 조금 더 쉬운 버전의 책도 있어 너무 어렵진 않을까하고 우려스러웠다. 하지만 생각보다도 개념이 친절하게 설명되어 있고 예시와 그림을 사용하여 쉽게 이해할 수 있었다. 아주 뛰어난 아키텍트가 아니더라도 평소 SW 트렌드와 시스템 용어를 자주 접해보았던 이라면 흥미롭게 책을 읽을 수 있을 것이다.
하지만 피트니스 함수는 대부분 코드 형태입니다! 빌드된 프로젝트를 상대로 언제든지 검증할 수 있는, 아키텍처의 실행 가능한 명세를 구축함으로써 아키텍트는 시스템을 이해하고 그것이 잘 발전되고 있는지 지켜볼 수 있습니다. 이는 점점 늘어나는 프로젝트 코드의 흐름을 계속 따라가야 하는 아키텍트의 핵심 목표와 부합합니다.
40쪽, 소프트웨어 아키텍처.
요즘 대표적인 사상으로 꼽히는 MSA가 책의 주요한 근간을 자리하고 있다. 거의 모든 아키텍처가 MSA 기반이라 분산 시스템에 대해 많은 설명을 하고 있다. 아키텍처 퀀텀이란 높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링의 특성을 띤, 독립적으로 배포 가능한 아티팩트라고 한다. 양자 컴퓨팅으로만 익숙했던 단어인 Quantum을 아키텍트 트렌드를 상징하는 단어로 쓰인 다는 것 또한 깨닫게 되었다.
아키텍트는 장기적인 영향도가 있는 의사 결정을 할 때 그 기준 자체를 변경해야 할 새로운 기능이 최근에 등장하지 않았는지 계속 확인해야 합니다. 즉, 의미 있는 탐구를 하려면 비교 기준이 전체 포괄적이어야 합니다.
467쪽, 소프트웨어 아키텍처.
최적화된 아키텍처를 위한 아키텍트 간의 대화를 생생하게 풀어내기도 했다. 덕분에 현업들의 생각을 헤아려볼 수 있었고, 신선하기도 해서 기억에 오래 남을 것 같다. Kafka와 ESB, 커플링과 디커플링 등 다양한 주제에 대해 논한다. 흔히 MSA 기반이라면 잘개 쪼개는 것을 능사로 여기곤 한다. 하지만 무조건 쪼갰을 경우 오케스트레이션과 트랜잭션, 비동기성의 문제가 발생할 수 있다고 한다. 어떤 시스템에도 최적화가 될 수 있는 아키텍처는 없다는 것, 트레이드 오프 분석이 아키텍처의 가장 큰 부분이라는 것을 명심하는 것만으로도 충분한 교훈이라 생각한다. 나를 포함하여 아키텍트를 꿈꾸는 이들에게 이 책을 읽으며 실무를 미리 경험해볼 것을 추천하고 싶다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."