올바르게 동작하고 비즈니스 목표에 부합하는 소프트웨어를 구현하기 위해서는 무엇보다 설계가 중요하다. 소프트웨어 공학의 태동기 이래로 소프트웨어 설계에 대한 중요성은 항상 강조되어 왔지만, 정작 제대로 소프트웨어를 설계하기 위한 실천적인 지식과 방법을 배우기 어려운 상황이 고스란히 이어져 왔다. 눈에 보이지 않는 소프트웨어의 본질적인 특성과 다양한 복잡성이 내재되어 있는 제약이 언제나 소프트웨어 설계를 어렵게하는 요인으로 작용해 왔고, 경력과 연륜을 갖춘 노련한 대가에 의해 훌륭한 소프트웨어 설계가 이뤄져 왔도 해도 과언이 아니다. 그렇다면 소프트웨어 설계를 누구나 쉽게 시작할 수 있는 방법은 없는 것일까? 이 물음에 대한 답을 제공하기 위해 오늘 소개하는 서적과 함께 이야기를 풀어 나가 보려고 한다. 이..