프레임워크는 원하는 기능 구현에만 집중하여 개발할 수 있도록 형태와 기능 / 뼈대와 기반 구조가 갖춰진 형태다.
개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능을 정해진 룰에 따라 뼈대 위에서 코드를 작성해야 한다. 사용자는 프레임워크가 정해준 방식대로 클래스, 메서드를 구현하면 된다.
쉽게 설명하면 완성된 제품을 만들기 위해 개발자를 도와주는 역할을 한다고 생각하면 된다.
라이브러리는 어떤 기능을 구현하기 위해 이미 만들어진 함수들의 집합이다. 필요한 함수를 불러서 자유롭게 사용할 수 있는 일종의 도구이다.
프레임워크와 라이브러리의 차이점은 흐름의 제어를 누가 지니고 있냐의 차이다.
프레임워크는 전체적인 흐름을 자체적으로 가지고 있어 프로그래머는 그 안에서 필요한 코드를 작성한다.
반면에 라이브러리는 프로그래머가 전체적인 흐름을 가지고 있어 라이브러리를 자신이 원하는 기능을 구현하고 싶을 때 가져다 사용할 수 있다.
라이브러리는 가위, 칼, 국자 같은 도구이다. 요리를 완성하기 위해 자르고 썰 수 있게 도움을 준다. 만약 도구가 없다면 다른 도구를 선택해서 어떻게든 요리를 만들어낼 수 있다.
프레임워크는 밀키트와 같다. 사람이 직접 뜯어서 정해진 요리를 하는 것과 같아서 래시피가 정해져 있는 레시피에 맞춰서 잘 만들기만 하면 된다.
https://velog.io/@nemo/framework-library-gfreqbgx