● API
- Application Programming Interface
- 어플리케이션 간의 서비스 계약
- 프로그래밍에서 프로그램 작성을 위한 일련의 서브프로그램
- 프로토콜 등을 정의해 상호 작용을 하기 위한 인터페이스 사양
- API는 소프트웨어 개발에서 호환성을 위해 지켜야 하는 추상적인 원칙
- 여러 기업과 개발자들이 서로의 프로그램이 호환되도록 합의한 원칙
- 프로그램에 플러그인 형태로 설계된 API가 적용되면, 이미 작성되어 컴파일되고 완성된 프로그램의 수정없이 프로그램의 기능을 추가하는 것이 가능하다
- Internet Explorer, 파이어폭스, 크롬과 같은 웹 브라우저 프로그램의 플러그인, 애드온과 같은 것이 바로 이러한 형식의 플러그인 API를 사용해 구현된 것이다
- API는 소스 코드 수준에서 정의되는 인터페이스라고 할 수 있다
- 라이브러리는 이러한 API들을 기반으로 개발자에게 기능을 제공할 수 있도록 실제 구현된 구현체
- 라이브러리는 실제 이를 바탕으로 구현된 결과물
- 대개의 경우 독립된 응용 프로그램(Application) 간의 상호작용은 '이미 구현된 코드'의 재사용이기 때문에 라이브러리는 다시 쓰기 위해 미리 짜놓은 코드 뭉치들이고, API를 기반으로 구현되었다고 볼 수 있다
- API가 실제 기능 구현체인 라이브러리와 함께 제공되는 경우도 있으며,
- 이 경우를 SDK(Software Development Kit)라고 한다
- SDK는 일반적으로 API, 라이브러리와 함께 프로그램을 개발하는데 필요한 여러 보조 프로그램을 포함한다
- 항공편을 예약하기 위해 휴대 전화에서 Expedia와 같은 앱을 가져 오거나, Slack을 Google 드라이브에 연결하거나, 친구의 Facebook 페이지에 Instagram 사진을 게시하는 경우, 공유를 용이하게하는 API를 사용하고 있다
refer to
https://brunch.co.kr/@operator/65