소프트웨어 아키텍처 The Hard Parts - 분산 아키텍처를 위한 모던 트레이드오프 분석
닐 포드.마크 리처즈.세막 데그하니 지음, 이일웅 옮김 / 한빛미디어 / 2022년 10월
평점 :
장바구니담기


소프트웨어 아키텍트에게 트레이드오프와 관련된 고민은 늘상 있는 법이다. 효율적인 소프트웨어 설계를 위해 주어진 다양한 선택지 앞에서 과연 아키텍트는 어떤 것을 답안지로 골라야 할 것인가? 과연 무엇이 옳은 선택이고 그릇된 것인지 어떻게 판단할 수 있을까? 그렇게 판단할 수 있는 기준은 과연 무엇일까? 그 기준으로 삼을 수 있는 근거는 과연 어디서부터 구할 수 있는 것일까? 이러한 일련의 상황과 마주하게 되는 아키텍트에게 속시원한 답은 없는 것일까? 답은 쉽게 구해지지 않고, 그것을 찾아가는 여정은 고되고 그 과정에는 온갖 괴로움이 수반된다. 그럼에도 불구하고 이러한 아키텍트에게 도움이 될 수 있는 책이 한 권 존재한다면 그것은 바로 이번에 소개하게 될 서적이 되리라 생각한다. 



이 책은 '소프트웨어 아키텍처 101'에 대한 후속 서적으로서 전작에서 소프트웨어 아키텍처에 대한 거대 담론을 이야기했다면, 이번엔 소프트웨어 아키텍처를 둘러싼 다양한 각론 위주로 구성된 채 저자들의 수준 높은 혜안이 듬뿍 배어 있는 게 특징이다. 

 

본 서적은 크게 Part 1, Part 2로 구분되어 있는데 Part 1은 따로 떼어놓기, Part 2는 다시 합치기로서 이에 대한 다양한 소재를 통해 이야기가 전개된다. 따로 떼어 놓기는 쉽게 말해 쪼개고 분리하기, 다시 합치기는 통합으로 치환될 수 있겠다. 이 개념은 소프트웨어 아키텍처뿐만 아니라 현존하는 모든 아키텍처에 적용될 수 있는 핵심 원리이다. 

 

각설하고 이 책의 부제인  '분산 아키텍처를 위한 모던 트레이드오프 분석'이 전체 내용을 관통하는 주요 핵심 메시지로서 모놀리식 아키텍처가 MSA 형태의 아키텍처로 어떻게 진화하고 변주될 수 있는지 다양한 패턴과 사례가 제시되어 어떤 상황에 어떠한 레퍼런스가 적용될 때 트레이드오프를 최소화 할 수 있는지에 대한 통찰을 여실히 제공받는다. 

 

한빛가이버라는 가상의 애플리케이션과 이와 연관되어 있는 가상의 등장인물이 이 책 곳곳에 배치되어 보다 입체적으로 아키텍의 변화 과정을 현실감 있게 지켜보는 재미가 꽤 쏠쏠하다. 시간이 지남에 따라 한빛가이버가 완성도 있는 아키텍처로 변화하며 이를 둘러싼 트레이드오프 분석 과정이 동반될 때마다 얻게 되는 지식은 값어치를 매길 수 없을 정도로 유용하다. 

 

전편에 비해 좀 더 난해한 내용이 많은 것이 사실이지만, 이 책은 결코 한 번 읽고 덮는 것으로 그칠 것이 아니라 곁에 두고 오랫동안 즐기고 맛보고 뜯어 보면서 내용을 음미하고 곱씹어 보는 과정이 절대적으로 필요하겠다. 전편을 통해 소프트웨어 아키텍처의 정수를 맛본 이라면 이 책은 반드시 탐독해야할 서적이다. 

 

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



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
코드로 인프라 관리하기 - 클라우드 시대의 코드형 인프라(IaC)와 데브옵스 완벽 가이드, 27가지 관리/구축 패턴 수록, 2판
키프 모리스 지음, 이동규 옮김 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기


