SOAP

SOAP(Simple Object Access Protocol)은 웹 서비스 간에 구조화된 정보를 교환하기 위해 설계된, XML 기반의 메세징 프로토콜이다. 주로 HTTP / HTTPS를 전송 매체로 사용하지만, SMTP, JMS 등 다른 전송 프로토콜 위에서도 운용될 수 있다. SOAP은 플랫폼·언어에 독립적인 통신을 가능하게 하여, 이기종 시스템 간의 연동을 표준화한다.


1. 개요

  • 정식 명칭: Simple Object Access Protocol
  • 표준화 기관: W3C (World Wide Web Consortium)
  • 최초 제정: 2000년 — W3C Recommendation으로 채택
  • 주요 특징
    • XML 기반: 요청·응답 메세지는 <Envelope> 요소 안에 <Header>(선택)와 <Body>(핵심 데이터)로 구성된다.
    • 확장성: 헤더에 보안(WS‑Security), 트랜잭션(WS‑AtomicTransaction) 등 다양한 기능을 플러그인식으로 추가할 수 있다.
    • 전송 독립성: SOAP Envelope는 어떤 전송 프로토콜 위에서도 전송 가능하며, HTTP / HTTPS가 가장 흔히 사용된다.

2. 구조

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <!-- 옵션: 인증, 라우팅, 트랜잭션 등 -->
  </soap:Header>
  <soap:Body>
    <!-- 비즈니스 로직 호출 및 응답 데이터 -->
  </soap:Body>
</soap:Envelope>
  • Envelope: 메세지 전체를 감싸는 최상위 요소. 네임스페이스 선언이 필수.
  • Header: 선택적 요소. 보안 토큰, 라우팅 정보, 트랜잭션 컨텍스트 등을 삽입한다.
  • Body: 실제 호출하고자 하는 서비스 메서드와 매개변수, 그리고 응답 데이터를 포함한다.

3. 주요 표준 및 연관 기술

표준 설명
WS‑Security SOAP 메세지에 디지털 서명·암호화를 적용해 메시지 수준 보안을 제공
WS‑Addressing 메시지 라우팅 정보를 헤더에 포함, 엔드포인트 주소와 액션을 명시
WS‑ReliableMessaging 전송 손실·중복을 방지하고 신뢰성 있는 메시지 전송 보장
WS‑Policy 서비스가 제공·요구하는 정책(보안, 트랜잭션 등)을 기술
WSDL (Web Services Description Language) SOAP 기반 서비스 인터페이스와 바인딩을 정의하는 XML 스키마

4. 활용 사례

  • 기업 내부 시스템 연동: ERP·CRM·SCM 등 이기종 시스템 간 실시간 데이터 교환
  • B2B 전자 거래: 전자청구서, 주문 처리 등 표준화된 비즈니스 프로세스 구현
  • 클라우드 API: 일부 레거시 클라우드 서비스가 SOAP / WSDL 기반 API 제공 (예: AWS Simple Queue Service의 구버전)

5. 장점과 한계

장점

  • 플랫폼·언어 독립성: XML만 지원하면 어디서든 호출 가능
  • 표준화된 확장 메커니즘: 보안·신뢰성·트랜잭션 등 추가 기능을 체계적으로 적용 가능
  • 엄격한 스키마 검증: XSD를 통한 강력한 데이터 검증

한계

  • 무게감: XML 파싱·생성 비용이 높아 성능에 부담 (특히 모바일·IoT 환경)
  • 복잡성: WS‑* 표준들을 모두 이해·구현하기 어려워 초기 진입 장벽이 높다
  • 대체 기술 등장: 경량화된 REST / JSON 기반 API가 범용화되면서 신규 프로젝트에서 SOAP 사용 비중 감소

6. SOAP와 다른 웹 서비스 기술 비교

구분 SOAP REST (Representational State Transfer)
전송 형식 XML (Envelope) 주로 JSON 또는 XML, HTTP 메서드 활용
표준화 수준 W3C 표준 + 다수의 WS‑* 확장 RFC 7230‑7235 등 HTTP 표준에 의존
보안 WS‑Security 등 별도 표준 HTTPS/TLS 기반 전송 보안, OAuth 등
상태 관리 상태 유지가 가능 (WS‑ReliableMessaging 등) 무상태가 기본 원칙
학습 난이도 중~고
주요 사용처 엔터프라이즈 연동, 레거시 시스템 모바일·웹·마이크로서비스 등 경량 API

7. 주요 구현체·툴

  • Apache CXF, Axis2 (Java)
  • Microsoft WCF (Windows Communication Foundation) (C#)
  • gSOAP (C/C++)
  • SoapUI – SOAP 서비스 테스트 및 모의(Mock) 서버 제공

8. 역사적 흐름

  1. 1999년 – 최초 개념 발표, SOAP 1.0 (Draft)
  2. 2000년SOAP 1.1이 W3C Recommendation 초안을 통해 표준화 시작
  3. 2003년SOAP 1.2 정식 표준 채택 (W3C Recommendation) – 네임스페이스 및 오류 처리 방식 개선
  4. 2000~2010년 – WS‑* 표준이 연속 발표되며 SOAP 기반 웹 서비스의 기능이 급격히 확장
  5. 2010년대 이후 – RESTful API와 JSON의 부상으로 신규 프로젝트에서 SOAP 사용이 감소, 그러나 금융·보험·공공 분야 등 보안·거래 신뢰성이 필수인 영역에서는 여전히 핵심 기술로 자리 잡음

9. 참고 문헌·링크


본 항목은 SOAP( Simple Object Access Protocol )에 대한 백과사전 수준의 정보를 제공한다.

둘러보기

더 찾아볼 만한 주제