프레임워크 아이디어는 새로운 것이 아니다. 소프트웨어 개발 역사를 통틀어 프로그래머들은 여러 애플리케이션에서 작성한 코드 일부를 재사용할 수 있음을 관찰했다. 구현된 애플리케이션이 많지 않은 초기에 각 애플리케이션은 고유했고 특정 프로그래밍 언어를 사용하여 원점에서부터 개발했다. 소프트웨어 개발 영역이 확장되고 점점 더 많은 애플리케이션이 시장에 출시되기 시작하면서 이런 많은 애플리케이션의 요구 사항이 유사하다는 것을 쉽게 알 수 있었다. 그중 몇 가지를 예로 들어 보자.
• 로깅 오류, 경고(warning), 정보(info) 메시지는 모든 앱에서 발생한다.
• 대부분의 애플리케이션은 트랜잭션을 사용하여 데이터 변경을 처리한다. 트랜잭션은 데이터 일관성을 관리하는 중요한 메커니즘을 나타낸다. 이 주제는 13장에서 자세히 설명한다.
• 애플리케이션 대부분은 공통으로 발생하는 동일한 취약점에 보호 메커니즘을 사용한다.
• 애플리케이션 대부분은 유사한 방법으로 상호 통신한다.
• 애플리케이션 대부분은 캐싱 또는 데이터 압축처럼 성능을 향상하는 데 유사한 메커니즘을 사용한다.