고객의 요구 사항은 수시로 변화하면서 비즈니스 세계는 그런 고객의 요구에 부응하기 위해 동분서주하고 있다. 이런 와중에 비즈니스의 복잡성은 나날이 심화되며 이는 수시로 애플리케이션 코드의 복잡성을 가속화 하는 상황을 초래하고 있다. 하지만 여기서 그치는 것이 아니라 애플리케이션의 문제와 별개로 인프라 환경 역시 복잡다단한 변화의 중심에서 벗어날 수 없는 구조와 마주하게 되었다. 개발 환경과 스테이징 환경 그리고 프러덕션 환경으로 이어지는 일련의 환경은 끊임 없이 변경을 요구 받으며 인프라의 생명과 소멸이 반복해서 동작하는 복잡계 속에 포박되어 있는 실정이다. 

 

어떻게 하면 더 빠르게 표준화 된 절차를 통해 완벽하게 인프라를 관리할 수 있을까? 인프라의 생애주기(생성, 변경, 소멸)를 관통하는 하나의 커다란 흐름 속에서 막대한 시간과 비용의 투입 없이 효율적으로 인프라를 관리할 수 있는 방법은 없는 것일까? 이러한 고민 끝에 등장한 개념이 바로 Infrastructure as Code, 일명 IaC이다. IaC를 통해 인프라를 보다 더 효율적으로 관리하고 운영할 수 있는 토대가 마련되었고, 바야흐로 IaC가 인프라 관리의 새로운 패러다임이 되어 버렸다. 오늘은 바로 IaC에 대해 이야기하고 있는 책을 소개하고자 한다. 

 

본 서적은 2판으로서 1판이 서버 구성 자동화에 대해 다루고 있었던 것에 반해, 2판의 등장과 함께 클라우드 환경의 인프라에 대한 논의를 새롭게 이어 가는 책이라 할 수 있겠다. 



먼저 저자는 첫 번째 챕터에서 코드형 인프라의 의의에 대해 갈파하고 있다. IaC가 대두된 배경과 함께 이를 사용할 때 얻을 수 있는 이점 그리고 변경 최적화, IaC를 위한 세 가지 핵심 실행 방법에 대해 언설한다. 이윽고 두 번째 챕터에서 클라우드 시대 인프라의 원칙으로서 다섯 가지를 설파하고 있는데, 어찌 보면 이 원칙이야 말로 IaC를 지탱하는 근본이라고도 할 수 있겠다. IaC는 해당 원칙 위에서 토대를 갖추고 더욱 발전해 나가리라 생각한다. 이어서 세 번째 챕터와 네 번째 챕터에서 동적 인프라 플랫폼과 리소스 그리고 코드로서 인프라를 정의하는 것에 대해 저자의 식견을 엿볼 수 있었고 인프라를 코드로 정의하며 구현하기 위한 원칙을 통해 IaC의 사상과 체계를 더욱 깊게 이해할 수 있게 되었다. 

 

두 번째 파트에서 인프라 스택이라는 개념이 등장하는데, 이를 기반으로 스택 구조화에 대한 패턴과 안티 패턴의 여럿 사례를 배울 수 있고, 스택 환경 구축, 스택 인스턴스를 구성하는 실천적 케이스를 학습하게 된다. 첫 번째 파트에 연이어 IaC의 핵 심 실행 방법이 논의되고 있는데, '지속적으로 코드를 테스트하고 딜리버리 한다'는 기치 아래 이를 둘러싼 문제와 테스트 방법에 대해 심도 있는 설명이 이어진다. 또한 인프라 스택을 테스트하기 위한 보다 더 실증적인 사례를 통해 효율적인 가치를 배울 수 있는 기회가 제공된다. 

 

애플리케이션이 동작하는 환경인 런타임, 코드형 서버를 구축하기 위한 논의 그리고 서버 변경 관리에 대한 설명과 코드형 서버 이미지, 복수의 애플리케이션을 클러스터링하는 구축 방법에 대한 이야기가 무르익어 가면서 어느덧 책은 후반부를 향해 힘차게 달려가고 있다. 여기까지 도달하면서 책의 내용에 대해 온전히 이해할 수 있으면 좋으련만 IaC가 익숙치 않은 초심자들은 집중을 잃고 헤맬 수 있는 상황과 맞닥뜨릴 수도 있다고 생각한다. 하지만 이 책은 결코 한 번 읽어서 체득할 수 없으며, 곁에 두고 여러번 통독할 때만이 소기의 목적을 달성할 수 있으리라. 

 

'시스템을 작고 간단하게 빌드한다'는 핵심 실행 방법의 가치가 오롯이 전달되면서 이를 위한 설계 사상을 눈여겨보게된다. 이어서 스택 컴포넌라는 개념의 등장과 함께 이에 대한 패턴과 안티 패턴에 대한 논의가 이어지고, 스택을 컴포넌트로 사용할 때의 패턴에 대한 사례를 학습하게 된다. 

 

