자주 사용되는 기능들을 모아 재사용할 수 있도록 정리된 모음집이다
자주 사용되는 로직을 재사용하기 편리하도록 잘 정리하여 모아둔 일종의 기능 집합이다. 반복적인 코드 작성을 없애기위해 언제든지 필요한 곳에 호출하여 사용할 수 있도록 class나 function으로 구성되어져 있다.
특정 공간에 들어가서 사용한다는 느낌이 더 강하다고 말할 수 있으며, 라이브러리 자체를 가져가 사용하고 호출하는 용도로 사용된다.
프로그램의 기본 구조나 뼈대이다
프레임워크는 필수적인 코드나 알고리즘과 같은 어느 정도의 구조를 제공해준다.
완성된 제품이 아닌 완성된 제품을 만들기 위해 필요한 부품과 메뉴얼을 제공하는 등의 도움을 주기 때문에 프로그램을 개발할 때 개발자는 이 프레임워크의 뼈대 위에서 코드를 작성하면 더욱 편리하다.
내가 생각하기에 프레임워크와 라이브러리의 가장 큰 차이는 흐름(Flow)에 대한 제어 권한이 어디에 있냐의 차이인 것 같다.
프레임워크는 전체적인 흐름을 자체적으로 가지고 있으며, 프로그래머가 그 안에 필요한 코드를 작성하는 반면에 라이브러리는 사용자가 흐름에 대해 제어를 하며 필요한 상황에 가져다 쓰는 것이다.