나의 평점 : 5.0 / 5.0
아키텍처에 대해 배우고 싶어서 산 책인데 의외로 아키텍트에 대한 수확을 거두게 되었다. 이 책은 좋은 아키텍처에 대한 책이기도 하지만 아키텍트란 무엇인가에 대한 책이기도 하다. 예전에 소프트웨어 아키텍트에 대해 궁금해서 몇 권의 책을 사서 읽어 봤지만 아키텍트에 대해 명확한 정의를 내려주는 책은 없었다. 하지만 이 책에는 아키텍트가 하는 일들과 아키텍트로의 성장 과정이 들어 있었다. 심지어 기술 트렌드 변화에 따라 예전의 아키텍트와 요즘의 아키텍트가 다르게 아키텍처를 구성해야 한다는 가르침까지 포함되어 있다. 따라서 나는 이 책을 소프트웨어 개발자에서 소프트웨어 아키텍트로 성장해야 하는 사람들에게 강력히 추천할 생각이다.
먼저 아키텍트에 대해 간결하게 설명하는 문장 하나만 소개해 본다.
"무엇보다도 소프트웨어 아키텍트는 프로그래머이며, 앞으로도 계속 프로그래머로 남는다. 소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 절대로 속아 넘어가서는 안 된다. 소프트웨어 아키텍트는 코드와 동떨어져서는 안 된다. 소프트웨어 아키텍트는 최고의 프로그래머이며, 앞으로도 계속 프로그래밍 작업을 맡을 뿐만 아니라 동시에 나머지 팀원들이 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어 준다. 소프트웨어 아키텍트는 다른 프로그래머만큼 코드를 많이 작성하지 않을 수도 있지만, 프로그래밍 작업에는 지속적으로 참여한다. 프로그래밍 작업을 계속하는 이유는, 발생하는 문제를 경험해보지 않는다면 다른 프로그래머를 지원하는 작업을 제대로 수행할 수 없기 때문이다."
책 전체적으로 좋은 내용이 많이 있지만 아키텍트의 업무 범위를 어떻게 잡아야 하는지 고민이 많았던 나에게는 그야말로 정답을 알려주는 문장이었기에 이 책 내용 중 최고의 문장으로 선정해 봤다.
아키텍처에 대해서도 목적을 정의하는 것부터 아주 명료했다.
"아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이다. 좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하고, 또 쉽게 배포하게 해준다. 아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화하고, 프로그래머의 생산성은 최대화하는데 있다."
아키텍처를 구성하는 방법은 책 전체적으로 잘 설명되어 있는데 예전에 실리콘밸리에서 일하시다가 우리회사 CTO로 오셨던 분이 설명하셨던 내용과 크게 다르지 않았다. 그 분에게 배운 것은 "아키텍처란 컴포넌트와 인터페이스를 정의하는 것이다." 한마디였는데 이 책에서 이 한마디를 책 한권으로 설명하고 있으니 이 한마디가 얼마나 많은 뜻을 내포하고 있는지 알 수 있을 것이다. 저 말을 이해하고 실행할 수 있다면 여러분은 이미 소프트웨어 아키텍트가 된 것이다.
많은 분들이 이 책을 읽어 보기를 바라는 마음으로 더 이상의 설명은 생략하겠다.
(더 많은 사람들이 대한민국의 소프트웨어 아키텍트가 되기를 바라는 마음으로...)