본문 바로가기
개발자, 탐구생활/개발자, 코딩

[RestFul API]SOAP과 REST의 차이

by The Career 2022. 6. 6.
반응형

RestFul API를 공부하기에 앞서, SOAP 방식과 REST 방식의 차이를 공부하고,  차이점에 대해서 정리하여 남깁니다.


1️⃣  SOAP(Simple Object Access Protocol)

  • SOAP(Simple Object Access Protocol)은 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
  • 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)로 메시지를 요청 하고, 서버는 메시지를 즉시 응답

 

<장점>

  • 플랫폼과 언어에 독립적이다.
  • 확장이 용이하다.

<단점>

  • 구조가 복잡하고 오버헤드가 심하고 무겁고, 개발이 어렵다.

 

<SOAP 예시>

 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
 <SOAP-ENV:Body>
 <getProductDetails xmlns="http://warehouse.example.com/ws">
 <productId>827635</productId>
 </getProductDetails>
 </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>

 


2️⃣ REST(REpresentational State Transfer)

  • REST는 웹 서비스와 모바일 애플리케이션 경량화의 필요에 맞춘 아키텍처
  • HTTP method를 통해 resource를 처리
  • request 요청에 대해 HTML, XML, 일반 텍스트, JSON 등 다양한 형태로 응답

 

<REST의 구성요소>

1. 자원(Resource), URL
모든 자원은 고유한 ID를 가지며 ID는 서버에 존재하고 클라이언트는 각 자원의 상태를 조작하기 위해 요청을 보낸다. HTTP에서 이러한 자원을 구별하는 ID는 student/1 과 같은 HTTP URL이다.

 

2. 행위(Verb), Method
클라이언트는 URL을 이용해 자원을 지정하고 자원을 조작하기 위해 Method를 사용한다. HTTP 프로토콜에서는 GET, POST, DELETE 같은 Method를 제공한다.

 

3. 표현(Representation)
클라이언트가 서버로 요청을 보냈을 때 응답 자원의 상태를 Representation이라고 한다. REST에서 하나의 자원은 JSON, XML, RSS등 여러 형태의 Representaion으로 나타낼 수 있다.

 

* 전달되는 데이터가 많을 경우 상대적으로 JSON을 사용하는 REST 방식이 유리(SOAP은 XML만 의존하기 때문에 많은 데이터를 처리할 경우 속도면에서 불리하다)


 

✅  참고자료


 

반응형