웹 서비스 인터페이스: SOAP와 REST 비교 분석 - 정처기 실기 대비

정처기SW개발인터페이스
읽는데 약 5분 정도 소요
처음 쓰여진 날: 2025-07-12
마지막으로 고쳐진 날: 2025-07-12
이 글을 보러온 횟수: 39

요약

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

💡 웹 서비스 인터페이스 방식의 역사와 각 기술의 역할을 이해하는 것은 정처기 실기 시험의 중요 포인트입니다. 이 포스트에서는 클래식한 방식의 대표주자인 SOAP과 현대적인 REST를 비교하며 그 차이를 명확히 알아봅니다.

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

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

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


1. 클래식 웹 서비스 삼총사: 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)를 작성해서 내는 것과 같습니다. 절차는 복잡하지만 매우 명확하고 안정적입니다.


2. 현대적 웹 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, 모바일 앱, 웹 서비스

📝 정처기 실기 대비 문제

문제웹 서비스의 명세, 즉 서비스가 제공하는 기능, 파라미터, 데이터 타입 등을 XML 형식으로 상세하게 기술하는 언어는 무엇인가?
답변
정답정답 보기
문제HTTP, SMTP 등 위에서 XML 기반의 메시지를 교환하여 원격 프로시저를 호출하는, 매우 엄격한 규칙을 가진 프로토콜은 무엇인가?
답변
정답정답 보기
문제URI를 통해 자원을 식별하고, HTTP 메서드를 통해 해당 자원에 대한 행위를 표현하는 원칙을 기반으로 하는 소프트웨어 아키텍처 스타일은 무엇인가?
답변
정답정답 보기
문제과거 웹 서비스를 검색하고 등록하기 위해 사용되었던, 웹 서비스의 '전화번호부' 역할을 했던 기술은 무엇인가?
답변
정답정답 보기
문제SOAP과 비교했을 때, REST가 가지는 주요 장점으로 더 가볍고 빠른 데이터 교환 가능하게 하는 주된 데이터 형식은 무엇인가?
답변
정답정답 보기