단일 문제 해결을 위한 단일 도구. 상세 구현체를 제공하고, 개발자는 필요한 기능을 위해 라이브러리를 가져와 코드와 합친다. 개발자는 자신의 코드와 합쳐지도록 개별 설정 및 코딩이 필요함. 개발자의 역량에 따라 라이브러리가 제대로 기존 어플리케이션 코드에 합쳐지지 않을 가능성이 있다.
라이브러리 사용에 대한 책임과 모든 제어권을 가짐 : 흐름 제어권 = 개발자 몫
개발자가 자주 사용하는 코드, 함수, 클래스 등을 모아둔 것을 라이브러리 라고도 함. 주로 현업에서 자주 사용하는 기능들을 쓰기 쉽게 간략화 해서 저장 해 놓기도 한다.
다수 문제 해결을 위한 도구 집합. 개발에 필요한 라이브러리들을 한데 묶어, 개발 편의성을 제공한다. 다수의 인터페이스를 제공하기도 하는데, 개발을 위한 껍데기를 제공하며, 직접 구현은 라이브러리를 교체하거나 개발자가 직접 구현한다.
이러한 특성 때문에, 프레임워크에 라이브러리를 꽂는다고도 표현함
Gameboy(framework)에 카트리지(라이브러리)를 꽂는다
개발자의 역량이 크게 중요하지 않고, 쓰고 싶은 라이브러리가 있으면 그냥 가져다가 꽂으면 그만. 이렇나 특성 때문에, Inversion of Control, IoC(올림픽위원회 아님 제어권의 역전)가 발생함. 흐름 제어권이 개발자가 아닌 프레임워크의 몫이 됨.
📑 출처 및 참조
[ASAC] 강의 자료