웹 서비스 인터페이스 - SOAP와 REST
요약
정보처리기사 실기 시험의 핵심 주제인 웹 서비스 인터페이스 방식의 두 가지 흐름, SOAP과 REST를 비교 분석합니다. SOAP, WSDL, UDDI 삼총사와 현대적인 REST 아키텍처의 차이점을 알아보고 실기 대비 문제로 마무리합니다.
웹 서비스 인터페이스 방식의 역사와 각 기술의 역할을 이해하기 위해 클래식한 방식의 대표주자인 SOAP과 현대적인 REST를 비교하며 그 차이를 명확히 알아봅니다.
용어 | 키워드 |
---|---|
SOAP | XML 기반 메시지, 원격 프로시저 호출, 엄격한 규칙, 프로토콜 |
REST | URI 자원 식별, 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)**에 적어 요청합니다.
- 별도의 가이드북(UDDI)이 필요 없습니다. 레스토랑의 주소(URI)는 이미 알 있다고 가정합니다. (예:
요약: REST 방식은 마치 단골 식당에 가서, 말 몇 마디로 편하게 주문하는 것과 같습니다. 훨씬 빠르고, 유연하며, 배우기 쉽습니다.
SOAP 기반 방식 vs REST 스타일 비교
구분 | SOAP, WSDL, UDDI 스택 | REST 스타일 |
---|---|---|
개념 | 프로토콜 (Protocol): 엄격한 규칙 | 아키텍처 스타일 (Style): 유연한 원칙 |
데이터 형식 | XML만 사용 | JSON, XML 등 자유롭게 사용 (주로 JSON) |
통신 방식 | HTTP 외 다른 프로토콜도 사용 가능 | HTTP 위에서만 동작 (HTTP 기능 극대화) |
복잡성 | 높음 (WSDL, 스키마 등 필요) | 낮음 (HTTP와 URI만 알면 됨) |
성능 | 상대적으로 느리고 무거움 | 빠르고 가벼움 |
주 사용처 | 높은 보안/트랜잭션이 필요한 기업용 시스템 | 대부분의 공개 API, 모바일 앱, 웹 서비스 |
정보처리기사 실기 대비 문제
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...