API란?
고유한 기능을 가진 소프트웨어가 서로 통신하는 방법
시스템 간의 '대화'
API문서 : 서로 통신하는 법과 두 시스템 간의 요청과 응답을 구성하는 방법을 개발자가 서술해놓은 문서
API는 공개되어 있지만 그중에서 개발자가 다른 시스템과 대화를 할 때, 자신이 소통이 되길 원하는 정보만 정할 수 있다. 이런 정보가 api문서에 작성되어 있다.
RPC
WebSocket
REST
GraphQl
REST API (Representational State Transfer)
- 클라이언트가 서버 데이터에 액세스하는데 사용할 수 있는 GET,PUT,DELETE 등의 함수 집합을 정의하고 클라이언트와 서버는 HTTP를 사용해 데이터를 교환
- 웹 서비스와 모바일 애플리케이션 경량화의 필요에 맞춘 아키텍처 원칙 세트, 가이드라인이기 때문에 권장사항 구현은 개발자에게 달려 있다.
- 데이터 요청은 HTTPS을 통해 이루어지고, 요청을 수신하면 REST용으로 설계된 HTML, XML, 일반 텍스트, JSON과 같은 다양한 형식으로 메시지를 반환 가능
- 서버가 요청간에 클라이언트 데이터를 저장하지 않는 무상태 특징을 가짐.
SOAP API
- World Wide Web Consortium(W3C)에서 유지 관리하는 공식 프로토콜
- 다른 언어로 다른 플랫폼에서 빌드된 애플리케이션이 통신할 수 있도록 설계된 최초의 표준 프로토콜이다.
- HTTP, SMTP, TCP 등의 다양한 애플리케이션 레이어 프로토콜로 처리가 가능하다.


참고자료: https://aws.amazon.com/ko/compare/the-difference-between-soap-rest/
참고자료: https://www.redhat.com/ko/topics/integration/whats-the-difference-between-soap-rest