목표 : 웹 API의 발전 과정에서 SOAP에서 REST로의 전환이 일어난 이유와 그 장단점에 대해 설명하세요.
출처 : https://drg2524.tistory.com/138, https://july7k.tistory.com/166
1️⃣SOAP → REST 전환
SOAP
SOAP은 웹 서비스 간의 통신에 사용되며, XML 기반의 메시지 교환 프로토콜이다. 또한, 엄격한 통신 규칙을 정의한다. 데이터 교환의 모든 측면을 제어하는 몇 가지 관련 표준이 있습니다.
웹 서비스 보안(WS-Security)은 고유 식별자로 토큰을 사용하는 것과 같은 보안 조치로 웹 서비스 간 통신을 보호하고 데이터의 안전성과 기밀성을 유지할 수 있다.
웹 서비스 주소 지정(WS-Addressing)에는 라우팅 정보를 메타데이터로 포함해야 함
WS-ReliableMessaging은 SOAP 메시징의 오류 처리를 표준화함
웹 서비스 기술 언어(WSDL)로 SOAP 웹 서비스의 기능과 메세지 교환에 대해 설명한다.
WSDL은 웹서비스의 API를 기술하고 클라이언트가 서비스를 호출하는데 필요한 정보를 제공한다.
XML기반 메세지 포맷 : XML을 사용하여 데이터를 표현한다.
메시지 구조로 헤더, 바디 부분이 있다. 헤더에는 메시지에 대한 부가적인 정보를 포함하고 바디에는 실제 데이터가 포함되어있다.
REST
웹 리소스를 사용하여 클라이언트와 서버 간의 통신을 수행하는 방법을 규정한 아키텍처이며, 네트워크 상에서 분산 시스템과 웹 서비스를 구축하는 데 많이 사용되고 가장 널리 사용되는 웹 서비스 스타일 중 하나입니다..
리소스 중심으로 URL을 설계한다.
HTTP메서드로 리소스를 조작한다.
GET : 리소스 조회, POST : 새로운 리소스 생성, PUT/PATCH : 기존 리소스 수정, DELETE : 리소스 삭제
JSON, XML데이터 형식을 사용한다.
계층구조로 서비스의 확장성과 유연성이 증가한다.
이유
XML의 사용으로 인한 오버헤드와 복잡성 때문에, 간단하고 가벼운 웹 서비스에는 REST와 같은 다른 프로토콜이 선호되고 있다.
2️⃣ 장단점
SOAP
장점 : 보안기능이 좋다. 플랫폼과 프로그래밍 언어에 독립적이며 표준 통신규약이 있다. 분산환경에 적합하며 에러 처리에 대한 내용이 기본으로 내장되어있다.
단점 : 복잡한 구조로 오버헤드가 있으며 확장이 힘들다. 무겁고 속도가 느리다. 개발 난이도가 높다.
REST
장점 : 플랫폼과 프로그래밍 언어에 독립적이며 빠르다. 간결하고 추가적인 메시징 계층이 존재하지 않는다.
단점 : 보안, 정책 등에 대한 표준이 없으며 HTTP 통신 모델만 지원한다.