파이썬 튜토리얼: SOAP 기반 웹 서비스 작업하기

파이썬은 SOAP 기반 웹 서비스와 함께 사용되는 인기 있는 프로그래밍 언어입니다.

Young-jae

Young-jae

7 June 2025

파이썬 튜토리얼: SOAP 기반 웹 서비스 작업하기

웹 응용 프로그램이나 서버를 만들기 위해 배울 수 있는 다양한 클라이언트 언어가 있습니다. 요즘 많은 사람들이 사용하는 인기 있는 클라이언트 언어는 Python입니다. 당신이 소프트웨어 엔지니어이거나 학기 중인 대학생이든, Python은 코딩 도구로 배우기에 훌륭한 언어 선택입니다.

Python - 인기 프로그래밍 언어

이것이 당신의 첫 번째 Python 경험이라면, Python은 가독성과 단순성으로 잘 알려진 컴퓨터 프로그래밍 언어입니다. Python은 기존의 다른 프로그래밍 언어에 비해 훨씬 더 사용자 친화적입니다. 웹 개발에 대해 더 배우고 싶다면 아주 적합한 언어가 될 수 있습니다!

Python의 다른 일반적인 사용 사례로는 데이터 분석, 인공지능 및 자동화가 있으므로, 이러한 학문 분야로 나아갈 계획이라면 Python에 익숙해질 수 있는 완벽한 시점입니다!

SOAP 기반 웹 서비스

"SOAP 기반"에서 SOAP란 무엇입니까?

SOAP는 Simple Object Access Protocol의 약자로, 웹 서비스, 시스템 및 애플리케이션 간에 구조화된 정보를 교환하기 위한 프로토콜입니다.

SOAP 프로토콜을 준수함으로써, XML(확장 가능한 마크업 언어)로 메시지를 구조화하기 위한 일련의 규칙을 따르며, 서로 다른 운영 체제와 기술에서 실행되는 프로그램이 서로 통신할 수 있도록 합니다.

일반적인 SOAP 메시지의 주요 구성 요소

Envelope: 전체 SOAP 메시지를 캡슐화하는 가장 바깥쪽 요소입니다.

Header: 메시지를 처리하기 위한 추가 정보를 포함하는 선택적 섹션입니다.

Body: 실제 데이터 또는 요청/응답 정보를 포함하는 메시지의 주요 부분입니다.

Fault: 오류를 보고하기 위한 선택적 섹션입니다.

SOAP 서비스와 함께 제공되는 WSDL 파일

문서는 새로운 것을 처음 시도할 때 개발자의 가장 좋은 친구입니다. SOAP 웹 서비스 또는 SOAP API의 경우, 사용 설명서는 WSDL 파일 형식으로 제공됩니다.

WSDL은 웹 서비스 기능, 지원되는 메소드, 사용되는 데이터 유형 및 준수하는 프로토콜에 대한 설명서를 제공합니다.

SOAP 웹 서비스 작업에 Python 사용 고려 이유는 무엇입니까?

SOAP 기반 웹 서비스에서 Python을 사용하면 개발자에게 여러 가지 이점을 제공합니다. Python을 사용하고 배우는 이유는 다음과 같습니다:

  1. 단순하고 쉬움: Python의 구문은 매우 명확하고 읽기 쉽습니다. 이는 다른 프로그래밍 언어보다 Python 코드를 작성하고 이해하며 유지관리하는 것을 훨씬 간단하게 만들어 줍니다.
  2. 광범위한 라이브러리: Python은 수많은 라이브러리 세트와 모듈을 가지고 있어 웹 서비스와 작업할 수 있습니다 - 일부는 SOAP 서비스 소비를 간소화하여 SOAP 기반 웹 서비스와 상호작용하는 데 필요한 Python 코드의 복잡성을 줄이기까지 합니다.
  3. 다재다능: Python은 웹 개발에서 데이터 과학 및 머신 러닝에 이르기까지 다양한 도메인에서 사용됩니다. Python과 웹 서비스에 대한 이해가 충분하다면 위에서 언급한 작업 분야의 애플리케이션에 SOAP 기반 웹 서비스를 쉽게 통합할 수 있습니다.
  4. 커뮤니티 지원: 전 세계의 Python 개발자들은 커뮤니티에 기여하여 새로운 개발자가 Python 프로그래밍 언어와 함께 작업할 수 있도록 튜토리얼 및 가이드와 같은 자원을 제공합니다. 여기에는 SOAP 기반 웹 서비스 작업도 포함됩니다.
  5. 크로스 플랫폼 지원: Python 프로그래밍 언어는 Windows, macOS, Linux 등 다양한 운영 체제에서 실행될 수 있습니다. 이는 Python 애플리케이션이 서로 다른 작업 환경에서 훨씬 더 유지보수가 용이하도록 합니다.

