gdtbg***
2023-03-26

소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서
소프트웨어의 세계에서 변화는 필연적이다. 어떤 천재가 나타나도 기막힌 코드를 작성하더라도, 코드가 살아가는 세계의 변화에 따라 언젠가는 변경이 일어날 수 밖에 없다. 그 변경 중에서도 쉽게 변경할 수 있는 부분과 어렵게 변경할 수 있는 부분이 있다. 특히 아키텍처는 가장 변경하기 어려운 부분 중 하나이다.
물 위에서 뗏목을 만들고 침몰되지 않도록 발버둥 치며 결국 거대한 함선으로 진화시켜 나가야 하는 숙명을 가진 소프트웨어 개발에서, 아키텍처의 변경은 배의 구조를 바꾸는 것 같다. 배의 외관을 조금 바꿨다고 침몰하지는 않지만, 아키텍처를 잘못 바꾸면 배는 즉시 침몰한다. 이 책은 그 힘든 소프트웨어의 추상적 아키텍처의 변경을 다룬다. 흥미가 좀 생기는가?
이 책은 여러가지 소프트웨어 아키텍처를 보여준다. 그리고 어떤 아키텍처가 현 소프트웨어에 적합한지 평가할 수 있는 방법을 알려준다. 이 책에서 중요하게 말하는 것은 바로 트레이드 오프(trade-off)다. 무작정 좋은 아키텍처는 존재하지 않으며, 모든 아키텍처는 장단점을 가지고 있고 나의 상황에 적절한 것을 고르는 것이다.