프레임워크란 의미로 본다면 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것이라고 정의되어있다. 프레임워크는 라이브러리와 달리 애플리케이션의 틀과 구조를 결정할 뿐 아니라, 그 위에 개발된 개발자의 코드를 제어한다. 프레임워크는 구체적이며 확장 가능한 기반 코드를 가지고 있으며, 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성되어 있다. 일단 프레임워크를 라이브러리의 연장선상에서 생각하는 것으로 이해를 시작해 보면 라이브러리의 정의는 자주 쓰일 만한 기능들을 모아놓은 유틸(클래스)들의 모음집으로 생각할 수 있다. 사용자와 실제 구현하고자 하는 기능 사이에 사용자로 하여금 구현하고자 하는 기능을 쉽게 쉽게 제공해주는 중간 계층이란 면에..