WSDL

agnusdei·2025년 5월 29일

Database

목록 보기
71/76

SOAP 기반의 웹 서비스를 설명할 때 반드시 등장하는 핵심 개념이며,
SOAP = 통신 프로토콜, WSDL = 계약서, UDDI = 주소록이라고 외우면 쉽게 기억됩니다.


✅ WSDL (Web Services Description Language)


🔷 1. 정의 및 개념

**WSDL(Web Services Description Language)**는
웹 서비스가 제공하는 기능(메서드), 입력/출력 파라미터, 위치(URL), 전송 방식(HTTP, SOAP 등)을 기계가 이해할 수 있는 XML 형식으로 기술한 웹 서비스 명세서입니다.

즉, 웹 서비스를 사용하려는 시스템에게 **"이 서비스는 이렇게 호출하면 됩니다"**라는 사용 설명서 또는 계약서 역할을 합니다.


🔷 2. 목적과 필요성

목적설명
웹 서비스 인터페이스 정의서비스 제공자와 소비자 간의 명확한 호출 규약 제공
자동화된 서비스 연결개발자가 수동으로 문서 확인하지 않아도 자동 연동 가능
표준화된 연동플랫폼, 언어와 무관하게 통신 가능 (Java ↔ C#, Python 등)
시스템 간 상호운용성 향상XML 기반으로 구조가 명확하고 범용적임

🔷 3. 구성 요소 (기본 구조)

WSDL은 보통 다음과 같은 구조로 구성됩니다:

<definitions>
  <types>         ▶ 데이터 타입 정의 (XSD 기반)
  <message>       ▶ 입력, 출력 메시지 구조 정의
  <portType>      ▶ 제공되는 기능(Operation) 정의 (인터페이스)
  <binding>       ▶ 전송 프로토콜(SOAP/HTTP) 및 포맷 지정
  <service>       ▶ 실제 서비스 위치(URL) 지정
</definitions>

▶ 구성요소 상세

요소설명
<types>XSD(XML Schema)로 데이터 타입 정의 (예: 문자열, 정수 등)
<message>요청/응답에 사용할 메시지 형식 지정
<portType>호출 가능한 함수 목록과 입출력 메시지 매핑
<binding>SOAP, HTTP 등 어떤 통신 방식으로 호출할지 정의
<service>웹 서비스가 실제로 배포된 URL 주소 명시

🔷 4. 예시 (단순화)

<definitions name="CalculatorService">
  <message name="AddRequest">
    <part name="a" type="xsd:int"/>
    <part name="b" type="xsd:int"/>
  </message>
  
  <message name="AddResponse">
    <part name="result" type="xsd:int"/>
  </message>

  <portType name="CalculatorPort">
    <operation name="Add">
      <input message="tns:AddRequest"/>
      <output message="tns:AddResponse"/>
    </operation>
  </portType>

  <binding name="CalculatorBinding" type="tns:CalculatorPort">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="Add">
      <soap:operation soapAction="http://example.com/add"/>
    </operation>
  </binding>

  <service name="CalculatorService">
    <port name="CalculatorPort" binding="tns:CalculatorBinding">
      <soap:address location="http://example.com/calculator"/>
    </port>
  </service>
</definitions>

🔷 5. 동작 원리

[서비스 제공자]                [서비스 소비자]
   WSDL 생성 ──────────▶   WSDL 파싱
      ▲                          ▼
SOAP 메시지 송수신 ←──── 호출 규약에 따라 통신
  • 소비자(Client)는 제공자가 배포한 WSDL을 참조하여 서비스 호출 방식, 파라미터, 응답을 자동 생성함
  • SOAP 메시지는 이 WSDL에 따라 구성됨

🔷 6. WSDL vs REST API 문서

구분WSDLREST 문서 (Swagger 등)
방식SOAP 기반 웹 서비스 설명RESTful API 설명
포맷XMLJSON 또는 YAML
자동화높은 자동 생성 가능성Swagger 등 별도 도구 필요
사용 분야엔터프라이즈, 금융, 전자정부 등스타트업, 모바일, 웹 개발 등

🔷 7. 장단점

구분장점단점
표준성W3C 표준, 명확한 인터페이스구조가 복잡하고 무거움
자동화코드 자동 생성, 도구 지원 용이가독성 낮고 사람이 직접 보기 어려움
확장성데이터 타입, 바인딩 등 유연함REST에 비해 유연성 낮음

🔷 8. 관련 기술

용어설명
SOAP메시지 전송 프로토콜
WSDLSOAP 서비스를 정의하는 설명서
UDDIWSDL 문서를 등록하고 찾는 디렉토리 시스템
XSD (XML Schema Definition)데이터 타입 정의 규칙

👦 어린이 요약

WSDL은 "웹 서비스 사용 설명서"예요.
어떤 버튼이 있고, 누르면 어떤 결과가 나오는지 적혀 있어서
다른 컴퓨터가 그 설명서를 보고 자동으로 “아~ 이렇게 쓰면 되는구나!” 하고 알아서 써요.


✅ 결론

WSDL은 SOAP 기반 웹 서비스를 설명하는 표준 XML 문서 형식으로,
입력값, 출력값, 전송 방식, 서비스 위치 등을 명확히 정의하여
시스템 간 자동 연동과 상호운용성 확보에 매우 중요한 역할을 합니다.
특히 기업간 통합(EAI), 전자정부, 금융 시스템처럼 엄격한 규약이 필요한 환경에서 여전히 필수 요소로 사용됩니다.


profile
DevSecOps Pentest🚩

0개의 댓글