새로 이직한 회사에서 REST 방식이 아닌 SOAP 방식으로 통신을 하는 경우에 직면하게 되었다. 그래서 SOAP 통신의 사용 목적, 장점이 무엇이기에 이를 도입했을까? 라는 생각이 들어 이에 대한 정리를 하게 되었다.
1. 개요
- 정의: XML 을 기반으로 요청과 응답을 포장하는 프로토콜
- 목적: 플랫폼, 언어, 시스템에 독립적인 원격 호출을 가능하게 함
- 전송 방식: 주로 HTTP 을 사용하지만 SMTP, FTP 등도 가능
2. 특징
- 표준화: W3C 표준이며 엄격한 스펙을 가짐
- 확장: 보안(WS-Security), 트랜잭션 등 다양한 확장 기능 존재
- 언어/플랫폼 독립: Java, .NET, Python 등 다양한 언어에서 구현 가능
- 복잡성: XML 파싱 및 스키마 검증 등으로 REST 보다 무거움
- 계약 기반: WSDL(Web Services Description Language, SOAP 서비스의 인터페이스를 XML 로 기술) 로 서비스 명세 정의
3. 장점 (REST 대비)
- 정교하고 강력한 표준 스펙 지원
- 계약 기반 통신
- 에러 핸들링이 구조화됨
- 비 HTTP 프로토콜(SMTP, FTP 등) 지원
- 엄격한 데이터 검증
요약하자면 SOAP 은 신뢰성과 보안, 트랜잭션이 중요한 복잡한 서비스에 적합하다.
'IT > CS' 카테고리의 다른 글
[CS] Rate Limit 이란? (0) | 2025.07.01 |
---|---|
[CS] gRPC(Google Remote Procedure Call) 란? (1) | 2025.06.19 |
[기타] SEO(Search Engine Optimization, 검색 엔진 최적화)란? (0) | 2025.04.20 |
[CS] 쓰레싱(Thrashing) 이란? (0) | 2025.04.19 |
[CS] 객체 지향 설계 5가지 원칙 - SOLID (0) | 2025.03.16 |