Posts [책리뷰] 소프트웨어 아키텍처 101
Post
Cancel

[책리뷰] 소프트웨어 아키텍처 101

아키텍트는 누구인가?

“소프트웨어 아키텍처 101” 이 책을 선택하고 책장을 펼치기 전까지도 사실 “아키텍트”에 대해서는 관심이 없었다. “소프트웨어 아키텍처”라는 주제에 관심을 두면서도, 아키텍처를 결정하는 사람이라고 할 수 있는 “아키텍트”에 대해서는 관심이 없었다는게 지금와서 생각해보면 좀 이상한 것도 같다. 그러고 나서 또 가만히 생각해보면 내 주위에 자신을 아키텍트라고 말하는 사람도 없었던 것은 사실이다.

내가 기대했던 책의 내용은 소프트웨어 아키텍처에 대한 소개와 구현에 대한 내용이라고 짐작하고 있었다. 그런데 이 책은 아키텍처를 결정해야하는 “중요한” 역할의 아키텍트에 대해 먼저 이야기를 풀어나간다. 단순히 아키텍처의 특징은 무엇이고 장단점은 무엇이다를 설명하는게 아니라, 아키텍트의 입장에서 아키텍처를 결정하기 위해 어떤 것들에 집중해야하는지를 시작으로 이야기를 풀어나간다.

앞서 얘기했지만, 적지않은 개발경력에도 (물론 큰물에서 아직 놀아보지 못해봐서 그럴 수도 있지만) 아직 명함에 “아키텍트” 라고 써있거나, 스스로를 아키텍트라고 소개하는 사람을 만나보지 못했다. 그렇다면 내가 지금까지 진행했던 프로젝트들의 아키텍처는 “누가” 결정한 것일까? 대부분이 아시겠지만, 보통은 경험이 많은 시니어 개발자가 보통은 결정할 것이다. 그리고 더 아이러니는 프로젝트를 여럿 진행하면서도 우리 프로젝트의 아키텍처는 “이것”으로 결정했다 거나 하는 얘기도 들어보진 못했다. 그만큼 주먹구구식의 프로젝트 였을 수도 있고, 암묵적인 표준이라고 할만한 아키텍처를 컨벤션처럼 받아들이고 있었는지도 모른다. 아마 이것이 이책에서도 소개하는 모놀리식한 레이어드 아키텍처 스타일 이었는지도 모르겠다. 이런만큼 이 책은 내게 특별하게 다가왔다.

이 책은 크게 세 파트로 나눠져있다. 첫 파트인 ‘기초’에서는 아키텍처의 특성에 대해 상세하게 다룬다. 사실 이 부분에서 그리 쉽게 읽히지만은 않았다. 오히리 두번째 파트의 아키텍처 스타일에 대한 내용은 조금 더 구체적이고 기술적인 내용이라 더 쉽게 읽혔던 것 같다. 그 이유는 아마도 생소한 단어들 때문이 아닌가 싶다. 생소하지 않더라도 명확한 의미보다는 뭔가 조금 추상적이고 개념적인 뜻으로 다가오는 단어들이 중간 중간 끼어있다보니 한번에 술술 읽히기 보다는 컴퓨터가 옆에 있으면 검색을 한번 해본다거나 하는 인터럽트가 발생하는 경우가 좀 있었다. 그렇다고 너무 어렵다거나 이해를 전혀 못할만한 내용은 아니니 겁을 먹을 필요까진 없을 것 같다.

두번째 파트에서는 개인적으로 가장 궁금했던 각 아키텍처 스타일들에 대해 설명하고 있다. 물론 다른 책들을 통해서 이해하고 있던 내용도 있었지만, 처음 들어보거나 이걸 이렇게 따로 분류를 하기도 하는구나 싶은 내용도 있었다. 그리고 결국 요즘 핫한 ‘마이크로서비스’ 역시도 아무것도 없는 상황에서 마법처럼 등장한게 아니라는 것이었다. 그리고 이 모든것의 핵심은 “트레이드 오프” 라는 것. 절대적인 해결책이 있는 것이 아닌 각 프로젝트의 요구사항에 따라 결정을 해야한다는 것이다. 그래서 각 스타일별로 특징과 장단점 등을 설명하고 “아키텍처 특성 등급표” 라는 것을 보여준다. 단순히 어떤 아키텍처 스타일이 더 좋고 나쁜게 아니라 앞에서 설명한 아키텍처 특성들 별로 별점을 통해 평가를 하고 있다. 예를 들어 “확장성”은 별5개 만점이지만 “단순성”은 별1개라거나… 또한 각 스타일별로 그림을 통해서 아키텍처의 구성도를 상세하게 보여주고 있어서 이해도를 높이는데 도움이 되었다.

그리고 마지막 파트인 “테크닉과 소프트 스킬”에서는 아키텍처와 관련있는 다양한 주제들을 다루고 있다. “도식화 및 프레젠테이션” 에서는 아키텍트로서 필요한 소프트 스킬이라고 할수 있는 아키텍처를 어떻게 도식화하고 프리젠테이션을 준비하면 좋은지를 설명하고, “협상과 리더십 스킬” 챕터를 통해 바람직한 리더가 될 수 있는 팁들을 담고있다. 마지막은 “커리어패스 개발” 이라는 주제로 아키텍트가 되기 위해 어떤 노력을 하면 좋은지에 대한 노하우를 제시한다. 책 전반적으로 이런 깨알같은 팁들이 등장하는데, 개인적으로 이런 내용들에 포스트잇을 더 많이 붙이게 되는 것 같았다.

아키텍트, 아키텍처라는 단어에 거부감을 가지거나 어려움을 가지는 사람들이 많다고 본다. 관련해서 등장하는 용어들도 딱딱한 것 같고. 그래서 이런 얘기를 주제로 토론을 하기가 쉽지 않은 것 같다. 이럴 때 구성원들이 이런 책을 통해 이해도를 높인다면, 현재 진행중이거나 앞으로의 프로젝트 개발에 많은 도움이 되리라 생각한다.

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

This post is licensed under CC BY 4.0 by the author.

[책리뷰] SQL Cookbook

[책리뷰] 유연한 소프트웨어를 만드는 설계원칙

Comments powered by Disqus.