애플리케이션을 설계하다 보면 요구사항을 구현하기 위해 과거와 비슷한 방법으로 문제를 해결하는 경우가 있다. 이렇게 설계를 재사용하는 것이 디자인 패턴의 목적이다. 디자인 패턴을 익힌다면 변경의 방향과 주기를 이해하는 것만으로도 필요한 역할과 책임, 역할들의 협력 방식을 순간적으로 떠올릴 수 있게 된다. (과연 정말 그런가..?) 디자인 패턴이 설계의 재사용이라면 프레임워크는 설계와 코드를 재사용하기 위한 것이다. 프레임워크는 애플리케이션의 아키텍쳐를 구현 구현 코드의 형태로 제공하며, 각 애플리케이션 요구에 따라 적절하게 커스터마이징할 수 있는 확장 포인트도 제공한다. 디자인 패턴은 특정한 변경을 일관성 있게 다룰 수 있는 협력 템플릿을 제공하고, 프레임워크는 특정한 변경을 일관성 있게 다룰 수 있는 확..