라이브러리는 개별자가 만든 클래스에서 호출하여 사용하지만, 프레임워크는 반대로 프레임워크의 클래스가 개별자가 만든 클래스를 부른다. 프레임워크는 공통적으로 사용되는 클래스를 정형화하여 재사용 가능하게 만들어놓았으며 개발자는 이 클래스를 상속받아서 자신의 클래스를 구현하는 경우가 많다.

    라이브러리는 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식이지만, 프레임워크의 패키지 안에 있는 클래스들은 서로 유기적인 연관 관계를 가지고 있어 특정한 문제를 해결하는데 통합적으로 사용된다 예를 들어 데이터 저장을 위해서는 Storable이라는 인터페이스와 Resource Manager, ConnectionManager, RDB, ListDB, ORmapper 클래스 등이 한 묶음으로 사용되며 ResourceManager라는 클래스 하나만 단독으로 사용되지 않는다. 나아가 특정 애플리케이션 의 구현 방식에서 프레임 워크 특유의 규칙(convention)을 요구하기도 한다. 예를 들어. Client라는 객체를 만들 때 OR  매핑을 위한 DBClient라는 클래스를 개발자가 정의해야 하는 식이다. 이런 규칙은 기존의 라이브러리를 사용할 떄는 보지 못하는 것이기도 하다.

    프레임워크는 하나의 유기체를 만드는 과정으로 하부 구조를 구성하며, 상부 구조인 비즈니스 기능을 지원한다.

    Posted by 부니기