CS/네트워크

SOAP(Simple Object Access Protocol)

leah-only 2025. 2. 27. 18:44

SOAP

일반적으로 HTTP, HTTPS, SMTP 등을 통해 XML 기반으로 네트워크를 통해 메시지를 교환하는 프로토콜

 

주요 특징

XML 기반 메시지

  • 모든 메시지가 XML 형식으로 구성되어 복잡하지만 표준화된 데이터 교환 가능

WSDL (Web Service Description Language)

  • 서비스 설명서 역할을 하는 XML 문서
  • 서비스 인터페이스와 기능을 정의

UDDI (Universal Description, Discovery and Integeration)

  • WSDL의 저장소 
  • 서비스 검색 및 접근을 용이하게 함

엄격한 규약

  • 미리 정의된 규약에 따라 메시지를 교환하므로 안정적인 통신 가능

보안 

  • WS-Security와 같은 보안 프로토콜을 지원하여 높은 수준의 보안을 제공

 

 


✅ SOAP 장점

높은 보안

  • WS-Security와 같은 보안 프로토콜을 통해 무결성과 기밀성 보장 

엄격한 규약으로 안정적인 통신 가능

  • 미리 정의된 규약에 따라 메시지를 교환하므로 오류 발생 가능성 줄임

ACID 준수

  • 높은 무결성 보장 → 정확성과 신뢰성 

 

❎ SOAP 단점

복잡 & 장황

  • XML 기반 메시지로 읽고 작성하기 어려움

유연성이 부족

  • WDSL이 변경되면 서버와 클라이언트 모두 코드를 수정 → 유지보수 hard

캐싱 어려움

  • 복잡한 XML 형식으로 캐싱이 어려움
  • 모든 메시지가 POST로 전송되어 HTTP 캐싱 기능 활용 어려움

성능 저하 

  • 데이터 크기가 커서 성능 저하 

SOAP와 REST 비교 

설계

  • SOAP API : 함수 또는 작업을 노출
  • REST API : 데이터 기반 노출

유연성

  • SOAP API : 엄격하며 애플리케이션 간 XML 메시지만 허용
  • REST API : 일반 텍스트, HTML, XML, JSON 등 데이터를 전송

상태

  • SOAP API : 상태 유지 (새 요청 처리시 이전 요청을 모두 기억해야 함)
  • REST API : 무상태 (새 요청을 이전 요청과 독립적으로 처리)

성능

  • SOAP API : 메시지 크고 복잡 → 전송 및 처리 속도 느림
  • REST API : 메시지 크기 작아 빠르고 효율적, REST 응답도 캐싱 가능

확장성

  • SOAP API : 요청 간 상태를 저장 → 대역폭 & 메모리 사용 증가 → 확장 어려움
  • REST API : 무상태 및 계층화된 아키텍처 허용 → 확장성 뛰어남

보안

  • SOAP API : HTTPS와 함께 사용하려면 추가 WS-Security 계층 필요 (추가 오버헤드 발생)
  • REST API : 추가 오버헤드 없이 HTTPS를 지원 

신뢰성

  • SOAP API : 오류 처리 로직이 내장 → 높은 신뢰성 제공
  • REST API : 통신 장애 발생 시 다시 시도해야 하며 안정성이 떨어짐 

 

  SOAP REST
유형 프로토콜 아키텍처 스타일 
설계 SOAP API는 작업을 노출 REST API는 데이터를 노출
전송 프로토콜 SOAP는 독립적
모든 전송 프로토콜과 함께 작동
HTTPS에서만 작동
데이터 형식 XML만 지원 XML, JSON, 일반 텍스트, HTML을 지원
규약 엄격한 규약(WSDL) 느슨한 규약 (URI, HTTP 메서드)
상태 상태 유지 가능 무상태(stateless)
성능 메시지가 커서 속도 느림 작은 메시지와 캐싱 지원으로 성능 빠름
확장성 어려움 쉬움
보안 WS-Security HTTPS
사용 사례 금융, 의료, 정부 등 높은 보안 및 트랜잭션 처리 웹, 모바일 다양한 애플리케이션 

참고

https://aws.amazon.com/ko/compare/the-difference-between-soap-rest/

https://github.com/devSquad-study/2023-CS-Study