TIL(Today I Learned)

SOAP과 REST란?

keepgoing 2021. 11. 1. 00:32

SOAP(Simple Object Access Protocol)이란?

HTTP와 HTTPS 프로토콜 에서 XML 메시지를 요청 및 받기위한 서비스를 의미한다.

SOAP은 정보를 설정하기 위해서 Envelope 또는 Header 또는 Body로 반드시 감싸져있어야 하는데,

간단한 정보를 제공하는데에도 복잡한 구조와 개발의 어려움, 무거움..등의 단점이 있기 때문에 요즘에는 

 

RESTful방식을 많이 사용하는 추세이다.

REST(Representational State Transfer)는 SOAP과 같이 클라이언트와 서버간의 통신을 도와주는 서비스이다.

- Resource의 Representation에 의한 상태 전달, 여기서 상태는 컴퓨터가 갖고 있는 자원의 상태를 의미한다. 여기서 자원은 컴퓨터의 데이터를 의미한다. 즉, 쉽게 말해서 자원을 주고받는다.

- HTTP Method를 통해 Resource를 처리하기 위한 아키텍처이다.

- HTTP 프로토콜의 구성인 HTTP Methods(GET, PUT, POST, DELETE)와  HTTP Status Codes(200, 404...) 등을 사용한다.

- HTTP Methods는 클라이언트가 서버에게 요청하고, 값을 받는 것을 의미한다. GET(=리소스 출력), POST(=내용 전달)..

- HTTP Status Codes로 클라이언트가 서버에 요청했을 때 결과를 숫자로 나타내어준다

플랫폼, 프로그래밍에 독립적이고 코드 구현이 비교적 쉽다. 

 

그렇다면 어느 상황에 SOAP을 사용할지, RESTful을 사용할지 정할 수 있을까?

- 접근제한성, 시스템 아키텍처 구조에 따라

- 사용되는 데이터 문서 타입에 따라

- 서비스를 정의하는 방법

- 전송되는 방법과 규약

- 구현 방법(개발의 용이성 고려)에 따라