마지막 파트에서 인프라를 특정 환경으로 딜리버리 하기 위해 깊게 생각해 볼 거리가 주어진다. 인프라 코드를 구조화 하기 위한 방법과 코드를 딜리버리 할 때 유용한 패턴 사례, 팀 워크플로를 위한 실천적 방법 그리고 안전하게 인프라를 변경하기 위해 반드시 지켜야 하는 유용한 팁을 배우게 되며 이를 끝으로 저자는 하고 싶은 이야기를 마무리 한다. 

 

이 책은 결코 쉬운 서적이 아니다. 어떻게 보면 IaC 입문서로서 적당하지 않을 수도 있겠다. 인프라에 대한 지식이 전무한 상태에서 본 서적을 임한다면 더욱 더 난관에 빠질 수 있으리라. 그럼에도 불구하고 IaC의 원칙과 핵심 사상, 실천적 가치를 맛보고 싶은 초심자에게는 도전적인 일독을 권한다. 세간에 IaC 도구로 활용되고 있는 플랫폼은 굉장히 다양하게 포진돼 있다. 그럼에도 불구하고 저자는 특정 도구를 활용하지 않고, 가상 도구의 코드를 사용하며 범용적인 환경을 철저히 고려했고 그런 가치 아래 이 책의 유용성은 더욱 더 빛난다고 생각한다. 특정 도구를 잘 다룰 수 있는 방법을 제시한다면 그 도구에 갇히게 되겠지만 IaC의 본질을 담고 있는 핵심을, 가상 도구를 통해 여실히 드러낸 저자의 노력에 대해 박수갈채를 보낸다. 

 

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

    


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 컴퓨터 구조 + 운영체제 - 1:1 과외하듯 배우는 컴퓨터공학 자습서 혼자 공부하는 시리즈
강민철 지음 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기


이 세상에는 IT를 업으로 하는 사람들이 존재한다. 그들 중 어떤 사람은 소프트웨어 엔지니어(개발자)일

테며, 어떤 이는 인프라 엔지니어 또는 네트워크 엔지니어, DB 엔지니어 등일 것이다. 앞서 언급한 직업

군의 공통점은 바로 엔지니어라는 것이다. 이들은 자신이 몸을 담고 있는 분야에서 마주한 '문제'를 해결

하기 하는 사람들이다. 즉 엔지니어링이라는 것은 주어진 문제를 해결하는 과정인 것이다.    그런데 소프트웨어 엔지니어가 코딩만 잘한다고 능사일까? 네트워크 엔지니어가 네트워크 이론과 장비

설정에 관련된 커맨드 라인만 잘 다룬다고 과연 좋은 엔지니어라고 할 수 있을까? DB 엔지니어가 데이터

베이스에 대한 개념과 이론, 지식만 잘 안다고 과연 DB와 관련된 문제를 잘 해결할 수 있을까? 인프라 엔

지니어가 구축한 인프라가 과연 비용 효율적인 결과물일까? 굳이 엔지니어가 아니어도 좋다. 궁극적으로

성능과 용량, 비용을 고려한 최적의 결과물을 만들어 내기 위한 범위에 포함되는 모든 이들에게 기본적으

로 필요한 것은 컴퓨터 구조와 운영체제에 대한 지식이다.    컴퓨터 구조와 운영체제에 대한 지식이 없어도 결과물은 충분히 만들어 낼 수 있다. 문제를 해결할 수 도

있다. 하지만 이 지식이 없이는 문제의 근원에 도달할 수 없으며, 근본적인 해결의 실마리를 찾아 낼 수조

차 없다. 컴퓨터라는 개체 위에 존재하는 모든 것들-그것이 소스 코드이든, 인프라 설정 파일이든, 네트워

크 설정 파일이든, DB이든 중요하지 않다-은 결론적으로 컴퓨터 구조와 운영체제의 이론에 직접 또는 간

접적으로 영향을 받을 수 밖에 없기 때문이다. 결국 엔지니어링을 업으로 하는 IT 종사자들은 좋든, 싫든

컴퓨터 구조와 운영체제의 이론을 벗어날 수가 없다. 그것은 운명이고 필연이리라.    그런데, 컴퓨터 구조와 운영체제 이론과 지식은 결코 쉽지 않다. 난해한 용어와 개념들로 가득차 있기 때