"Suds-Jurko" 라이브러리를 사용한 Python과 SOAP 기반 웹 서비스의 상호작용 예제

Python은 SOAP 기반 웹 서비스와 상호작용하기 위해 "suds-jurko" 라이브러리가 필요하므로, 어떤 작업을 시작하기 전에 Bash에서 다음 줄을 실행해야 합니다:

pip install suds-jurko

간단한 SOAP 서비스 상호작용

from suds.client import Client

# 1단계: SOAP 클라이언트 생성
url = 'https://www.example.com/soap-service?wsdl'
client = Client(url)

# 2단계: 서비스 탐색
print(client)

# 3단계: SOAP 메소드 호출
result = client.service.say_hello('John')

# 4단계: 응답 처리
print(result)

이 예제는 say_hello이라는 메소드를 갖는 SOAP 서비스를 사용하며, 이 메소드는 매개변수를 받아 인사를 반환합니다. 이 코드는 URL https://www.example.com/soap-service?wsdl을 실제 SOAP 서비스의 WSDL 파일 URL로 바꿈으로써 PHP에서 작동할 수 있도록 할 수 있습니다!

복잡한 데이터 유형 처리에 Python 사용하기

from suds.client import Client

# 1단계: SOAP 클라이언트 생성
url = 'https://www.example.com/complex-service?wsdl'
client = Client(url)

# 2단계: 서비스 탐색
print(client)

# 3단계: 복잡한 유형을 가진 SOAP 메소드 호출
person_data = {'name': 'Alice', 'age': 30, 'city': 'Wonderland'}
result = client.service.process_person_data(person_data)

# 4단계: 응답 처리
print(result)

위의 Python 코드 예제는 복잡한 유형을 매개변수로 사용하는 process_person_data라는 메소드를 가진 SOAP 서비스를 보여줍니다.

Python을 사용하여 SOAP 기반 웹 서비스 만들기

Python 언어로 자신만의 SOAP 기반 웹 서비스(또는 SOAP API)를 만들 수 있습니다. 먼저 Bash에서 spyne 라이브러리를 설치하십시오.

pip install spyne

다음으로 새로운 Python 파일을 생성해야 합니다. 이 아티클의 예로, 파일 이름은 soap_service.py가 될 것입니다. SOAP API는 sypne에 의해 정의됩니다.

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode

class HelloWorldService(ServiceBase):
    @rpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(ctx, name, times):
        for i in range(times):
            yield f"Hello, {name}!"

# 지정된 서비스를 가지고 애플리케이션 생성
application = Application([HelloWorldService], tns='my_namespace', in_protocol=None, out_protocol=None)

API가 실행될 수 있도록 하기 위해, 앞서 만든 파일에 아래 코드를 추가하십시오.

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0', 8000, application)
    server.serve_forever()

마지막으로, Bash에서 Python 스크립트를 실행하여 작동하는지 확인하십시오.

python soap_service.py

이 SOAP API는 http://0.0.0.0:8000 URL의 간단한 HTTP 서버에서 실행되어야 합니다.

Apidog를 사용하여 Python SOAP API 테스트하기

Python으로 만든 SOAP API가 작동하는지 궁금하신가요? Apidog를 사용해보세요 - 테스트할 뿐만 아니라 디버깅하고 API를 만들 수 있는 강력한 API 플랫폼입니다.

이 기사에서는 Python SOAP API를 테스트하는 방법에 대한 데모를 제공합니다(참고: 이 요청은 Python 요청와 다릅니다!).

테스트를 위한 전제 조건

Python SOAP API를 테스트하기 위해서는 다음이 필요합니다:

버튼

