API는 애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻한다!
API는 두 소프트웨어 구성요소가 서로 통신할 수 있게 해주는 메커니즘이다
애플리케이션
이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타내고,
인터페이스
는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다
이 계약
은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다
"한 쪽 당사자가 특정한 방식으로 구성된 원격 요청을 보내면 다른 쪽 당사자의 소프트웨어가 이에 응답하는 방식"
API 호출은 API 요청이라고도 하며, API 사용을 트리거하는 API에 보내는 메시지
이다
기상청에 있는 날씨 정보를 가져오는 API를 사용하여 웹 사이트를 만든다고 가정해보자.
내가 개발할 웹 사이트에서는 날씨 정보를 제공해주기 위해 API 호출을 기상청에 전송한다(예- 인천 서구). 기상청의 API 서버에서는 이 메시지를 수신하고 웹 사이트에서 요청한 "인천 서구"의 날씨와 관련된 정보를 회신해 준다.
API 요청 | API 응답 |
---|---|
"인천 서구" | 인천 서구의 날씨 정보 |
"서울 마포구" | 서울 마포구의 날씨 정보 |
(이건 매우매우 단순화된 예시이다! 실제 API 요청, 응답, 스키마는 더 복잡하다)
API 엔드포인트는 API 응답이 시작되는 곳
이다!
위의 예시에서 API 연결의 클라이언트(요청자)는 나의 웹 사이트이고 엔드포인트는 API를 제공해주는 서버이다.
나의 API 호출은 API 서버가 담당하는 특정 URL로 이동해야만 응답을 받을 수 있다
API 통합은 API를 사용해서 두 개 이상의 애플리케이션을 결합
하는 것이다
한 애플리케이션이 다른 애플리케이션의 기능을 활용할 수 있도록 하며, 일반적으로 두 애플리케이션 또는 데이터베이스 간에 데이터를 동기화하는 데에도 사용된다
운영 체제부터, 소프트웨어 라이브러리까지 컴퓨터 코드와 관련된 모든 것에는 API가 있을 수 있다
웹 API
는 API 중에서도 특히 인터넷을 통해 엑세스하는 웹 애플리케이션에서 사용하기 위한 것이다 (모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아니다)
API를 내부에서만 사용할 수 있도록 하며, 기업이 API를 최대한으로 제어할 수 있다
API가 모두에게 제공되며, 제 3자가 API와 상호 작용하는 애플리케이션을 개발할 수 있다
API를 특정 비즈니스 파트너와 공유하고, 품질 저하 없이 추가 수익원을 창출할 수 있다
API가 생성된 시기와 이유에 따라 API는 네 가지 방식으로 작동할 수 있다
거의 REST API
를 사용한다고 보면 된다!
다음 글에서는 REST API에 대해서 더 자세히 알아보면 될 것 같다 :)