라이브러리(Library)와 프레임워크(Framework)는 소프트웨어 개발에서 자주 사용되는 용어이다. 둘 다 우리의 개발인생을 윤택하게 하기위해 사용되지만, 이 둘에는 중요한 차이점이 있다.
제일 중요한 차이는 누가 누구를 컨트롤 하는가? 이다.
내가 코드를 컨드롤 하고 있는가?(결정을 하는 주체가 나 인가?)
아니면, 누군가 정해준 규칙을 따라가고 있는가?
라이브러리는 재사용 가능한 코드와 기능의 집합이다.
개발자가 필요에 따라 라이브러리를 선택적으로 가져와서 자신의 소프트웨어에 사용할 수 있다. 라이브러리는 특정 기능을 수행하는 함수, 클래스, 메서드 등의 모음이며, 개발자가 필요할 때 호출하여 사용할 수 있다.
개발자가 선택적으로 사용하는 것이기 때문에 쉽게 대체가 가능하다. 바꾼다고 프로젝트가 작살나진 않는다. 왜냐면 효율성을 위해 사용하는 것이니까.
라이브러리는 일반적으로 독립적으로 사용될 수 있으며, 개발자는 라이브러리의 일부 기능만 사용할 수도 있다.
예를 들어, 자바에서는 다음과 같은 라이브러리를 사용할 수 있다.
프레임워크는 라이브러리보다 더 큰 개념으로, 소프트웨어 개발을 위한 구조와 규칙을 정의한 전체적인 틀이리고 할수있다.
프레임워크는 개발자에게 특정한 구조를 강제하며, 어떤 기능이 어떻게 작동해야 하는지에 대한 규칙을 제공한다. 개발자는 프레임워크를 기반으로 자신의 애플리케이션을 구축하고 확장해 나가는 것이다.
내가 프레임워크를 부르는 것이 아닌, 프레임워크가 나를 부르는 것.
프레임워크가 어디에 코드를 넣어야 하는지 그런 규칙들을 나에게 알려준다.
개발자는 프레임워크가 제공하는 추상화된 인터페이스와 기능을 사용하여 애플리케이션을 개발한다. => 규칙과 문서가 따라온다.
예를 들어, 자바에서는 다음과 같은 프레임워크를 사용할 수 있다.