라이브러리(Library)와 프레임워크(Framework)는 모두 소프트웨어 개발에 사용되는 도구이다.
- 특정기능을 구현하는데 필요한 기능을 제공하고
- 개발자가 프로그램의 제어 흐름을 주도합니다. 개발자는 필요한 기능을 호출하여 사용하고, 필요하지 않은 기능은 사용하지 않습니다.
- 전체적인 애플레케이션의 구조를 결정하는데 펄요한 코드를 제공하고
- 개발자가 프로그램의 제어 흐름을 결정하는 것이 아니라, 프레임웨크가 제공하는 규칙에 따라 개발자가 코드를 작성하고 실행합니다.
예를 들어, 개발자가 데이터베이스에 연결하는 데 필요한 기능을 제공하는 라이브러리는 개발자가 직접 데이터베이스에 접속하고, 쿼리를 수행하는 코드를 작성할 수 있습니다. 반면에 프로젝트에서 사용한 spring data JPA 프레임워크는 데이터베이스와의 연결, 쿼리 수행 등의 기능을 이미 구현하고, 개발자는 프레임워크가 제공하는 규칙에 따라 모델 클래스를 정의하고, 데이터를 조회하는 코드를 작성합니다.