[IT] 소프트웨어 아키텍처 The Hard Parts

2023. 3. 22. 16:19 | Posted by 꿈꾸는코난

< 소프트웨어 아키텍처 The Hard Parts > | 닐 포드 외 3인 지음  | 이일웅 옮김 | 한빛미디어

 

이 책은 분산 아키텍처를 구축할 때 아키텍트가 트레이드오프를 객관적으로 분석하여 의사 결정을 내리기까지의 전 과정을 상세히 설명한다. 그렇다면 소프트웨어 아키텍처를 이야기하면서 Hard parts를 언급한 이유는 무엇일까? 이 책에서 hard는 어렵다라는 의미와 단단하다는 의미를 내포하고 있다. 즉 소프트웨어 아키텍처, 특히 분산 아키텍처는 일반적인 방법론이나 모범 사례가 존재하지 않는다. 따라서 모든 분산 아키텍처는 각각 유일한 사례가 되는 경우가 많다. 그만큼 어렵다는 의미라고 볼 수 있다. 한편으로는 처음 설계가 잘못되어 구축이 되고 나면 그 상태로 단단하게 굳어져 다시 고치는 작업이 어렵다는 의미도 있다.

소프트웨어 아키텍처에 대해 소개하는 많은 책들은 대부분 이론적인 사례를 많이 다룬다. 따라서 개념적인 부분은 이해하지만 실제 필드에서 적용하기 위해서는 또 다른 고민이 필요한 것이 사실이다. 이 책은 그런 면에서 현실적인 도움을 주는 책이라고 볼 수 있다. IT 서적이지만 책을 읽고 이해하는 데 별 어려움이 없을 정도로 글이 매끄럽고 번역이 잘 되어 있는 것 같다. 또한 가상의 시스템을 사례로 들어 분산 아키텍처를 구성해 가면서 발생하는 다양한 트레이드오프와 접근 방법, 그리고 문제점에 대해 설명한다. 또한 문제점을 해결하기 위한 구체적인 방안을 자연스럽게 이어가고 있어서 실제 업무를 진행하는 것과 유사한 느낌을 가지게 한다.

책은 크게 2개의 파트로 구성되어 있다. 파트 1은 따로 떼어놓기이다. 분산 아키텍에서 트레이드오프를 분석하기 위해 아키텍처를 하나씩 떼어내어 완전히 이해하는 과정이 필요하다. 아키텍처 구조 측면에서 각 요소가 정적으로 결합되는 방식을 설명하고, 아키텍터의 정적 커플링과 동적 커플링의 범위를 정의하면서 이를 분해하면서 생기는 문제를 살펴본다. 그리고 이를 바탕으로 실제 분해 프로세스를 시작하고 코드 베이스를 평가하고 해체하는 도구를 알아보고, 이를 위해 사용할 수 있는 다양한 패턴을 설명한다. 또한 분산 아키텍처에서 데이타와 트랜젝션의 중요성이 점점 커지고 있음에 따라 이를 위한 다양한 주제에 대해 언급한다.

파트 2는 다시 합치기이다. 시스템을 분해해 놓고 나면 곧 시스템을 다시 합쳐 하나의 응집된 단위로 작동시켜야 할 필요성을 느끼게 된다. 이 측면에서 서비스 통신, 계약 분산, 분산 워크플로, 분산 트랜젝션, 데이터 오너십, 데이터 액세스, 분석 데이터 관리 등 다양한 어려운 난제를 극복하는데 필요한 기술을 설명한다.

책에서 설명되는 개념 하나 하나가 실제 업무에 도움이 되는 유용한 정보를 포함하고 있다. 기술은 지속적으로 발전하고 변화하는 현 환경에서 가상의 실 사례를 들어 분산 아키텍처를 분해하고 결합하는 과정을 살펴 봄으로 현실적인 조언과 더불어 각자의 시스템에 활용할 수 있는 소중한 정보를 얻을 수 있는 책이라고 생각한다.

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