본문 바로가기

책을 보다

[리뷰] 분석하고 찾아가는 <소프트웨어 아키텍처 The Hard Parts>

소프트웨어 아키텍처.

소프트웨어에 관련 있는 분이라면 누구나 한 번쯤은 들어본 말입니다. 하지만, 막상 얘기해보면 실체나 경계가 모호하게 느껴지는 경우가 많습니다.

책에서는 아키텍처와 함께 가상의 기업과 조직, 인물을 통해 아키텍처를 다루는 현장 분위기를 전달하고자 합니다.

이야기를 읽으며 충분히 상상이 가는, 그래서 자연스럽게 감정 이입이 되어 흥분하고 있는 자신을 발견할 가능성이 높습니다.

한편으로 이야기를 재미있어 하면서도 아쉬워하는 건 과연 이런 조직이나 회사가 얼마나 될까 하는 의구심이 들기 때문입니다.

 

트레이드오프를 절묘하게 적용하고 있다는 생각이 듭니다.

 

아키텍처의 키워드: 트레이드오프

크게 두부분으로 이루어져 있습니다.

먼저 아키텍처를 나눕니다. 의도는 선했으나 여러 요구사항을 반영하면서 마구잡이로 엮여버린 구성을 어떻게 분산해야 하는지 알려줍니다. 보통은 새로 개발하는 게 더 빠르다고 얘기하곤 합니다. 하지만 새로 개발 한다한들 비슷한 모놀리식 아키텍처라면 머지않아 같은 상황을 만나게 됩니다. 이런 경우는 피하고 싶네요.

그리고 다시 합칩니다. 기껏 분해해 놓고 왜? 라고 생각할 수 있지만 분해한 이유가 문제를 풀려고 하기 때문입니다.

합치는 이유와 관련된 다양한 기술을 살펴보고, 통신, 조정, 일관성, 이 세 가지 힘을 조절하며 장단점을 알려줍니다.

 

트레이드오프가 스며들다

이론과 이야기를 트레이드오프 하며 내용을 풀어나갑니다. 한빛가이버 애플리케이션의 이슈가 각 장의 주제와 함께합니다.

이야기로 관심을 모으고, 전하고 싶었던 내용을 설명합니다. 이론적인 내용에 지칠 때쯤 이야기 안으로 다시 끌어들입니다.

설명한 내용을 가지고 이해관계를 가진 이들이 티격태격하는 모습을 보여주면서 같은 내용을 바라보는 여러 가지 시각을 알려줍니다. 기술이나 개념에 매몰되지 않고 무엇을 봐야 하는지 알려줍니다.

이렇게 풀어나가는 게 생각보다 힘이 있습니다.

어느 정도인가 하면, 이야기 속의 문제와 이슈를 보며 자신의 의견을 보태고 있습니다.

 

단순한 분산을 넘어

분산 아키텍처라고 하면 프로그램을 잘게 나누는 것만 생각하는 게 일반적입니다. 그렇게 생각하기 쉽구요.

하지만, 기능이나 서비스 단위로 묶어서 나누는 게 전부가 아닙니다.

프로그램이나 서비스 못지않게 데이터와 프로세스도 그에 맞게 분리해야 합니다. 그렇지 않으면 분산 아키텍처를 적용한 것처럼 보이기만 할 뿐, 데이터를 저장하고 서비스를 요청하는 단계에 가면 모두 묶여있는, 들춰보면 결국 단일 아키텍처에서 벗어나지 못하고 있는 모습을 발견하게 됩니다.

더하여 단일 아키텍처에서는 에러 처리나 롤백이 별 문제가 되지 않습니다만, 분산 아키텍처에서는 얘기가 달라집니다.

롤백이나 보상 요청을 처리하는 동안에도 에러가 발생할 수 있다는, 당연하지만 거의 생각하지 않았던 문제를 맞닥뜨립니다. 더 이상 당연한 건 없다는 걸 느끼는 순간이 옵니다.

 

읽으며 생각지 못했던 부분을 알려주는 신선한 자극도 있고,

생각보다 쉽지 않다는 어려움, 막막함을 간접적으로나마 경험해 보는 시간이었습니다.

 

 

도구나 기술에 너무 열광하거나, '다른 아키텍처는 어떻다더라'는 말에 휩쓸리지 말라.

남의 아키텍처는 내 아키텍처가 될 수 없다.

 

 

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

반응형