라이브러리(library)
는 특정 함수나 기능들을 모듈화 하여 모아둔 것입니다. 라이브러리는 그 자체로는 실행시킬 수 없고 라이브러리를 포함하는 프로그램이나 API의 호출 등을 통해서 실행이 가능합니다. 이미 기능들이 구현되어있고 그것들을 가져와서 사용하는 것이기 때문에 코드의 재사용성, 빠른 작성 등의 이점을 취할 수 있습니다.
라이브러리에는
정적
라이브러리와 동적
라이브러리가 있습니다.
정적 라이브러리
는 컴파일러가 소스 파일을 컴파일할 때 참조되는 라이브러리입니다. 컴파일시에 참조되므로 실행 파일에 포함되어 설치됩니다. 동적 라이브러리
는 프로그램을 수행하다 해당 기능이 필요할 때만 참조하는 모듈입니다. 정적 라이브러리처럼 실행파일에 포함되지 않아 실행 파일 용량이 줄어드는 장점이 있습니다.
API
라는 단어도 종종 들을 수 있는데, Application Programming Interface
라는 단어로, 해석하면 응용 프로그래밍 인터페이스 입니다. API
는 프로그램에 대해 어떤 사양적인/설계적인 면만을 지원합니다. 이런 API
들을 사용할 수 있도록 구현해 놓은것이 라이브러리라고 할 수 있습니다.
프레임워크
는 개발에서 문제 해결을 위한 구조입니다. 보통 프레임이라고 하면 어떤 틀을 떠올리는데, 그 틀에 따라서 완성품을 만들죠. 이처럼 프레임워크
는 문제 해결을 위해 틀에서 완성품을 이끌어내는 것이라고도 할 수 있습니다.
처음 두 용어를 접하게 되면 라이브러리와 별 차이가 없는 것 같지만, 프레임워크가 좀 더 포괄적인 개념입니다. 라이브러리
는 기능만을 합친 것이라면 프레임워크
는 라이브러리가 포함된 클래스까지 정의되어 제공합니다. 이때문에 라이브러리
는 기능 자체만을 가지고 자유롭게 활용할 수 있지만, 프레임워크
는 프레임워크에서 제공하는 사용법에 따라서 이용해야 하죠.