소프트웨어 아키텍처 The Basics 2판

by 색감여행자

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


20251221_194559.jpg


“왜 이 구조여야 하는가”를 끝까지 묻는 책

소프트웨어는 한 번 만들고 끝나는 결과물이 아니다.

끊김 없이 지속되어야 하고, 수많은 세부 로직과 외부 시스템, 사람과 조직의 관계 속에서 살아 움직이는 거대한 생태계에 가깝다. 그런 점에서 아키텍처는 단순한 설계도를 넘어선다. 코드의 구조이자 팀의 협업 방식이며, 비즈니스의 의사결정이 기술로 번역된 결과다.


"소프트웨어 아키텍처 The Basics 2판”은 이 복합적인 세계를 “정답”이 아닌 “사고 방식”으로 풀어내는 책이다. 이 책이 반복해서 강조하는 메시지는 분명하다.


소프트웨어 아키텍처의 모든 것은 트레이드오프다.



이 책에서 특히 인상 깊었던 부분은 트레이드오프에 대한 집요한 강조였다.

세상에는 이미 수많은 기술, 프레임워크, 언어, 아키텍처 스타일이 존재한다. 하지만 중요한 것은 무엇을 썼는가가 아니라 왜 그것을 선택했는가다.


솔직히 말하면, 경험이 거의 없는 상태에서 이 책을 읽었다면 다소 추상적으로 느껴졌을지도 모른다. 하지만 온프레미스 환경의 레거시 시스템, 모놀리식 아키텍처부터 클라우드 환경에서의 Well-Architected 설계까지 두루 경험한 입장에서 읽다 보니, 책 속 문장 하나하나가 실제 현장의 장면과 겹쳐 보였다.


“이건 맞다”, “이건 그래서 항상 문제였다”, “결국 여기로 돌아오게 된다” 이런 혼잣말을 하며 페이지를 넘기게 되는 책이다.


PART 01: 기초 – 아키텍처적 사고를 기르는 과정

초반부는 소프트웨어 아키텍처를 정의하는 데서 시작한다.
아키텍처와 설계의 차이, 그리고 단순한 기술 선택을 넘어선 아키텍처적 사고가 무엇인지를 설명한다. 특히 인상 깊었던 점은, 아키텍처를 기술의 문제가 아니라 비즈니스 동인과 제약 조건의 균형 문제로 다룬다는 것이다.


기술적 너비를 갖되, 모든 것을 깊게 알 필요는 없다.

“좋은 구조”보다 “지금 상황에서 덜 나쁜 구조”를 찾는다

아키텍트는 코딩에서 완전히 손을 떼는 존재가 아니다.


이런 이야기들은 실무에서 역할의 경계를 고민해본 사람이라면 누구나 공감할 만하다.


이후 모듈성(Chapter 3), 아키텍처 특성(Chapter 4~7)을 다루는 흐름은 특히 좋았다. 성능, 확장성, 가용성, 보안 같은 키워드들이 막연한 미덕이 아니라, 서로 충돌하는 특성임을 명확히 드러낸다. 모든 것을 동시에 만족시키는 아키텍처는 존재하지 않으며, 결국 우선순위를 정하고 포기할 것을 선택해야 한다는 점을 끊임없이 상기시킨다.


PART 02: 아키텍처 스타일 – 유행이 아닌 맥락의 문제

이 책의 분량 대부분을 차지하는 PART 02는 다양한 아키텍처 스타일을 다룬다. 계층형 아키텍처, 모듈형 모놀리스, 이벤트 주도, 서비스 기반, 마이크로서비스까지 익숙한 이름들이 대거 등장하지만, 이 책은 결코 “마이크로서비스가 답이다” 같은 식으로 흐르지 않는다.


각 장에서 공통적으로 다루는 구조가 인상적이다.

토폴로지, 데이터 구조, 클라우드 환경 고려 사항, 일반적인 위험, 거버넌스, 팀 토폴로지와의 관계


이를 통해 독자는 아키텍처가 코드 구조만의 문제가 아니라, 팀 구성과 운영 방식, 조직 문화까지 영향을 미친다는 사실을 자연스럽게 이해하게 된다. 특히 모놀리스 vs 분산 아키텍처를 다루는 부분에서는, 무조건적인 분산 전환이 얼마나 많은 복잡성을 가져오는지도 현실적으로 보여준다.


PART 03: 기법과 소프트 스킬 – 아키텍트는 혼자 일하지 않는다

개인적으로 가장 마음에 들었던 파트는 PART 03이다. 아키텍처 결정 기록(ADR), 위험 분석, 도식화 같은 실무 기법뿐 아니라 협업, 협상, 리더십을 아키텍트의 핵심 역량으로 다룬다는 점이 인상 깊었다.

아키텍트는 모든 걸 결정하는 사람이 아니라, 사람과 사람 사이에서 맥락을 조율하고, 기술과 비즈니스 사이를 번역하는 역할에 가깝다. 이 책은 그 사실을 숨기지 않는다.


“안다는 것은 설명할 수 있다는 것”

무언가를 진짜로 안다는 것은, 그것을 다른 사람에게 설명할 수 있을 때다. 소프트웨어 역시 하나의 function이나 특정 기술로만 존재하지 않는다. 이 책은 소프트웨어 아키텍처의 A부터 Z까지를 다루지만, 일부러 깊게 파고들지 않는다. 대신 큰 그림을 그리고, 사고의 지도를 제공한다.


실무에 바로 적용하기엔 다소 막막할 수도 있다. 하지만 이 책을 읽고 나면, 머릿속에 있던 아키텍처의 미니맵에서 안개가 조금씩 걷히는 느낌을 받게 된다. 그리고 다음 선택의 순간에서, “왜 이걸 선택했는가”를 이전보다 분명하게 설명할 수 있게 된다.


“소프트웨어 아키텍처 The Basics 2판”은 아키텍트가 되고 싶은 사람보다는, 이미 고민하고 있는 사람에게 더 잘 맞는 책이다. 정답을 주기보다는 질문을 던지고, 기술보다 맥락을 이야기하며, 유행보다 이유를 묻는다.


경험이 쌓일수록 다시 펼쳐보게 될 책.
그리고 “왜”를 잊지 않게 만들어주는 책이다.

매거진의 이전글0과 1사이, Binary Hacks Rebooted