메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

닐 포드는 정말 어려운 개념들을 이해하기 쉽게 정리하는 능력이 있는 것 같아요.

hji7***

|

2023-03-25

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

소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서

  • 저자 : 닐 포드 , 마크 리처즈 , 프라모드 세달라지 , 세막 데그하니
  • 번역 : 이일웅
  • 출간 : 2022-10-01

" <소프트웨어 아키텍처 101> 심화편 "이라는 딱지가 책표지에 찍혀있는 책입니다. 저는 <소프트웨어 아키텍처 101>도 읽고 리뷰했었는데요. 1년 4개월여 만에 그 다음 책을 만나보게 된 것입니다.

부제가 "The Hard Parts"라고 되어있지만, 읽기 어려운 책은 아니었습니다. 이는 소프트웨어 아키텍처로서 일을 할때 어려운 부분을 해결할 수 있는 내용을 설명하겠다는 의도로 보는 쪽이 합당한 것 같습니다. 닐 포드는 어려운 이야기를 쉽게 풀어 주는 능력이 탁월한 저자인것 같습니다. 이 책을 포함해서 닐 포드의 책을 4권 읽었는데요. 모두 꽤 심도깊은 이야기를 다루는 책이었지만 쉽게 쉽게 읽어 내려갔던 기억이 있군요.

"소프트웨어"라는 말은 "부드러운 제품"이라는 뜻을 가진 말입니다. 다른 산업의 "제품"들은 출시하고 나면 바꾸는 것 자체가 불가능하지만, 소프트웨어는 가능하거든요. 그래서, 소프트웨어는 고객의 니즈를 가장 잘 반영할 수 있는 체계를 가진 상품이 아닐까 싶습니다. 하지만, "소프트웨어"를 제품으로 출시하는 다양한 프로세스들은 다른 공학분야에서 차용한 경우가 많았습니다. 그래서, 근본적으로는 맞지 않는 옷을 입은 셈이 되었죠. 변경이 불가능한 제품을 만들기 위해서 진화해온 프로세스에 변경이 너무 쉬운, 아니 지속적으로 변화/진화해 나가야 하는 소프트웨어를 올리는 꼴이 된 것입니다. 그래서, 소프트웨어 개발자들은 상당히 많은 불편함을 겪으면서 일할 수 밖에 없었습니다. 그리고, 잘못된 프로세스에서 오는 괴리는 결국 프로젝트 진행에 어려움으로 나타나고, 그 어려움은 소프트웨어 개발자들의 추가근무와 소모적인 시간투자로 메우는 식으로 해결하곤 했었습니다.

하지만, 안 맞는 프로세스를 적용하다가 문제점을 간파하고 이를 해소하려는 노력을 했던 사람들이 은근히 많았고, 그들은 모여서 애자일 선언을 하기에 이릅니다. 기존 프로세스에서 "변화"는 "리스크"와 동치어 였습니다. "변화"가 일어나면 리스크가 발생하고, 변화가 많이 일어나면 프로젝트는 카오스 상태로 빠져서 실패에 이르게 되는 거죠. 하지만 애자일에서 "변화"는 "일상"입니다. 당연한 것이고, 리스크 요소가 아니게 됩니다. 그럼 이게 가능한 다양한 도구가 모든 파트에서 필요하게 될텐데요.

"소프트웨어 아키텍처"도 마찬가지입니다. 특히 "소프트웨어 아키텍처"는 변화하기 좋은 소프트웨어를 개발하기 위해서 뼈대와 프레임워크가 되는 역할을 하는 파트이기 때문에, 모든 소프트웨어 개발 파트 중에는 가장 변화하기 힘든 파트인데요. 그럼에도 불구하고 아키텍처 자체도 변화 요구를 받아들여서 변화해갈 수 있는 장치를 만들어 두어야 하기 때문에, 상당히 골치아픈 분야가 아닐까 싶습니다.

<소프트웨어 아키텍처 The Hard Parts>는 이 부분을 이야기하고 있는 책입니다. 그리고 그 핵심을 찌르는 말로 이 책을 시작하고 있군요.

" 소프트웨어 아키텍처에서는 최고의 설계를 고집하지 마세요. 그 대신에 나쁜 것 중에서 제일 나은 트레이드오프 조합을 찾으세요 ( - 26 페이지 )"

현 시점에서 최선을 선택할 수 있는 안목과 이를 실행할 수 있는 용기가 소프트웨어 아키텍트에게 필요한 기본적인 소양인 것이죠. 그 다음 필요한 것은, 바로 변화를 이끌어나갈 "도구"입니다. 안정적으로 다음 소프트웨어 아키텍트를 구성해 낼 방법이죠.

저자는 이 부분에 대해서 상당히 역동적으로 서술하고 있는데요. 먼저 소프트웨어 아키텍처 개발자들이 소프트웨어 아키텍처를 변경시켜야 할 때 나눌만한 대화를 소개하며, 어떻게 대응해 나가는지를 보여주는 방식을 취하고 있다는 것입니다. 정말 딱딱할 것 같은 주제들이 소개되고, 중간중간에 개발자들 사이 대화들이 들어가니 이해하기 쉽고 읽기도 더 수월했습니다.

각 장(chapter)들은 소프트웨어 아키텍처 개발자들이 소프트웨어 아키텍처를 변경시켜나갈때 고민하게되는 순서로 아키텍트에 대한 주제를 하나씩 다루고 있습니다. 소프트웨어 아키텍처가 다소 개념적인 이야기이지만, 이런식으로 설명해 나가니 이해하기 좋았던것 같네요.

특히 요즘은 마이크로 서비스 아키텍처로 기존 소프트웨어 아키텍처를 수정해 나가야 하는 경우가 많을 텐데요. 그런 상황에서 어떻게 시작하고 전개해 나가야 하는지 갈피를 잡지 못하고 있는 개발자들이 있다면, 이 책은 바이블 역할을 할 수 있을 거라 장담합니다.

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

 

 

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?