Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

웹 서비스란? REST부터 SOAP까지 주요 웹 서비스 유형 완벽 정리

웹 서비스란 무엇인가?

웹 서비스(Web Service)는 WWW(월드 와이드 웹) 상에서 클라이언트와 서버 애플리케이션 간의 통신을 전달하는 표준화된 채널입니다. 즉, 특정 작업 집합을 수행하도록 설계된 소프트웨어 구조라고 할 수 있습니다.

웹 서비스는 인터넷 프로토콜을 기반으로 XML, SOAP, WSDL, UDDI와 같은 개방형 표준을 활용하여 웹 기반 애플리케이션을 통합하는 표준화된 방법입니다. 각 표준의 역할은 다음과 같습니다.

  • XML: 데이터에 태그를 지정하는 데 사용됩니다.
  • SOAP: 데이터를 전송하는 데 사용됩니다.
  • WSDL: 사용 가능한 서비스를 정의합니다.
  • UDDI: 접근 가능한 서비스 목록을 제공합니다.

웹 서비스의 주요 유형

1. RESTful 웹 서비스

REST는 REpresentational State Transfer(표현 상태 전송)의 약자로, HTTP를 창시한 로이 토마스 필딩(Roy Thomas Fielding)이 개발한 아키텍처 스타일입니다. RESTful 웹 서비스의 목표는 웹 서비스를 더욱 효율적으로 만드는 것이며, HTTP에 이미 존재하는 다양한 개념들을 활용해 서비스를 정의합니다.

REST는 표준 메시지 교환 형식을 강제하지 않기 때문에 XML과 JSON 어느 쪽으로도 REST 서비스를 구축할 수 있습니다. 특히 JSON은 REST 환경에서 가장 널리 사용되는 데이터 형식입니다. REST의 핵심 추상화 개념은 '리소스(resource)'이며, 리소스는 무엇이든 될 수 있고 URI(Uniform Resource Identifier)를 통해 생성·접근됩니다.

2. SOAP 웹 서비스

SOAP는 Simple Object Access Protocol(단순 객체 접근 프로토콜)을 의미합니다. 이 프로토콜은 XML을 사용해 구조화된 데이터를 처리하며, 전송 계층으로는 주로 HTTP와 SMTP가 활용됩니다. 또한 SOAP는 WSDL(Web Services Description Language) 파일을 통해 웹 서비스 설명 모델을 배포하며, 이를 통해 클라이언트 측의 SOAP 요청과 서버 측의 응답이 어떤 형태를 가져야 하는지 정의됩니다. 아울러 SOAP 웹 서비스는 보안 및 주소 지정에 관한 표준도 함께 갖추고 있습니다.

동작 예시: 페이스북 애플리케이션이 Todo 애플리케이션에 접근해야 하는 상황을 가정해 봅시다. 페이스북 애플리케이션은 Todo 애플리케이션으로 XML 요청을 전송하고, Todo 애플리케이션은 해당 요청을 처리한 뒤 XML 응답을 생성하여 다시 페이스북 애플리케이션에 반환합니다.

SOAP 웹 서비스에서 SOAP-Envelope(봉투)는 SOAP-Header와 SOAP-Body로 구성됩니다. 헤더에는 인증(authentication), 권한 부여(authorization), 서명(signature) 등 요청 식별에 필요한 메타 정보가 담기며, 헤더는 선택 사항입니다. SOAP-Body에는 요청 또는 응답의 실제 XML 내용이 포함됩니다. 처리 중 오류가 발생하면 서버는 SOAP-Fault를 통해 오류 정보를 응답합니다.

3. XML-RPC

RPC는 Remote Procedure Call(원격 프로시저 호출)의 약자입니다. XML-RPC는 네트워크상의 여러 장치 간에 데이터를 교환하는 가장 기본적인 XML 프로토콜로, HTTP를 활용해 클라이언트에서 서버로 데이터와 기타 정보를 빠르고 간편하게 공유하고 통신할 수 있도록 지원합니다.

4. UDDI

UDDI는 Universal Description, Discovery, and Integration(범용 설명, 검색 및 통합)의 약자입니다. 웹 서비스를 상세히 기술하고, 게시하고, 검색하기 위한 XML 기반 표준으로, 본질적으로 전 세계 기업을 위한 인터넷 레지스트리 역할을 수행합니다. 그 목적은 기업 시스템 간의 디지털 거래와 전자상거래를 더욱 원활하게 만드는 것입니다.