API 종류(3) - SOAP

JWH·2024년 9월 5일

API 알아보기

목록 보기
4/4
post-thumbnail

SOAP(Simple Object Access Protocol) 란?

SOAP는 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환화는 프로토콜이다
  • 즉, 서로 다른 service들간의 연동을 목적으로 상호 이해 가능한 포맷의 메세지를 송수신함으로써 원격지에 있는 서비스객체나 API를 자유롭게 사용하고자 하는 기업의 요구에서부터 탄생한 프로토콜이다.

SOAP 특징

  • 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다.
  • 원격 프로시져 호출(Remote Procedure Call)패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 된다.

SOAP 장점

  • 기존 원격 기술들에 비해서 프록시와 방어벽에 구애 받지 않고 통신이 가능하다.
  • 플랫폼과 프로그래밍 언어에 독립적이다.
  • 웹 서비스를 제공하기 위한 표준(WSDL, UDDI 등)이 잘 정립되어 있다.
  • 에러 처리에 대한 내용이 기본적으로 내장 되어 있다.
  • 분산 환경에 적합하다.

SOAP 단점

  • 복잡한 구조로 인해 오버헤드가 있기 때문에 SOAP의 확장을 저해한다.
  • REST에 비해 상대적으로 무겁고 속도가 느리다.
  • 개발 난이도가 높아 개발 환경의 지원이 필요하다.

WSDL 란?

  • 웹 서비스를 설명하기 위한 XML 표기법으로서 웹 서비스 요청 작성 방법을 클라이언트에 알려주며 웹 서비스 제공자가 제공하는 인터페이스를 설명한다.
  • WSDL 정의는 논리 인터페이스와 웹 서비스의 물리적 세부사항을 지정하는 개별 섹션으로 구분된다.
  • 세부사항에는 HTTP 포트 번호와 같은 엔드 포인트 정보와 SOAP 페이로드 표시 방법과 사용되는 전송을 지정하는 바인딩 정보가 포함된다.

UDDI 란?

  • WSDL의 등록, 탐색, 바인딩을 위한 레지스트리 서비스이다.
  • 웹 서비스를 등록하고 검색하기 위한 저장소로서 웹서비스를 등록하고 검색할 수 있는 일종이 웹 서비스 전용 검색엔진이라고 할 수 있다.

SOAP의 동작 원리

  1. 서비스 요청자가 SOAP로 인코딩하여 웹 서비스 요청을 서비스 제공자에게 전달한다.
  2. 서비스 제공자는 이를 디코딩하여 적절한 서비스 로직을 수행시켜서 결과를 얻는다.
  3. 얻은 결과를 다시 SOAP로 인코딩하여 반환한다.

SOAP와 REST의 차이점

  • SOAP는 프로토콜이고 REST는 API 설계 스타일이이다.
  • SOAP는 기능 중심적인 구조지만 REST는 데이터 중심적이다.
  • SOAP는 XML만 사용하지만 REST는 HTMl, XML, JSON을 포함한 다양한 데이터 형식을 허용한다.
  • SOAP 호출은 캐시가 안되지만 REST 호출은 캐시 할 수 있다.
  • SOAP는 XML에 의존하기 때문에 페이로드가 무거워 HTML, XML, JSON을 허용하는 REST에 비해 리소스가 더 필요하다.
    ※ 페이로드는 인터넷을 통해 전송 되는 데이터를 말한다.


참고자료

https://www.ibm.com/docs/ko/integration-bus/10.0?topic=services-what-is-wsdl
https://gruuuuu.github.io/programming/soap/
SOAP란 무엇일까

profile
발전하기 위해 노력하는 프론트엔드 개발자입니다.

0개의 댓글