프로그램을 구성하는 한 부분이다. 컴포넌트, 구성요소, 부품 등이 있다.
모듈화하여 만들어진 기능을 제어, 제공하는 인터페이스이다.
프로그래머가 일정하게 관리할 수 있는 부분들만 노출시켜 시스템이 동작하는 방식에 관한 내부의 세세한 부분을 숨긴다.
프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것이다. 정적, 동적(링크, 로드) 라이브러리로 나뉜다.
정적 라이브러리
컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈이다. 빌드 시에 라이브러리가 제공하는 코드를 실행파일에 넣는 라이브러리이다. 시스템환경이 변해도 앱에는 아무 영향이 없으며 완성된 앱을 안정적으롯 ㅏ용 가능하다. 사용하는 모든 오브젝트 코드를 실행파일에 내장하므로, 메모리에 로드되는 앱 코드가 많아진다.
동적 라이브러리
프로그램 수행 도중 해당 모듈이 필요할 때 호출해 사용하는 프로그램 모듈이다. 앱을 빌드할 떄 존재하지 않던 라이브러리도 사용 가능하다. 플러그인 형식으로 경로를 설정해야 하며, 설치가 따로 필요하다.
정의된 API를 제공하는 소프트웨어 라이브러리의 모음이다.
애플리케이션의 틀과 구조를 결정할 뿐만 아니라, 그 위에 개발된 개발자의 코드를 제언한다.
소프트웨어 개발 도구 모음이다.
개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API 등이 있다.
소프트웨어 프로그래머가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴포터 시스템, 게임기, 운영체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합
| API | SDK | |
|---|---|---|
| 목적 | 소프트웨어 연결 및 통합 | 다양한 개발 도구 포함 |
| 형질 | 가볍고 빠르며 전문화되어 있음 | 견고함. 많은 유틸리티를 포함 |
| 사용 | 애플리케이션에 특정 기능을 추가하는데 사용 | 새로운 애플리케이션을 생성, 하나의 패키지로 많은 기능을 추가하는데 사용 |
Library < API, Framework < SDK

프레임워크 코드가 프로그래머 코드와 라이브러리 코드를 호출하고, 프로그래머 코드가 라이브러리를 호출한다.

프레임워크는 애플리케이션의 흐름을 통제하고, 라이브러리는 흐름을 통제하지 않는다.
출처
API vs SDK vs Framework vs Library
API - 노마드코더
SDK, API의 개념과 차이점
API vs SDK
Library vs API
Library vs Framework - 노마드코더
API vs Library vs Framework - 우아한Tech