API 란?
API란 개발자와 API 제공자 사이에 프로그램을 작성하기 위해 만든 규약(Protocol)이자 계약(Contract)이다. 더 자세히 들어가면 API는 Application Programming Interface의 약자로 개발자가 Application을 Programming하기 위해 만든 인터페이스이다. 개발자는 API 제공자가 정의한 프로토콜을 이용해 API 제공자가 정의한 기능을 사용할 수 있다.
*인터페이스 : 외부에 공개되는 프로토콜
헷갈리지 말아야 할 것은 API는 인터페이스이므로 API는 그 자체로는 실제 어떻게 동작하는지에 대한 구현이 들어가지 않으며, API 제공자가 구현을 한다. 개발자는 API에서 제공하는 기능을 가져다 쓸 뿐이고, API 제공자는 API를 구현해 실제로 돌아가게 만드는 역할을 한다.
요약하면 API에는 API, API 제공자, API 사용자(개발자) 3가지 구성요소가 있으며, API를 정의한 후에 API 제공자가 개발자와 약속한 규약에 맞추어 구현을 하고 개발자는 API을 사용한다.
API의 제공자
API의 제공자는 다양하다. 우리는 보통 우리가 자주 접하는 REST API나 GraphQL쿼리에 대한 응답을 제공하는 서버 또한 API 제공자에 속하며, 안드로이드 프로그래밍을 할 때 사용하는 Jetpack Library들은 구글이 만들어낸 API이고 IOS 프로그래밍을 할 때 사용하는 UIKit의 경우는 Apple이 만들어낸 API이다.
API의 의의
API를 사용해 개발자들은 추상 레이어에서의 개발이 가능해진다. 추상 레이어에서 개발이 가능하다는 것은 내부에 어떻게 구현되어있는지 상관하지 않고 공개된 인터페이스만을 이용해 개발이 가능해짐을 뜻한다. 이는 이후 API의 내부 구현이 바뀌더라도 정해진 결과값만을 받으면 되므로 개발 단에서는 변경을 하지 않아도 됨을 뜻한다.