소프트웨어 아키텍처 The Hard Parts 본문

Programming

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

halatha 2022. 10. 30. 01:16

아키텍처에 관한 책은 일반적으로 어렵다. 다뤄야 할 범위가 크니 알아야 할 지식도 많지만, 한 권의 책에서 설명할 수 있는 물리적인 한계가 있으니 추상적인 부분을 다뤄야 하는 경우가 대부분이라 기본적인 지식이 없으면 결국 겉핥기식으로 읽고 실제 환경에서는 적용하기 어렵게 되는 경우가 많다.

이 책이라고 해서 읽기 쉽지는 않지만 — 제목부터가 The hard Parts이니 — 다른 아키텍처 서적에 비하면 훨씬 더 구체적이다. 컴포넌트 커플링이 monolithic architecture를 분해하는데 가장 중요한 요인 중 하나이기 때문에 컴포넌트 기반 분해 패턴을 통해 컴포넌트부터 분리하고, 데이터를 나눈 후, microservice로 분해하는 과정을 그림과 말뿐만이 아니라 코드까지 예를 들며 알려준다. 또 분산 아키텍처를 설명한다고 나누는 것에만 집중하는 게 아니라(MSA가 buzzword가 된 후, 새로운 트렌드를 일단 쫓는 경우 분리를 통해 생기는 어려움을 크게 고려하지 않고, 나누는 것만 하고 싶어 하는 개발자들의 이야기를 쉽게 들을 수 있었다) 코드의 재사용성을 고려하는 서비스나 공유 라이브러리의 트레이드오프, 가장 어려운 문제가 되는 분산 트랜잭션, 서비스 간 결합도와 관계되는 느슨한/엄격한 계약 등 놓치기 쉽지만 분산 서비스 구성에 큰 영향을 미치는 나눌지 합칠지 고민해야 할 부분을 챕터별로 배울 수 있다.

구성면에서 살펴보면 매 챕터를 가상의 인물들이 아키텍처 관련 미팅을 하면서 각자의 입장에 따라 주장을 하거나 때로 논쟁을 벌이는 모습으로 시작을 하는데, 이 부분이 아키텍처 관련된 현실적인 문제를 알려주기 위해 저자들이 넣은 장치로 짐작한다. 모든 일이 그렇지만 특히 아키텍처에 대한 부분은 (정답이 아니라) 좋은 답을 찾기 위해 논의를 해야 할 주제가 더 많기 때문에 열린 마음으로 stakeholder들이 이야기를 해야 한다. 하지만 업무에 쫓기는 현실 속에서 이런 태도를 갖는 게 때론 어렵기 때문에 이런 가상의 인물들을 통해 저자들이 이런 문화의 중요성도 전달하려는 의도를 가졌을 거라고 생각한다.

한 번 읽은 걸로는 쉽게 이해하기 어려워 시간을 들여 천천히 다시 읽어볼 생각이다. amazon의 평점이 절대적인 척도가 될 수는 없지만, 많은 사람들이 평가했는데도 4.6점이라면 대부분 이 책의 장점을 인정하는 걸로 보이고 그만큼 읽을만한 가치가 있는 책이란 생각이 든다. 분산 아키텍처라는 거대한 산맥을 조금이나마 더 잘 이해하고 싶다.

 

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

Comments