SOAP란?

SOAP가 도대체 무엇인가 공부해보자

오늘은 SOAP에 대해서 정리해보려고 한다.

정처기 공부하다가 SOAP라는 단어가 나왔는데, REST API랑 묶어서 들어본 적 있는것 같아서 어떤건 지 알고싶어졌다. 이거 포스팅하고 나면 REST도 정리할 예정~
근데 정리하려고 찾다보니 나 진짜 기초가 없구나를 많이 느꼈다ㅎㅋㅋㅋ

CS, 네트워크 등.. 기초이론 열심히 공부해야겠다 (당분간 포스팅 소재고갈 걱정은 없겠넹^___^)


📍SOAP(Simple Object Access Protocol)?


SOAP란 HTTP HTTPS, SMTP를 통해서 XML 기반의 데이터를 주고받는 프로토콜로 Envelope, Header, Body로 구성되어있다. SOAP은 웹서비스*에서 기본적인 메시지를 전달하는 기반이 된다.

* 웹서비스란? 기존의 서로다른 컴퓨터에서 상호작용(정보를 주고받기)을 하기 위한 시스템. 웹서비스는 플랫폼에 독립적이며 연결을 유지하지 않는 특징이 있다.


✔️ SOAP의 장점

  • 기존의 원격 기술 대비 프록시와 방화벽에 구애받지 않음
  • 플랫폼이나 프로그래밍 언어에 독립적
  • 확장가능하다
  • 분산환경에서 사용하기 적합
  • 웹서비스 표준이 잘 정립되어 있음
  • 보안수준이 엄격함

✔️ SOAP의 단점

  • 복잡한 구조라 어렵고 오버헤드* 발생확률이 높음

    * 오버헤드: 특정 기능을 수행하는데 드는 간접적인(부가적인) 시간, 메모리 등 자원을 말함

  • Xml기반의 메시지가 교환되는 과정에서 인코딩/디코딩 과정 등 웹서비스 개발 난이도가 높음
  • Xml포맷은 태그형태로 보내기 때문에 다른 미들웨어 기술(REST 등)보다 무겁고 속도도 느림


📍SOAP 동작원리


SOAP아키텍처 ⬅️ SOAP아키텍처

서비스 요청자가 soap로 인코딩하여 웹서비스 요청을 서비스 제공자에게 전달하며, 서비스 제공자는 이를 디코딩하여 적절한 서비스 로직을 수행시켜서 결과를 얻고 그 결고를 다시 soap로 인코딩하여 반환함

  • WSDL은 웹서비스 기술언어. XML로 기술됨 (XML이라 생각하자)
  • UDDI는 웹서비스를 등록하고 검색하기 위한 저장소 (검색엔진이라고 생각하자)

📍SOAP 메시지 구조

  • SOAP Envelop
    • 모든 SOAP메시지의 루트요소
    • Header와 Body요소를 포함함
  • SOAP Header
    • Envelope의 하위요소
    • 메시지 경로를 따라 SOAP노드로만 처리될 애플리케이션 관련 정보 전달
  • SOAP Body
    • Envelope의 필수 하위요소
    • 메시지의 최종 수신인을 대상으로하는 정보 포함
  • SOAP Fault
    • Fault는 Body의 하위요소이며 오류보고에 사용됨


👀 참고

위키백과

SOAP : Simple Object Access Protocol

[Open API] SOAP 란?