Fundamentals of Software Architecture (소프트웨어 아키텍처 101)
Software Architecture
이 책의 목차는 크게 3개의 Part로 나뉘어져 있습니다.
- Part 1. 기초
- Part 2. 아키텍처 스타일
- Part 3. 테크닉과 소프트스킬
각 Part에는 몇 개의 장으로 구성되어 있습니다. 모든 내용이 알차게 구성되어 있습니다.
많은 쥬니어 개발자들, 아키텍트를 목표로 하는 사람들을 만나보았고, 대화를 하면 설계에 다양한 패턴들을 외우고, 공부하고, 적용해보기에 바쁩니다. 아키텍트는 아키텍처를 많이 알고 적용할 줄 아는 사람이라고 생각하는 듯한 분들이 많았습니다. 물론 저도 소프트웨어 아키텍트에 대해 그렇게 단순하게만 생각했던 적이 있었던 것 같습니다. 지금 생각하면 부끄러운 생각이였던 것 같습니다.
물론 아키텍처 스타일, 패턴들을 공부하고, 장단점을 파악하고 다양하게 적용할 수 있는 능력. 트레이드 오프를 파악하고 여러 후보 중 최적의 스타일을 찾아내는 능력이 중요하지 않다는 것은 아닙니다.
하지만 아키텍처 스타일은 시대가 변할수록 패턴도 변화하고, 낡은 아키텍처 패턴은 도태되고 새로운 스타일들이 제시하고 그 시대의 표준 스타일처럼 자리잡을 수도 있습니다. 그렇기에 아키텍처 스타일을 많이 아는 아키텍트가 최고다. 라는 말은 동의하기 어렵습니다.
제가 이 책을 추천드리고 싶은 부분은 아키텍처 스타일의 설명이 아니라, Part 1. 과 Part 3. 입니다. 아카텍트로서의 기초, 소양, 가져야할 자세와 프로젝트를 바라보는 시야부터 시작해서 트레이드 오프에 대해 분석, 최고의 구조를 파악하는 방법과 테크닉에 대한 설명들이 아주 상세하고 읽기 쉽게 잘 작성되어 있습니다.
특히 추천드리고 싶은 부분은 2장. 아키텍처 사고 입니다. 아키텍트는 개발자와 다른 시야와 다른 지식 도메인을 가져야 하고 그러한 다름을 이해하는데서 부터 출발한다고 해도 괜찮다고 저는 생각합니다. 먼저 사고방식을 개발자와 다름을 이해, 인정하고 아키텍트로서 준비를 하는게 우선이지 않을까 싶습니다.
아키텍쳐 평가를 위한 내용과 수식들은 조금 이해가 되지 않고 어려울 수 있습니다. 구조를 선택하는데 수식과 데이터는 왜 필요한지 의문일 수 있습니다. 처음 아키텍트로써 성장하기 위해 이 책을 읽으시는 분들은 그런 내용들은 과감하게 skip!! 하시는 것을 추천드립니다. 그 내용에 집중하다 흥미를 잃을수도 있을 것 같습니다.
Part 2 아키텍처 스타일 은 8개의 아키텍처를 설명하고 있습니다. 많이 사용되어왔던, 현재도 많이 사용되는 아키텍처도 있고 지금은 사용되지 않고 사라져가는 아키텍처도 있습니다. 왜 이런 아키텍처를 공부해야 하는가라고 생각하지 않고 다 공부해 보시는 것을 추천드립니다. 아키텍처의 역사 즉, 발전된 방향을 아는 것도 추후 더 나은 아키텍처를 설계하고 결정하고 분석하는데 큰 도움이 될거라고 믿습니다!
이 책을 보기 전 또는 함께 볼 만한 책으로 한빛미디어에서 출간한 개발자에서 아키텍트로 도서를 추천합니다. 추천하는 이유는 아키텍트는 결국 실무에서 실제로 경험을 쌓는게 가장 좋은 것인데, 그러기 쉽지 않습니다.
아키텍트는 설계만을 하는것이 아니라 비지니스 모델부터 시작해서, 이해관계자 간의 이해와 요구사항 도출, 정리, 품질속성 정리 등 해야할 일들이 너무나도 많습니다. 그리고 개발자들이 싫어하는 문서화 작업 또한 필수!로 해야합니다. 개발자에서 아키텍트로는 그러한 과정을 실습과 함께 잘 정리되어 있기에 추천합니다.
*"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."*