정의
인터넷에서 원하는 자원을 요청하기 위해 필요현 형식으로 SOAP와 REST가 있다.
웹 페이지를 개발할 때 사용자가 자원을 요청하고 서버에서 응답하는 과정에서 정확한 내용 전들을 위해 SOAP와 REST가 사용된다.
SOAP
SOAP는 웹 페이지를 통신할 수 있도록 설계된 최초의 표준 형식으로 서비스가 있는 공간에 접근하여 자원들을 요청하는 형식이다.
동작 방식
웹 사이트 제공자가 웹 서비스를 설명하고 사용하는 방법이 적힌 자료인 WSDL을 먼저 만든 후 UDDI에 저장한다.
그 후 UDDI가 등록된 자원을 공개하고 발견하는 방법을 정의한다.
사용자가 UDDI를 발견하여 원하는 자원을 SOAP 메시지로 인코딩하여 요청하면 웹 사이트 제공자는 디코딩하여 사용자 정보를 확인하고 응답을 인코딩하여 전달한다.
메시지 구조
SOAP의 메시지 구조는 선택적인 헤더 부분과 필수적인 바디 부분으로 구성된 XML로 되어있다.
- Ecvelope는 모든 SOAP 구조의 사우이 개념으로 헤더와 바디 부분을 포함한다.
- 헤더 부분은 메시지 경로를 제공하여 처리될 앱 관련 정보를 전달하는 데 사용한다.
- 바디 부분은 메시지의 본문 관련 주요한 정보를 포함하고 있다.
REST
웹의 장점을 최대한 활용하기 위해 고안된 형식으로 자원을 구분하여 해당 상태를 주고받는 것을 의미한다.
자원은 URI로 구분되며 HTTP 메소드를 활용해 상태를 전달하여 응답한다.
동작 방식
REST는 사용자 컴퓨터와 서버 컴퓨터를 나누어 서버 컴퓨터의 자원을 HTTP 메서드를 활용하여 요청한 뒤 서버 컴퓨터에서 허 해당 요청을 받아 응답하는 구조이다.
형식
REST는 HTTP 메서드를 활용한 형식이다.
- POST: 새로운 자원을 생성하는 메서드이다.
- GET: 자원을 요청하기 위한 메서드이다.
- PUT: 기존의 자원을 수정하기 위한 메서드이다.
- DELETE: 자원을 삭제하기 위한 메서드이다.
SOAP / REST 비교
SOAP 장점
SOAP은 웹 페이지를 제공하기 위한 표준이 잘 되어있다. 그래고 UDDI에 등록된 사용자만이 자원을 확인할 수 있어 보안성이 좋다.
SOAP의 단점
SOAP는 WSDL을 작성하여 서비스한다. 하지만 WSDL은 REST보다 배우기가 어렵고 복합하다.
때문에 코드가 길어지고 유지 보수가 어렵다는 단점이 존재한다.
또한 SOAP는 UDDI를 거쳐서 서비스된다.
웹의 가장 큰 장점 중 하나는 어디서든 누구든지 쉽게 접근 가능하나는 점인데 중간에 무언가를 거치면 사용자의 접근이 제한된다.
REST의 장점
REST는 사용자와 서버를 분리함으로서 보다 단순한 구조를 만들었다.
4가지의 메서드만으로 자원을 관리하여 사용하기 쉽고 유지 보수가 용이하다.
자원들이 고유한 URL로 저장되어 있어 URI만으로도 어떠한 요청인지 예상할 수 있다.
REST의 단점
메서드 형태가 제한적이다.
정해진 4가지의 메서드만 사용할 수 있다. 정해진 표준이 없어 개발자마다 다르게 활용하기 때문에 표준에 대한 추가적인 약속이 필요하다.
구분 | SOAP | REST |
지향점 | 서비스 지향 아키텍처 | 자원 중심 아키텍처 |
중간 매체 | UDDI를 통해서 서비스함 | 중간 매체 없이 서비스함 |
난이도 | 고난이도 프로그래밍 능력이 요구됨 | 쉬운 데이터 제공을 목적으로 출발 |
개발환경 | 환경설정 및 개발환경이 요구됨 | 개발/실행환경이 필요 없음 |