wlswn3***
2022-07-04

소프트웨어 개발을 시작할 때 필요한 실용 가이드북이다. 소프트웨어 아키텍처의 리스크는 무엇인지, 아키텍처 설계 원칙은 어떻게 적용하고 해결하는지, 유관 부서의 실무자를 어떻게 도울 수 있는지 등의 주제를 개발자가 흔히 겪는 경험을 기반으로 풀어냈다.
저자 조지 페어뱅크스의 "Just Enough Software Architecture: A Risk-Driven Approach"은 성공적으로 소프트웨어를 만드는 것이 "가능한 실패를 예상하고 실패할 수 있는 설계를 피하는 것을 의미"한다고 이야기 한다. 그렇기 때문에 실패 리스크를 찾고 이것에 매핑하는 소프트웨어 설계 테크닉을 적용하는 것이라고 한다.
책에서 말하는 리스크 주도 모델의 경우는 다음과 같은 단계를 거치면서 반복하는 과정이라고 말한다.
소프트웨어 개발은 설계만으로 끝나는 것이 아니고 구현을 해야 한다. 그러므로 다음과 같은 예의 논리를 바탕으로 진행하는 것을 제안한다.
"A, B 그리고 C를 리스크로 식별하고, B는 매우 중요하다. 이를 위한 테크닉 X와 Y를 통해 B의 리스크를 줄일 수 있다고 판단했다. 결과물인 설계를 평가했을 때, B의 리스크가 충분히 완화되어 구현을 계속 했다."
아키텍처 도서와 방법론 관련된 도서가 요즘들어 굉장히 많이 나오고 있는데,
해당도서도 마찬가지다.
평소 오랠리의 도서시리즈를 좋아해서 '아키텍처 101'을 먼저 읽었고 해당 '리스크 주도학습법'을 읽어보면서 '실무 적용'에 대해 여러가지 생각을 읽어보고 고민을 했었는데,
해당 도서를 읽으면서 좋았던 부분은 '리스크 주도 접근(A Risk Driven Approach)'과 관련해
실무관련된 내용을 실습 위주로 다루고 있다는 부분이였다.
리스크 주도 설계 접근 방식의 주요 내용은 설계에 많은 비용이 들기 때문에 리스크를 찾아 내고 이에 적절한 테크닉을 필요한 만큼 반복적으로 적용한다는 것이다. 이는 현재 소프트웨어 개발에서 적용되고 있는 양극단의 소프트웨어 개발 방법에서 모두 적용할 수 있다고 책에서는 주장하고 있다.
특히, 애자일 혹은 반복적 개발에서 알 수 있는 주요한 내용 중 하나가 설계가 항상 개발 프로세스의 앞부분에서만 진행되어야 하는 것은 아니라는 점이다. 후반부에 설계를 하게 되면설계를 변경하기 어려운 부분도 있을 수 있으나 구현하려고 하는 소프트웨어를 초기에는 잘 알지 못하는 문제점도 있다는 것을 책에서는 지적하고 있다. 소프트웨어 개발이 지식을 얻어 가는 과정이라면, 이를 이를 소프트웨어 설계 및 아키텍처링에 적용하는 방법으로서 리스크 주도 접근 방식의 장점과 적용하는 방법에 대해서도 흥미로운 재안을 하고있다.
개인적으로는 아키텍처 101일 먼저 읽고 해당도서를 읽어서 더욱 와닿았던 부분이 많았다.
두가지 모두 읽어보기를 추천드립니다!
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.