정보처리기사/소프트웨어 설계

SOAP vs REST + WSDL/UDDI

glorypang 2025. 10. 19. 23:35
728x90
반응형
SMALL

1)개념

  • SOAP (Simple Object Access Protocol)
    엄격한 프로토콜(XML 기반 메시지 규격). WSDL로 인터페이스(계약) 정의, WS-* 스택(보안/트랜잭션/신뢰성) 제공.
  • REST (Representational State Transfer)
    아키텍처 스타일. HTTP의 리소스(URI) + 표준 메서드(GET/POST/PUT/DELETE) + 표현(JSON 등) 활용. 규약보다 관례 중심, 경량.

2) 메시지/전송/상태

항목  SOAP  REST
전송 HTTP(S) 주로(또는 SMTP/JMS 등) HTTP(S)
메시지 XML 고정(SOAP Envelope/Body/헤더) JSON 주류, XML/HTML 등 자유
계약 WSDL(엄격한 스키마/오퍼레이션) OpenAPI/Swagger(선택·문서화)
상태성 보통 무상태(상태ful 가능) 무상태 권장

3) 보안·트랜잭션·신뢰성

주제  SOAP  REST
보안 WS-Security(메시지 서명/암호화, 토큰) + TLS TLS(HTTPS), OAuth2/OIDC, JWT 등
트랜잭션 WS-AtomicTransaction 등 표준 보통 사가(Saga) 등 응용 레벨 보상
신뢰성 WS-ReliableMessaging 재시도/멱등성/Idempotency-Key 등 경량 패턴

4) WSDL & UDDI 

  • WSDL (Web Services Description Language)
    • 역할: SOAP 웹서비스의 계약(설명서) — 타입(XSD), 메시지, 연산, 바인딩(SOAP/HTTP), 엔드포인트(URL) 정의.
    • 주요 요소(WSDL 1.1): <types>, <message>, <portType>, <binding>, <service>.
  • UDDI (Universal Description, Discovery, and Integration)
    • 역할: 서비스 레지스트리(카탈로그). WSDL 위치/엔드포인트를 등록·검색.
    • 데이터 모델(핵심): BusinessEntity → BusinessService → BindingTemplate(엔드포인트+WSDL 참조), tModel(규약 식별자).
  • 관계/흐름(3단계)
    Publish(제공자: WSDL 작성→UDDI 등록) → Find(소비자: UDDI로 검색) → Bind/Invoke(WSDL로 클라이언트 생성→SOAP 호출)

요약

  • SOAP = 프로토콜, XML, WSDL/WS-*: 무겁지만 강한 계약·보안·트랜잭션
  • REST = 스타일, HTTP 활용, JSON 중심: 단순·경량·웹 친화
  • WSDL = 설명서(계약), UDDI = 설명서 등록/검색 레지스트리
  • 연결 순서: Publish → Find → Bind/Invoke
728x90
반응형
LIST