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/