출처. 스프링 부트 3 백엔드 개발자 되기 (자바편) p44
라이브러리는 애플리케이션 개발이 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음이다. 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위한 도구 역할을 한다.
예를 들어 'logback'과 같은 로그 라이브러리를 개발자가 의존성에 추가하기만 하면, 구현하지 않고도 프로젝트에서 사용할 수 있게 된다.
따라서 개발자는 복잡한 코드를 직접 작성하지 않아도 되므로 원하는 기능을 더 빠르게 개발할 수 있다. 추가로 라이브러리는 독립적이므로 라이브러리끼리 영향을 크게 주지 않는다.
프레임워크는 소프트웨어 개발을 수월하게 하기 위한 개발 환경을 말한다. 프레임워크는 말 그대로 일하기 위한 틀을 제공한다. 개발자는 정해진 틀에서 개발하며 높은 효율성을 가진다.
예시로는 우리가 늘 사용하는 스프링 부트 프레임워크가 있다. 백엔드 애플리케이션을 만들 때 그 구조와 규칙을 제공한다. 개발에 필요한 설정을 최소화하고, 개발자가 구현해야 할 기본적인 틀을 제공하는 방식이다.
라이브러리와 프레임워크는 둘 다 개발자가 소프트웨어를 만들 때 필요한 기능을 제공하는 도구라는 공통점이 있지만 사용 목적에 따라 차이가 있다. 프레임워크는 애플리케이션을 개발할 때 전체적인 구조를 잡기 위해 사용하는 것이고, 라이브러리는 개발하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것이다.
💬 "프레임워크와 라이브러리는 모두 개발자가 소프트웨어를 만들 때 필요한 기능을 제공하는 도구입니다. 하지만 그 목적에 차이가 있습니다. 프레임워크는 애플리케이션의 전체적인 구조와 규칙을 제공하는 개발 환경으로 개발자가 정해진 틀 안에서 작업해야 합니다. 예를 들어, 스프링 부트는 백엔드 애플리케이션을 만들 때 필요한 기본적인 구조를 제공합니다. 반변, 라이브러리는 특정 기능을 구현하기 위한 코드 모음입니다. 개발자가 필요한 기능만을 선택해 사용하며, 예를 들어 'logback'과 같은 로그 라이브러리는 로그 관련 기능을 구현할 때 유용하게 사용됩니다. 프레임워크는 '틀'을 제공하고, 라이브러리는 '도구'를 제공하는 차이가 있습니다."