개발자에서 아키텍트로 진화해 나아가길 바라는 나에게는 새로운 아키텍처 관련 도서가 출판된다는 소식은 매우 반가운 소식이다. 아키텍처와 관련된 도서는 대부분 구매하여 읽었고, 학습하였다. 이번 도서도 구매 준비 중이였는데, 마침 한빛리더스의 리뷰 활동 지원 도서로 리스트에 있어서 아무런 고민 없이 선택하였다.
양장본의 힘
처음 택배를 뜯었을 때 양장본의 그 딱딱한 촉감이 내 손바닥에 느껴졌을 때의 기분이 잊혀지질 않는다. 출판사에서 정말 준비를 많이 했구나. 보통 개발 서적은 양장본으로 출간하지 않는다. 소설과 같은 베스트셀러 도서들도 재출간, 이벤트 기념으로 양장본을 일부만 출간한다. 그 만큼 제작에 비용이 많이 들고 많은 사람들이 찾을 거라는 자신감이 없다면 하기 힘든 결정이다.
그런데 처음 출간되는 도서의 표지를 양장본으로 했다는 것 자체가, 출판사와 번역가, 출판 담당자 모두가 자신있다는 신념이 있다는 것이 아닐까 생각된다. 아무튼 나는 이 딱딱한 질감과 책이 주는 느낌이 너무나도 좋다. 일반 표지에서는 너무나 합격! (사실 표지 이미지도 너무 마음에 든다.)
리스크 주도??
개발을 하다보면 도메인 주도 개발(Domain Driven Development), 테스트 주도 개발(Test Driven Development) 등 다양한 주도 개발 방법론을 접할 수 있다. 하지만 리스크 주도 접근법이란 것 을 처음 들어본 나는 어떤 방식의 설계 기법일 지 너무나 궁금하였다.
처음 책을 읽기 전에 생각한 내용은 프로젝트의 리스크가 발생했을 때 마다 설계를 변경하는 것인가? 이러한 방법은 옳지 않다는 것을 많은 이 들이 알텐데, 리스크란 개발자들의 손안에서 관리할 수 있는 장난감과 같은 것이 아닌데 이러한 위험성을 어떻게 관리하려는 것인가? 등 많은 생각들이 스쳐지나갔다.
솔직히 말해서 조금 의외였다. 내가 알고있는 아키텍처 설계 기법과는 다르게 직면한 리스크에 따라 적정한 아키텍처 설계를 수행하는 방법을 가이드 한다는 게 이해가 쉽지 않았다. 책을 읽다보니 내가 생각한 리스크 관리와는 조금 달랐다. 처음 관리할 수 있고 예방 가능한 리스크에 대해서는 설계에 녹여 대비하도록 하고, 후에 애자일과 결합하여 발생하는 리스크에 대해서는 설계 안에 조금씩 적용시켜 나아가는 것이다.
솔직히 예상치 못한 리스크 발생을 대처할 수 있는 커다란 팁이 있을 것 같은 제목이라 궁금했는데, 그러한 내용을 이야기 하고자하는 것은 아니였다. 우리 팀에서 진행하는 설계, 개발방법과 유사한 방법이였다.
다이어그램, 이미지 등을 통한 상세한 설명
처음 아키텍쳐 공부를 하는 개발자들은 일단 다이어그램부터 익숙하지 않고, 세상에 이렇게 많은 다이어그램이 있었나 싶을 정도로 혼란스러워 한다. 각 다이어그램은 어떤 용도로 어떤 경우에 사용할 수 있는 것이고 어떤 정보를 포함할 수 있는가 등 매우 어려워 했다. (내 주변 지인들의 경험이다.)
이런 다이어그램을 표와 그림을 통해 상세하게 설명하고 넘어간다. 솔직히 한번 이해한다고 머리속에 영원히 기억되는 것은 아니라는 것을 모두가 안다. 하지만 처음 이해를 제대로 해둔다면 추후에 다시 찾아보았을 떄 이해도와 적용의 시간이 매우 빨라지는 것 또한 모두가 알 것 이다.
추천하는 것은 각 다이어그램의 특성과 사용 용도, 작성법 등은 꼭 한번은 제대로 정리하고 넘어갔으면 한다.
빠질 수 없는 아키텍처 설명
당연히 빠질 수 없는 내용이 아키텍처 설명이다. 매우 단순한 파이프 앤 필터 아키텍처부터 맵 리듀스 등 다양한 아키텍처를 설명한다.
이 도서의 아키텍처만으로 모든 아키텍처를 다 공부했다고 할 순 없다. 물론 이 책의 포함된 아키텍처도 다양하지만 매우 소수에 불과하다. 지금도 새로운 기술과 그 기술들이 접목되어 더욱 효율적이고 각 환경에 알맞은 아키텍처가 나타나고 있다. 특히 이 도서에 포함된 아키텍처로는 클라우드 환경의 복잡한 아키텍처를 이해하고 접목하는 것은 쉽지 않을 것이다.
하지만 그럼에도 기초적인 이러한 아키텍처들은 꼭 익혀둬야 한다. 하나의 아키텍처안에 다양한 아키텍처가 녹아들어 있다. 그런 큰 구조의 그림을 파악하고 이해하기 위해서는 단일 아키텍처로는 지금 사용하지 않지만 이 책에서 설명하고 있는 아키텍처에 대한 이해를 소홀히 하지 않았으면 좋겠다.
가장 추천하는 내용
흥미로우면서도 친근한 리스크 주도 모델을 이용하여 애자일 방법론에 접목하여 어떻게 리스크를 관리하고 설계를 발전시켜 나가는지 설명하는 내용들은 잘 정리해 놓고 실제로 팀에 적용해 보면 어떨까 하는 생각을 많이 하게 되었다. 실제로 유사한 부분도 많지만 일부 차이나는 갭을 메우고 조금 더 좋은 방향으로 프로젝트 진행 방향을 유도할 수 있지 않을까 하는 생각도 하게 되게 만드는 책이였다.
이 책이 너무 어려운 사람들은 한빛미디어에서 출간한 '개발자에서 아키텍트로' 라는 도서를 먼저 읽어보는 것도 추천한다. 처음 개발자에서 아키텍트를 꿈꾸는 사람들에게 어떤게 아키텍트인지 하나의 프로젝트를 진행해 나가면서 이해를 시켜 줄 것이다.
조금.. 아쉬운 점?
이 책에서 조금 아쉬운 점이라면 아키텍처 패턴에 관한 내용이다. 물론 아키텍트는 요구사항 분석 부터 도출, 설계, 최적 설계 등 다양한 단계를 고려해야 한다. 아키텍트는 아키텍처 패턴을 이용해 설계만 하는 사람이 아니라는 것은 안다. 하지만 그럼에도 불구하고 너무 최신 트렌드를 조금 반영하지 못한 고전적인 패턴들의 향연은 아쉬움이 남는다. 물론 고전적인 패턴이 지금까지 사용되는 이유는 있다. 하지만 앞에서도 말했듯이, 요즘 앱, 웹, 클라우드 등의 시스템에서 적용되는 아키텍트 패턴들과는 조금 거리가 있는 것도 사실이긴 하다. 다양한 패턴에 대해 조금 더 다뤘으면 좋지 않았을까 하는 아쉬움이 조금은 남는다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
'Book' 카테고리의 다른 글
[Book] 위로의 미술관 (0) | 2024.02.04 |
---|---|
[Book] GRIT (1) | 2024.01.28 |
[Review] 소프트웨어 아키텍처 The Hard Parts (분산 아키텍처를 위한 모던 트레이드오프 분석) (0) | 2022.11.02 |
[Review] 헤드퍼스트 디자인패턴 개정판 (0) | 2022.10.02 |
[Review] Joyce의 안드로이드 앱 프로그래밍 (0) | 2022.08.21 |