API란?
- 프로그램들이 서로 상호작용하는 것을 도와주는 매개체
- 클라이언트로부터 요청(Resquest)을 받으면 서버는 제공할 데이터를 응답(Response)한다.
- 데이터의 형태는 HTML, XML, JSON 등 다양하다.
REST API란?
- REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일
- URI와 HTTP프로토콜을 기반으로 한다. HTTP프로토콜 덕분에 '단순함'이 핵심
- 단일한 인터페이스를 사용하기 때문에 해당 API를 사용하는 애플리케이션들이 동일한 경로를 통해 접속하여야 하고, 그 방식이 단순하게 된다.
- 웹에 최적화 되어있고 데이터 포맷이 JSON이기 때문에 브라우저들간 호환성이 좋다.
SOAP API 란?
- SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡하다.
- 보안수준이 엄격. SSL도 지원하고 , WS-Security라는 자체 표준 보안기능도 가지고 있다.
- 은행용 모바일 앱처럼 보안수준이 높아야하거나, 신뢰할 수 있는 메시징 앱, ACID를 준수해야하는 경우라면 SOAP 방식이 선호
REST vs SOAP
1. 페이로드(전송되는 데이터)를 처리하는 방식의 차이
REST는 HTTP와 JSON을 사용하기 때문에 페이로드의 무게를 가볍게 할 수 있다.
SOAP는 XML에만 의존하기 때문에 REST에 비해 무겁다.
2. 보안을 다루는 방식의 차이
SOAP는 WS-Security를 지원하는데, WS-Security에서는 전송 레벨에서 아주 뛰어나며 SSL보다도 조금 더 복잡하기 때문에 기업용 보안 도구에 통합하는데 보다 이상적이다.