📌 API
⭐ 개념
- Application Programming Interface
- 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법
- 컴퓨터 사이에 있는 중계계층
- 프로토콜(HTTP/HTTPS), 메서드(GET/POST), 데이터타입(XML/JSON)
💡 웹 API
- 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세
- 과거에는 API가 라이브러리, 프레임워크에 대해 설명하는 명세서 였지만, 현재는 WEB API를 일컫는다.
⭐ 작동방식
⭐ 장점
- 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다.
- 사용자는 해당 서비스가 어떻게 구현되는지 알 필요 없다.
- OPEN API의 경우 개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있다.
⭐ 종류
private
: 내부적으로 해시키를 사용하여 통신, 기업이 API를 최대한으로 제어할 수 있음
public
: 많은 트래픽 방지를 위해 하루 요청수의 제한 등 제약사항이 존재, 제3자가 API와 상호작용하는 애플리케이션을 개발하여 혁신을 끌어낼 수 있음
💡 카카오 로그인 API
https://developers.kakao.com/docs/latest/ko/kakaologin/common
💡 SOAP
- 웹 API가 확산됨에 따라, 정보 교환을 표준화하기 위해 SOAP(Simple Object Access Protocol)라는 프로토콜 사양이 개발되었다.
- SOAP로 설계된 API는 XML 메시지 형식을 사용하며 HTTP 또는 SMTP를 통해 요청을 수신한다.
- SOAP를 사용하면 더 간편한 방법으로 애플리케이션을 다양한 환경에서 실행하거나 다양한 언어로 작성하여 정보를 공유할 수 있다.
💡 REST
- REST 아키텍처의 제약 조건을 준수하는 웹 API를 RESTful API
- SOAP는 프로토콜이지만 REST는 아키텍처 스타일이라는 근본적인 차이가 있으며 따라서 RESTful 웹 API에는 공식적인 표준이 없다.
- SOAP보다 더 많이 사용되고 있다.
💡 GraphQL
- 쿼리 언어이자 서버측 런타임으로 REST의 대안
- 클라이언트에게 요청한 만큼의 데이터를 제공하는 데 우선순위를 둠
- 개발자가 단일 API 호출로 다양한 데이터 소스에서 데이터를 끌어오는 요청을 구성할 수 있도록 지원