hanbit-hands_on_hacking-01

이 리뷰는 한빛미디어 <나는 리뷰어다=""> 활동을 위해서 책을 제공받아 작성된 서평입니다.

어느 회사에서나 개발하기 전에 아키텍팅 작업을 진행하게 된다. 대부분의 개발자들이 별 생각없이 진행하는 layered “Arhitecture” 또한 아키텍처 패턴중 하나이다. 이 책에서는 이러한 아키텍처 스타일들을 설명하고 더 나아가 아키텍트가 해야하는 업무 등에 대해 쓰여져 있는 책이다.

아키텍처 관련된 책이라 실습을 위주로 진행하는 책이 아니라서 조금은 부담없이 읽을 수 있다. 하지만 아키텍팅 작업이 여러 기술과 패턴이 조합되어 있기 때문에 특정 디자인 패턴이나, 특정 기술(queue, topic)들에 대한 용어가 나오게 되는데 따로 설명이 들어가거나 하지는 않아서 이러한 부분들에 대한 이해가 없다면 조금 어려울 수도 있지 않을까 싶다. 그래도 대부분의 개발자라면 알고 있을만한 내용들이라 이러한 부분때문에 읽을 수 없을 것 같지는 않다.

책은 짧은 호흡으로 읽을 수 있도록 여러 챕터로 구성되어 있다. 초반에는 소프트웨어 아키텍처가 무엇인지, 그리고 아키텍트는 어떤 작업을 수행해야 하는지에 대해서 알려준다. 특히나 최신 트랜드에 맞게 아키텍트와 개발자간 일방향성이 아니라 상호 보완적인 관계를 중요하게 생각하는 점이 특징이다. 그러면서 아키텍트는 개발자와는 다르게 어떤 생각을 가져야 하는지에 대해서도 알려준다. 그 후에는 아키텍처 특성들을 설명해주면서 아키텍팅을 하기 위해서 알아야할 개념들에 대해서 설명해준다. “아키텍처 카타” 라는 개념과 이를 활용한 예시를 드는 것도 흥미로웠다.

두번째 챕터부터는 우리가 흔히 아키텍처라고 불리는 layered 아키텍처, 파이프라인 아키텍처, 마이크로 커널 아키텍처, 이벤트 기반 아키텍처 등에 대해서 설명해준다. 하지만 이 책의 특이한 점은 1장에서 설명한 개념을 가지고 각챕터의 마지막에 아키텍처 특성 등급을 설명해준다는 것이다. 퀀텀수, 배포성, 탄력성 등에 대해 별점을 매기고 장단점에 대해서 정리해준다. 예를 들어 이벤트 기반 아키텍처는 내고장성이나 확장성에는 뛰어나지만 테스트가 어렵고 단순하지 않고 복잡하다는 단점이 존재한다.

세번째 챕터에서는 이러한 두번째 챕터의 아키텍처 스타일을 바탕으로 아키텍처를 결정하고 리스크를 분석하고 팀을 운영하는 방안에 대해서 설명한다. 재밌는 점은 프레젠테이션이 들어가 있다는 점인데 다이어그램을 그리고 도식화하고 애니메이션을 삽입해서 이해하기 쉽게 만들어야 한다는 점을 꼽고 있다. 마지막에는 개발을 주로 하지 않게되는 아키텍트 특성상 커리어가 고민이 들게 될텐데 이러한 부분들에 대해서 어떻게 커리어패스를 유지하고 개발해야하는지 알려준다.

개인적으로는 회사에 개발자가 부족해 스스로 아키텍팅을 하고 개발을 해야 해서 관심이 많이 있던 분야 중 하나였다. 사실 대부분의 개발자들이 아키텍처를 공부한다기 보단 경험으로 이렇게 하면 괜찮은 것 같다, 혹은 컨퍼런스에서 그렇게 하더라 이정도로 넘어가게 될텐데 이렇게 한번쯤은 직접적으로 책을 읽고 공부해보는 것도 괜찮은 것 같다.

책 내용이 어렵고 기술적으로 복잡한 내용이 아니기 때문에 대부분의 개발자들이 읽을만한 책이여서 다들 한번쯤 읽어보면 좋을 것 같다.