문이다. 그렇다고 시중에 이들에 대해 쉽게 다루는 책이 마땅치 않다. 그래서 어떻게 공부하라는 말인가?

하지만 다행히도 한빛미디어에서 컴퓨터 구조와 운영체제에 대한 서적을 발간하고야 말았다. 오늘은

그 책에 대해 이야기를 풀어 나가려고 한다. 



이 책 자체는 개발자를 위해 절대적으로 필요한 도구로서 컴퓨터 구조와 운영체제를 강조

하지만 서두에서 언급했듯이 해당 지식은 결코 개발자(소프트웨어 엔지니어)에게만 필요한

지식이 아니다. 개발자를 위시해서 인프라 엔지니어, 네트워크 엔지니어, DB 엔지니어, 스

토리지 엔지니어, 백업 엔지니어 등등. 엔지니어가 아닌 업무를 하는 사람, 예컨대 소프트웨

어 아키텍트, 인프라 아키텍트 등에게도 반드시 필요한 지식이 바로 컴퓨터 구조와 운영체제

이다. 

시중에 유통되고 있는 컴퓨터 구조 또는 운영체제와 관련된 책들이 결코 적은 것은 아니다.

하지만 이 두 가지 주제 자체가 굉장히 딱딱하고 어려운 와중에 결코 쉽게 풀이하고 있는

책들은 없다고 해도 무방하다. 결론적으로 독자의 입장에서 독자의 수준을 충분히 배려하

고 이해하지 않은 관점에서 쓰인 책들이 많다는 것이다. 독자의 수준을 어느 정도로 상정했

는지 모르겠지만, 아직까지 컴퓨터 구조와 운영체제에 대해 쉽게 접근하기 위한 노력은 결코

만만하지 않다는 것은 누구나 다 공감하리라 생각한다. 


각설하고 본 서적은 컴퓨터 구조와 운영체제에 입문하려는 대상을 독자로 상정했고, 이에

따라 쉬운 설명과 다양한 삽화 및 도해로 어려운 개념을 이해되기 쉽도록 풀이해 나가고 있

다. 군더더기 없는 설명과 재치 있는 은유를 통해, 각 챕터마다 등장하는 개념을 하나씩 마

주하며 어느새 그것을 이해하고 있는 자신을 보고 놀랄지도 모르겠다.  

이 서적을 완독했다고 해서 컴퓨터 구조와 운영체제에 대한 모든 개념과 지식을 온전히 흡수

할 수 있는 것은 아니다. 하지만 적어도 이 책을 통해 컴퓨터 구조와 운영체제에 대한 두려움

과 공포를 극복하고 한걸음 더 나아갈 수 있다면, 그것만으로 소기의 목적을 달성했다고 볼

수 있지 않을까? 이 책의 완독은 결코 끝이 아니라 시작인 셈이다. 본 서적을 통해 컴퓨터

구조와 운영체제에 대한 관심과 흥미가 한층 커지고 이들에 대해 좀 더 제대로 학습하고

싶다는 열망이 타오른다면 그것만으로도 이 책은 본연의 역할을 다했다고 볼 수 있으리라.

 

컴퓨터 구조와 운영체제는 단연코 쉬운 주제의 학습 대상이 아니다. 그렇기 때문에 이들을 향한

첫걸음을 떼기도 전에 좌절했다면, 그리고 절망했다면 이 책을 통해 다시금 새로운 마음으로 학

습을 시작해 보는 건 어떨까? 


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



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
클라우드 네이티브 애플리케이션 디자인 패턴 - 애플리케이션의 배포와 운영을 고려한 7가지 설계 패턴
카순 인드라시리.스리스칸다라자 수호타얀 지음, 박수현 옮김 / 한빛미디어 / 2022년 6월
평점 :
장바구니담기


현대의 모든 시스템은 두 가지로 분류할 수 있다. 클라우드 환경에 기반을 두고 있는 워크로드와 그렇지 않은 것으로 말이다. 그만큼 대부분의 워크로드는 클라우드 위에 자리잡고 있고, 일부는 온프레미스에 존재하지만 머잖아 모든 워크로드가 클라우드 환경으로 마이그레이션 될 상황은 시간의 문제일 뿐, 그 여정은 언제든지 시작될 수 있다. 

 

