SOAP란?
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로 인코딩하여 반환함
- WSDL은 웹서비스 기술언어. XML로 기술됨 (XML이라 생각하자)
- UDDI는 웹서비스를 등록하고 검색하기 위한 저장소 (검색엔진이라고 생각하자)
📍SOAP 메시지 구조
- SOAP Envelop
- 모든 SOAP메시지의 루트요소
- Header와 Body요소를 포함함
- SOAP Header
- Envelope의 하위요소
- 메시지 경로를 따라 SOAP노드로만 처리될 애플리케이션 관련 정보 전달
- SOAP Body
- Envelope의 필수 하위요소
- 메시지의 최종 수신인을 대상으로하는 정보 포함
- SOAP Fault
- Fault는 Body의 하위요소이며 오류보고에 사용됨