책소개
소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서
『소프트웨어 아키텍처 101』의 실무편에 해당하는 후속작이다. 『소프트웨어 아키텍처 101』을 읽은 독자라면 누구나 관심을 가질만하다. 그 만큼 『소프트웨어 아키텍처 101』 에서 많은 것을 얻은 독자일 것이다.
이 도서는 아키텍트가 객관적으로 트레이드오프를 분석해서 올바른 의사 결정을 내릴 수 있는지 이야기한다. 고객의 요구사항을 분석하고 해당 요구사항을 만족하기 위해 FR, NFR에 대해 정리를 하고 해당 요구사항을 만족하기 위해 설계를 해 나아간다. 이 때 어떤 선택이 어떠한 아키텍처로 발전해 나아가는지 경험할 수 있다.
전작이 소프트웨어 아키텍처의 중심 철학과 다양한 아키텍처의 세계를 빠르게 훑어보는 개론서였다면, 『소프트웨어 아키텍처 The Hard Parts』는 제목에 걸맞게 실무 아키텍처링을 할 때 가장 난해한, 그러나 한번 결정되면 바꾸기 어렵고 근본적인 영향을 미치는 부분(hard part)을 진지하게 살펴본다.
다양한 패턴과 사례, 그리고 연습
이 도서에는 현업에서 접할 수 있는 다양한 패턴을 설명하고 현업에서 마주칠 수 있는 사례와 접목하여 상세하게 설명하고 있다.
가장 좋은 던 것은 트레이드 오프를 분석하고 최적 설계를 찾아 나아가는 과정을 간접적으로나마 경험할 수 있다는 것이다. 개발자가 이러한 과정에 참여하는 것은 쉽지 않고, 기회도 잘 주어지지 않는다.
이 책을 통해 아키텍트는 어떤 과정을 거쳐 아키텍처를 완성해 나아가는지 이해하고 학습할 수 있다. 간혹 개발자들은 데이트베이스는 자신이 익숙하던 것을 그대로 다음 프로젝트로 가져가거나 또는 아키텍처 설계 단계에서 이미 데이터베이스를 결정해 둔 상황일 때도 있다.
물론 친숙한 것이 좋지만, 친숙한 것이 프로젝트의 성공의 길이 될 수 는 없다. 그렇기에 왜 데이터베이스 중 어떤 데이터베이스를 어떤 과정을 거쳐 고민하고 선택하게 되는지 등 다양한 아키텍처 트레이드 오프 분석 과정을 경험해보는 것을 추천한다.
친숙한 대화형 설명, 양날의 검(?)
기술서적에서 이해를 돕기 위해 어떠한 문제를 서술하고 해결해 나아가는 방법을 대화형으로 간혹 사용하곤 한다. 실제 상황에 몰입하면 조금 더 상황 이해에 도움이 되기 때문이라고 생각한다. 이 도서는 친숙한 대화형으로 이루어져 있다. 대화형으로 구성된 대표적인 도서로는 헤드퍼스트 디자인패턴 을 떠올릴 수도 있다. 하지만 이 책은 조금 결이 다르다.
이 도서는 실제 등장인물의 대화가 소설책(?) 또는 영화 대사(?) 처럼 각 등장인물의 대화가 상세하게 작성되어 있다. 질의응답식 보다 더욱 넓게 등장인물의 짜증과 갈등, 개발자 간의 대화와 의견의 조율이 소설처럼 대화로 이루어져 있다.
이러한 방식의 도서는 처음 마주해서 조금 당황스럽긴 하지만, 누군가에게는 많은 도움이 될 수도 있을거라 생각한다. (나는 아니었다. 솔직히 더욱 산만하였다.) 문제를 제시하고, 문제가 발생한 배경과 솔루션을 찾아나아가는 점을 스토리로 풀어내는 것 보단 간결하게 요점만 작성해도 좋을 것 같다는 생각을 계속 하게 되었다.
누군가에겐 더 큰 이해를, 누군가에겐 더 큰 혼란스러움을 주지 않을까?
결론
『소프트웨어 아키텍처 101』을 읽지 않았다면, 먼저 『소프트웨어 아키텍처 101』을 읽고 이 도서를 읽었으면 한다. 왜 출판사에서 『소프트웨어 아키텍처 101』의 실무서라고 추천을 하는지를 곱씹어보고 도서의 순서에 맞게 학습을 하면 쉽게 접근 및 이해를 할 수 있다고 생각한다.
이 책은 아키텍트란 트레이드 오프를 비교 분석하고 옳은 선택을 해나아가는 존재라는 것을 조금 더 명확하게 명시하는 것 같다. 아키텍트를 목표로 하는 분들에게, 그리고 분산 아키텍처 기반에서 개발을 하는 개발자들에게 좋은 나침반이 될 것이라 생각한다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Book' 카테고리의 다른 글
[Book] GRIT (1) | 2024.01.28 |
---|---|
[Review] 적정 소프트웨어 아키텍처 : 리스크 주도 접근법 (0) | 2022.11.27 |
[Review] 헤드퍼스트 디자인패턴 개정판 (0) | 2022.10.02 |
[Review] Joyce의 안드로이드 앱 프로그래밍 (0) | 2022.08.21 |
[Review] 오준석의 안드로이드 생존코딩 - 코틀린 편(2판) (0) | 2022.07.22 |