API(Application Programming Interface)란?
API란?
소프트웨어 애플리케이션이 서로 통신하여 데이터, 특징 및 기능을 교환할 수 있도록 하는 일련의 규칙 또는 프로토콜
API는 개발자가 처음부터 개발하는 대신 다른 애플리케이션의 데이터, 서비스 및 기능을 통합할 수 있도록 하여 애플리케이션 및 소프트웨어 개발을 단순/가속화한다.
API를 사용하면 필요한 정보만 공유할 수 있고 다른 내부 시스템 세부 정보는 숨길 수 있으므로 시스템 보안에 도움이 된다. 서버 또는 디바이스는 데이터에 완전히 노출할 필요가 없으며, API를 사용하면 특정 요청과 관련된 작은 데이터 패킷을 공유할 수 있다.
API 작동 방식 이해하기
예시로 제3자 결제 방식을 살펴보면, 사용자가 전자상거래 사이트에서 제품을 구매할 때 'Paypal로 결제' 또는 타사 시스템을 사용하라는 메세지가 표시된다. 이 기능은 API를 사용해 연결한다.
- 구매자가 결제 버튼을 클릭하면 정보를 검색하기 위한 API 호출이 전송된다 (요청). 이 요청은 API의 URI(Uniform Resource Identifier)를 통해 애플리케이션에서 웹 서버로 처리되며 요청 동사, 헤더 및 요청 본문이 포함되기도 한다.
- API는 제품 웹 페이지로부터 유효한 요청을 받은 후 외부 소프트웨어 또는 웹 서버, 예시와 같은 경우에는 제3자 결제 시스템으로 호출한다.
- 서버는 요청된 정보와 함께 API에 응답을 보낸다.
- API는 데이터를 초기 요청 애플리케이션 (예시의 경우 웹 사이트)으로 전송한다.
데이터 전송은 사용 중인 웹 서비스에 따라 다르지만 요청 및 응답은 모두 API를 통해 발생한다. API는 컴퓨터 또는 애플리케이션 내에서 데이터를 교환하며 사용자에게 원활한 연결로 나타난다.
API 유형
API는 데이터 API, 운영체제 API, 원격 API, 웹 API 등 사용 사례별로 분류할 수 있다.
- 데이터(또는 데이터베이스) API
애플리케이션과 데이터베이스 관리 시스템을 연결하는 데 사용된다.
- 운영 체제(로컬) API
앱이 운영 체제 서비스 및 리소스를 사용하는 방법을 정의하는 데 사용된다.
- 원격 API
다양한 디바이스의 애플리케이션이 상호 작용하는 방식을 정의하는 데 사용된다.
- 웹 API
HTTP 프로토콜을 사용하여 인터넷을 통해 데이터 및 기능을 전송할 수 있도록 하는 데 사용된다.
오늘날 대부분의 API는 웹 API이다. 웹 API는 인터넷을 통해 애플리케이션의 데이터와 기능을 노출하는 원격 API 유형이다. (API가 프로토콜을 사용하여 외부 리소스를 조작하는 것)
REST
REST는 일련의 웹 API 아키텍처 원칙이다. REST API는 특정 REST 아키텍처 제약 조건을 준수하는 API로 GET, PUT, HEAD, DELETE와 같은 HTTP 요청을 사용해 리소스와 상호 작용한다. REST를 사용하면 데이터를 리소스로 활용할 수 있으며 각 리소스는 고유한 URI로 표시된다. 클라이언트는 해당 URI를 제공하여 리소스를 요청한다.