1. AWS APIGATEWAY - HongSunggwan/STUDY GitHub Wiki

1. API 란

API의 개념

  • api(application programming interface)는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
  • api는 당사자들 간 계약을 나타내는 도큐멘테이션을 갖춘 계약으로 비유되기도 합니다. 한쪽 당사자가 특정한 방식으로 구성된 원격 요청을 보내면 다른 쪽 당사자의 소프트웨어가 이에 응답하는 방식이기 때문입니다.

API의 종류

SOAP(Simple Object Access Protocol)

  • SOAP는 아키텍쳐로 정의된 REST와는 달리 자체가 프로토콜임
  • SOAP는 보안이나 메세지 전송 등에 있어서 REST보다 더 많은 표준들이 존재하기 때문에 REST보다 복잡하다.
  • REST보다 많은 표준들로 인하여 과도한 오버헤드가 발생하지만 보안, 트랜잭션, ACID(원자성, 일관성, 고립성, 지속성) 등을 준수해야 하는 기업의 입장에서는 더 적합한 방식이 될 수 있음
  • SOAP는 웹서비스 시나리오보다는 기업용 애플리케이션에 더 이상적으로 볼 수 있음
  • REST에서는 표준화된 메시징 시스템이 갖춰져 있지 않으며, 통신 장애가 있을 경우 재시도를 통해서만 조치할 수 있습니다. 반면 SOAP 표준에는 성공/반복 실행 로직이 규정되어 있기 때문에, SOAP API를 통해서 통신을 할 때 처음부터 끝까지 신뢰성을 제공합니다.
  • SOAP 표준에는 ACID 준수에 관한 사항이 있습니다. ACID를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜주지요. ACID는 데이터 일관성을 위한 다른 방식들보다도 더 보수적이기 때문에, 금융 정보 등의 민감한 데이터를 주고받을 때 일반적으로 많이 사용됩니다.

REST(Representational State Transfer)

  • REST는 네트워크를 통하여 컴퓨터들 간의 통신을 지원하는 아키텍쳐 스타일
  • REST 아키텍쳐의 제약 조건을 준수하는 API를 RESTful API라고 한다.
  • RESTful API는 클라이언트 <-> 서버 모델로 구축됨을 의미
  • RESTful API는 URL과 HTTP 프로토콜을 기반으로 하며 데이터 포멧으로는 JSON을 주로 사용한다.
  • RESTful API 구조는 REST 구조에서의 리소스는 그들 의 고유한 URI를 가지게 된다.
  • RESTful API는 HTTP의 기본 메소드인 GET/PUT/POST/DELETE만으로 접근할 수 있다.

REST와 SOAP의 차이점