웹 서비스 인터페이스 - SOAP와 REST

SW개발인터페이스
읽는데 4분 소요
처음 쓰여진 날: 2025-10-07
마지막 수정일: 2025-10-07

요약

정보처리기사 실기 시험의 핵심 주제인 웹 서비스 인터페이스 방식의 두 가지 흐름, SOAP과 REST를 비교 분석합니다. SOAP, WSDL, UDDI 삼총사와 현대적인 REST 아키텍처의 차이점을 알아보고 실기 대비 문제로 마무리합니다.

웹 서비스 인터페이스 방식의 역사와 각 기술의 역할을 이해하기 위해 클래식한 방식의 대표주자인 SOAP과 현대적인 REST를 비교하며 그 차이를 명확히 알아봅니다.

용어키워드
SOAPXML 기반 메시지, 원격 프로시저 호출, 엄격한 규칙, 프로토콜
RESTURI 자원 식별, HTTP 메서드, 아키텍처 스타일, JSON 데이터 형식
WSDL웹 서비스 명세, XML 형식, 기능/파라미터/데이터타입 기술
UDDI웹 서비스 검색, 등록, 전화번호부 역할, 서비스 디렉토리
JSON가벼운 데이터 형식, 빠른 교환, REST 주요 형식

웹 서비스 인터페이스: 두 가지 접근법

웹 서비스는 서로 다른 시스템이 인터넷을 통해 상호작용하는 방식입니다. 이 상호작용을 위한 인터페이스에는 크게 두 가지 주요 흐름이 있습니다. 하나는 모든 것을 명시적으로 정의하는 **클래식 스택(SOAP, WSDL, UDDI)**이고, 다른 하나는 웹의 방식을 그대로 따르는 **현대적 스타일(REST)**입니다.

레스토랑을 예약하고 주문하는 과정에 비유해 보겠습니다.


클래식 웹 서비스 삼총사: SOAP, WSDL, UDDI

2000년대 초반, 기업들은 안정적이고 정형화된 시스템 연동을 위해 이 세 가지 기술을 하나의 세트로 사용했습니다. 이들의 목표는 "어떤 서비스가 어디에 있는지 찾고(UDDI), 그 서비스의 사용법을 명세서로 확인한 뒤(WSDL), 정해진 약속대로 통신(SOAP)한다" 입니다.

UDDI (Universal Description, Discovery, and Integration)

  • 역할: 웹 서비스의 '전화번호부' 또는 '레스토랑 가이드북'
  • 설명: 어떤 레스토랑(서비스)이 어디에 있는지, 어떤 종류의 음식을 파는지 찾아보는 검색 엔진 역할을 합니다. 지금은 거의 사용되지 않습니다.

WSDL (Web Services Description Language)

  • 역할: 서비스의 '상세 메뉴판' 또는 '사용 설명서'
  • 설명: UDDI로 찾은 레스토랑의 상세 메뉴판입니다. 어떤 요리(메서드)가 있고, 각 요리의 가격(파라미터)은 얼마이며, 주문 시 어떤 정보(데이터 타입)를 알려줘야 하는지 아주 상세하게 XML 형식으로 적혀 있습니다.

SOAP (Simple Object Access Protocol)

  • 역할: 정해진 양식에 따른 '격식 있는 주문서'
  • 설명: WSDL 메뉴판을 보고, 정해진 양식에 맞춰 아주 격식있게 주문(요청)하는 것입니다. "이 주문서는 SOAP 규격에 따라 작성되었으며..." 와 같이 매우 엄격한 XML 메시지를 사용합니다.

요약: 클래식 방식은 마치 처음 가는 도시에 가서, 가이드북(UDDI)으로 레스토랑을 찾고, 두꺼운 메뉴판(WSDL)을 정독한 뒤, 격식있는 주문서(SOAP)를 작성해서 내는 것과 같습니다. 절차는 복잡하지만 매우 명확하고 안정적입니다.


현대적 웹 API의 주역: REST

SOAP 방식의 복잡성에 대한 반작용으로, 더 단순하고 웹 친화적인 REST(Representational State Transfer) 스타일이 등장하여 현재 웹 API의 주류가 되었습니다.

  • 역할: 웹의 기본 원리(HTTP)를 최대한 활용하는 '설계 철학'
  • 설명:
    • 별도의 가이드북(UDDI)이 필요 없습니다. 레스토랑의 주소(URI)는 이미 알 있다고 가정합니다. (예: https://example.com/dishes/pasta)
    • 두꺼운 메뉴판(WSDL)도 필요 없습니다. "메뉴 좀 보여주세요(GET)"라고 말하면 메뉴를 보여주고, "이걸로 주문할게요(POST)"라고 말하는 등, **모두가 아는 간단한 행동(HTTP 메서드)**으로 통신합니다.
    • 복잡한 주문서(SOAP) 대신, 간단한 **메모(주로 JSON)**에 적어 요청합니다.

요약: REST 방식은 마치 단골 식당에 가서, 말 몇 마디로 편하게 주문하는 것과 같습니다. 훨씬 빠르고, 유연하며, 배우기 쉽습니다.


SOAP 기반 방식 vs REST 스타일 비교

구분SOAP, WSDL, UDDI 스택REST 스타일
개념프로토콜 (Protocol): 엄격한 규칙아키텍처 스타일 (Style): 유연한 원칙
데이터 형식XML만 사용JSON, XML 등 자유롭게 사용 (주로 JSON)
통신 방식HTTP 외 다른 프로토콜도 사용 가능HTTP 위에서만 동작 (HTTP 기능 극대화)
복잡성높음 (WSDL, 스키마 등 필요)낮음 (HTTP와 URI만 알면 됨)
성능상대적으로 느리고 무거움빠르고 가벼움
주 사용처높은 보안/트랜잭션이 필요한 기업용 시스템대부분의 공개 API, 모바일 앱, 웹 서비스

정보처리기사 실기 대비 문제

문제를 불러오는 중...

문제를 불러오는 중...

문제를 불러오는 중...

문제를 불러오는 중...

문제를 불러오는 중...