어떤 계정으로 Apidog에 로그인할지 선택해야 합니다.

Apidog에서 Python SOAP API 테스트하는 단계

1단계: Apidog에서 새 요청 만들기

Apidog에서 새 요청 만들기
Apidog에서 새 요청 만들기

위 이미지에서 보여지는 버튼을 선택하십시오.

2단계: 새 요청 구성하기

요청 유형 변경 URL Apidog
새 요청 구성하기

화살표 1 - SOAP 요청은 일반적으로 HTTP POST 메서드를 통해 전송되므로 요청 유형을 POST로 설정해야 합니다. 또한 요청 URL을 실행 중인 Python SOAP API의 엔드포인트로 설정해야 합니다. 이 요청 URL의 예시는 http://localhost:8000/일 수 있습니다.

화살표 2 - SOAP API에 맞게 추가 매개변수를 추가하십시오.

3단계 - 헤더 포함하기

SOAP API 테스트를 위한 헤더 설정
API 요청에 헤더 설정하기

위 섹션으로 가려면 "헤더" 버튼을 클릭하고 요청에 두 개의 헤더를 추가하십시오:

4단계 - 요청 본문 설정하기

SOAP API 요청의 원시 요청 본문 설정
SOAP API 테스트를 위한 요청 본문 설정하기

say_hello라는 메소드를 위한 SOAP 요청의 예시는 다음과 같이 추가될 수 있습니다:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="my_namespace">
    <soapenv:Header/>
    <soapenv:Body>
        <web:say_hello>
            <name>John</name>
            <times>3</times>
        </web:say_hello>
    </soapenv:Body>
</soapenv:Envelope>

위의 코드 샘플을 사용한다면, namespace(my_namespace)와 메소드 매개변수를 실제 서비스 세부사항으로 교체했는지 반드시 확인하십시오.

5단계 - 요청 전송하고 응답 확인하기

모든 준비가 완료되면, 화면 오른쪽 상단 모서리에 있는 "전송" 버튼을 누르십시오!

성공하면 받은 응답을 볼 수 있을 것입니다. 응답이 예상하는 것과 일치하는지 다시 한 번 확인하십시오.

결론

Python은 새로운 프로그래머와 오래된 프로그래머 모두에게 많은 유연성을 제공하는 추천 프로그래밍 언어입니다. API 플랫폼(예: Apidog)을 선택하기만 하면, SOAP API의 기능을 테스트하기 시작할 수 있습니다. 그러나 물론 Apidog를 사용하여 Python REST API도 테스트할 수 있습니다!

Explore more

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

이 글에서는 EXAONE 3.0 7.8B 모델을 자신의 컴퓨터에서 설치하고 실행하는 방법을 단계별로 상세히 알아보겠습니다

25 March 2025

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Anthropic의 최신 출시인 Claude 3.7 Sonnet에 대해 기대하고 있으며, Apidog로 테스트하면서 API를 통한 기능을 탐색하고 싶다면, 올바른 장소에 오신 것입니다. 💡시작하기 전에 간단한 팁을 드리겠습니다: 오늘 Apidog를 무료로 다운로드하여 API 테스트 프로세스를 간소화하세요. 특히 Claude 3.7 Sonnet의 강력한 기능을 탐색하는 데 적합한 도구로, 최첨단 AI 모델을 테스트하려는 개발자에게 이상적입니다!버튼 Claude 3.7 Sonnet이 중요한 이유로 시작해봅시다. Anthropic은 최근 2025년 2월 24일에 이 모델을 공개했으며, 즉시 및 단계별 응답을 위한 하이브리드 추론 기능을 갖춘 가장 지능적인 창작물로 자리 잡았습니다. 이는 코딩, 추론 등 여러 부분에서 혁신적인 변화를 가져오며, 현재 e Anthropic API, Amazon Bedrock, Google Cloud의 Vertex AI를 통해 사용할 수 있습니다. 이 튜

25 February 2025

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료 사용법을 알아보세요. 이 AI 기반 코딩 도우미에 대한 이 가이드는 VS Code와 JetBrains와 같은 인기 IDE의 설정 단계를 다루며, 무료로 스마트한 코드 제안 및 완성을 통해 생산성을 높일 수 있도록 도와줍니다!

19 December 2024

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요