그런데 클라우드 환경에 애플리케이션이 구성되어 있다고 해서 그게 과연 클라우드 다운 모습을 갖추고 있다고 말할 수 있을까? 그렇다면 클라우드 다운 워크로드 또는 애플리케이션은 무엇이란 말인가? 클라우드에 기반한 애플리케이션을 클라우드 답게 만들기 위해선 무엇이 필요하단 말인가? 이 질문에 대한 답을 제공하는 책을 오늘 소개하고자 한다. '클라우드 네이티브 애플리케이션 디자인 패턴'이 바로 그 주인공이다. 



온프레미스에 기거하고 있던 애플리케이션을 클라우드로 이전하여 서비스를 실행하거나 혹은 애초에 클라우드 환경 위에 애플리케이션이 구동되는 환경을 마련하는 일은 이제 더이상 생경한 풍경이 아니게 되었다. 모든 워크로드는 클라우드로의 여정을 준비하고 있거나, 그 시기를 저울질 하고 있을 뿐, 더이상 클라우드를 빼 놓고 IT 서비스를 논의하는 게 무의미해지는 시대에 노정돼 있다. 


그런데 애플리케이션을 클라우드위에 구축했다고 해서 과연 클라우드가 제공하는 이점을 충분히 활용할 수 있을까? 단순히 애플리케이션이 클라우드 환경에 존재하는 것 자체가 은탄환이 될 수 있을까? 이에 대한 물음에 조응하여 탄생한 개념이 바로 '클라우드 네이티브'이다. 보다 자세히 말하면 클라우드 네이티브한 애플리케이션을 개발하기 위한 다양한 방법론이 클라우드 네이티브의 본질이라고 할 수 있겠다. 그렇다면 도대체 클라우드 네이티브한 애플리케이션이란 또 무엇인가?

 

이 책은 클라우드 네이티브 애플리케이션이 무엇인지에 대한 개념을 풀어 놓은 것으로 서막을 열고 있다. 클라우드 네이티브 애플리케이션 방법론과 그에 따른 디자인 패턴 그리고 참조 모델을 통해서 진정한 클라우드 네이티브 애플리케이션의 핵심 가치를 정립할 수 있게 된다. 

 

이윽고 MSA 환경에서 주로 사용되는 통신 패턴에 대해 상세한 설명을 이어 간다. 동기 메시징 패턴, 비동기 메시지 패턴, 서비스 정의 패턴 등의 개념과 장단점을 접하게 되며 어느 상황에 어떤 패턴을 사용할 수 있을지에 대한 명징한 솔루션을 얻게 된다. 

 

이어서 연결성 및 조합 패턴, 데이터 관리 패턴, 이벤트 주도 아키텍처 패턴, 스트림 프로세싱 패턴, API 관리 및 사용 패턴 등의 다양한 패턴과 활용 사례, 특징, 핵심 가치 등에 대해 학습하게 되면서 클라우드 네이티브 환경에서 애플리케이션을 전개할 수 있는 패턴의 정수를 접하게 된다. 그리고 마지막으로 클라우드 네이티브 패턴을 적용할 수 있는 여러 상황과 사례들을 다시 한번 들추어 내어 클라우드 내이티브의 애플리케이션 디자인 패턴이 제공하는 이점을 여실히 깨닫게 된다. 

 

클라우드 네이티브 환경과 짝을 이루는 컴포넌트들은 다양하게 존재한다. MSA, 컨테이너, CI/CD, 데브옵스 등등. 클라우드 네이티브 애플리케이션 디자인 패턴이 온전히 현실 세계에 적용되기 위해선 각각의 컴포넌트들이 뒷받침 되어야 하며, 그 컴포넌트들과 유기적인 합일을 이룰 때 비로소 클라우드 네이티브 환경이 갖춰질 수 있음은 두말 하면 잔소리다. 

 

번역서임에도 불구하고 매끄러운 번역을 통해 책을 읽는 내내 텍스를 재해석하는 일이 없어서 무척 좋았고, 다양한 그림을 통해 클라우드 네이티브 애클리케이션 디자인 패턴의 개념을 큰 어려움 없이 소화할 수 있어서 학습 효과가 배가되었다. 클라우드 환경에 애플리케이션을 이전하거나 새로 구성해야하는 모든 이해관계자들은 이 책을 통해 진정한 클라우드 네이티브 애플리케이션의 개발의 정수를 꼭 맛보길 강권한다. 


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




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
적정 소프트웨어 아키텍처 - 리스크 주도 접근법
조지 페어뱅크스 지음, 이승범 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기


