- API : Application Programming Interface
정의(interface) 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘.
내가 이해하기로는, "개발자가 복잡한 기능을 쉽게 사용하고 제어할 수 있도록 만들어진, 특정 기능을 가진 프로그래밍 인터페이스다!"라고 이해했다.. 개발자(사용자) 입장에서는 서버 내부 코드가 어떻게 생겼는지 신경 쓰지 않아도, 쉽게 DB 데이터나 기능을 클라이언트로 가져다 쓸 수 있다. 대체로 서버 DB가 갖고있는 특정 데이터를 JSON형식으로 받아와 쉽게 제어하는 방식으로 만드는 것 같다.
예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있다. 휴대폰의 날씨 앱의 개발자는 기상청이 제공한 API를 통해 기상청 시스템과 "대화(Interface)"하고 휴대폰 날씨 앱에 최신 날씨 정보를 표시한다.
API 아키텍처는 일반적으로 클라이언트와 서버 측면에서 설명된다. 요청을 보내는 애플리케이션을 클라이언트라고 하고 응답을 보내는 애플리케이션을 서버라고 하면, 기상청의 날씨 데이터베이스는 서버이고 모바일 앱은 클라이언트이다. API 명세 문서에는 모바일 앱 개발자가 기상청이 제공한 날씨 API를 사용할 수 있도록 클라이언트의 요청과 서버의 응답을 구성하는 방법에 대한 정보가 들어 있다.
API는 사용법에 대한 문서를 공개하지 않으면 API를 사용할 수 없다. 공개된 OPEN API라도 사용하려면 API KEY가 필요하거나, 호출 횟수가 많아지면 비용을 지불해야할 수도 있다. 또한 API는 UI와 다르게 플랫폼 사용자(개발자x)의 눈에 직접적으로 보이지 않는다.
예시 : 네이버 공유하기 API 명세
프라이빗 API
퍼블릭 API
파트너 API
복합 API
참고자료 : https://aws.amazon.com/ko/what-is/api/
https://dev-dain.tistory.com/50