소프트웨어 엔지니어링을 통해 소프트웨어를 개발하는 과정은 지난하고 복잡하다. 요구 사항을 분석하고 도출된 결과를 통해 설계를 해 나갈 때, 다양한 어려움이 도사리고 있으며, 예기치 못한 숱한 난관이 도처에 드리우고 있다. 때로는 요구 사항을 통해 분석된 결과를 전면 재수정해야 할 필요가 있을 수 있고, 요구 사항 자체가 전복되어 처음부터 다시 그것을 위한 노력이 투여되는 상황도 존재한다. 전형적인 워터폴 방식의 개발 프로세스가 지배적인 구조라면, 이런 과정이 고역 그 자체일 수 있겠지만 애자일로 무장된 개발 조직에서는 고객의 요구 사항을 그때그때마다 피드백 받고 그것을 개발 과정에 반영하며 점진적인 개선을 꾀한다. 


그런데 애자일 방식을 활용하더라도 소프트웨어를 개발하는 과정에는 리스크가 항상 존재한다. 워터폴 방식이든, 애자일 방식이든 소프트웨어 개발 과정 자체가 예측불허한 리스크를 태생적으로 수반하고 있음을 부정할 수 없는 현실에 직면하게 된다. 어떻게 하면 리스크를 최소화하고 적정하게 관리하면서 소프트웨어를 개발할 수 있을지에 대한 가이드를 제공하는 바로 오늘의 주인공, ' 적정 소프트웨어 아키텍처'라는 책에 대해 이야기를 풀어 나갈 생각이다. 






이 책은 오랜 세월 동안 소프트웨어를 개발하며 지내 온 베테랑 저자의 생생한 경험과 지식이 녹아 들어간 서적이다. 그런 저자의 커리어가 증명하듯, 책 전체를 관통하며 주장하는 리스크 주도 접근법을 통한 소프트웨어 아키텍처 설계라는 발상이 무척 생경하게 다가왔지만 책을 완독하고 덮는 순간 이루 표현할 수 없는 뿌듯함을 느낄 수 있는 시간을 가질 수 있었다. 


소프트웨어 아키텍처가 무엇인지에 대한 물음으로 시작해서 소프트웨어 아키텍처의 중요성을 갈파하며, 아키텍처 특성 별로 아키텍처 무관 설계, 아키텍처 집중 설계, 아키텍처 상향 설계라는 새로운 방향을 제시한다. 이윽고 리스크 주도 모델에 대한 세세한 특성을 풀어 나가며, 리스크 모델이 왜 필요한지에 대한 저자의 고찰과 진지한 논의가 계속 이어진다. Part 1의 모델링과 관련된 조언을 통해 아키텍처를 어떻게 설계할지에 대한 실질적인 조언과 가이드를 여실히 제공 받을 수 있었다. 


Part 2에서는 아키텍처 모델링에 대한 여럿 주제를 놓고 이야기가 계속 진행된다. 도메인 모델, 디자인 모델, 코드 모델에 대한 개별적 특성과 구조에 대해 상세한 설명이 풀이되고 캡슐화 및 파티셔닝을 통해 어떻게 아키텍처가 자리잡게되는지에 대해 인사이트를 얻을 수 있게 된다. 계속해서 모델 요소와, 모델 관계에 대한 세부 논의를 통해 아키텍처 내부가 어떻게 서로 연관되고 상호작용하게 되는지 학습하게 되며, 아키텍처 스타일에 대한 이야기를 통해 현실 세계 적용 가능한 아키텍처의 종류를 배우게 된다. 


이 책은 참고로 하드 커버로 제작되었다. 하드 커버로 구성된 책을 참 오랜만에 접하게 되었는데, 하드 커버가 제공하는 나름 독특한 분위기와 책의 겉표지가 절묘하게 어우러져 책을 받은 즉시 기분이 좋았다. 이 책 전체를 횡단하는 리스크 주도의 접근을 통해 소프트웨어 아키텍처를 설계하는데에 있어, 어떻게 리스크를 최소화하고 적정 수준으로 리스크를 관리할 수 있을지 궁금한 사람이라면 응당 이 책을 반드시 일독해야 한다. 소프트웨어 아키텍처를 제대로 설계하고 리스크에 휘둘리지 않는 아키텍트가 되고 싶은 사람, 그런 아키텍트를 지향하는 개발자라면 꼭 이 책을 접해 보길 바란다. 


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



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo