관리 메뉴

개발노트

[웹 API] SOAP, REST 본문

API

[웹 API] SOAP, REST

YoonGwon 2021. 1. 22. 16:17

 웹 API는 크게 SOAP(Simple Object Access Protocol)Rest(Representational State Transfer) 의 두 종류로 분류할 수 있다.

 

둘 다 HTTP를 프로토콜로 사용하고 있기 때문에 이제까지 설명한 URI, HTTP 메소드, HTTP 헤더 등은 모두 동일하게 사용되는데 단, 메시지나 제어와 관련된 부분은 차이가 있다.

 

 

<그림으로 배우는 클라우드 인프라와 API의 구조: 참조> SOAP 방식과 REST 방식 차이점

 

SOAP 방식

- SOAP(Simple Object Access Protocol)은 주로 복잡한 비즈니스 로직을 웹 서비스 형태로 제공하는 SOA(Service Oriented Architecture) 를 구성할 때 사용하는 기술이다. SOAP 방식으로 통신하는 시스템은 잘 구조화된 SOAP 메시지를 URI를 통해 주고 받아 복잡한 제어나 처리를 하는 것이 특징이다. 프로토콜은 주로 HTTP를 사용하지만 그외의 프로토콜을 지원하기도 한다. 현재는 SOAP 1.2 가 최신버전이다.

- SOAP 메시지는 엔벨로프라는 일종의 봉투와 같은 구조 안에 헤더, 바디가 들어 있는데 XML 형식으로 만들어 진다. 그래서 사용하는 XML의 네임스페이스를 엔벨로프에 지정하는데 클라우드 서비스를 사용하는 경우라면 클라우드 서비스에서 제공하는 XML 네임스페이스를 사용하면 된다.

SOAP은 SOA 나 웹 2.0과 함께 2006년에 널리 보급되었다. 아마존 Advertisting API와 아마존 웹 서비스 중에서 비교적 오래 전에 만들어진 컴포넌트(Amazon EC2나 Amazon S3)들은 SOAP으로 만들어졌다. 반면 REST 방식이 확산되면서 클라우드 환경에서는 SOAP 을 사용하는 빈도가 점점 줄어들었고 이제는 거의 사용하지 않는 추세이다.

 

REST 방식

- REST는 URI를 호출할 때 HTTP 메소드를 기반으로 CRUD 조작을 하는 것처럼 비교적 간단한 제어를 할 때 사용한다.
  SOAP 은 업계의 관련 단체가 표준을 정하는 반면, REST 는 표준이라기보다는 일종의 사상이나 접근 방식에 가깝기 때문에 굳이 기준이 되는 표준을 찾는다면 HTTP 사양을 꼽을 수 있다.

- 복잡한 데이터 연계가 필요한 시스템이나 전자상거래와 같은 전자 거래 관련 분야에서는 SOAP 을 사용하는 것이 적절하다. 반면, 클라우드 분야에서는 기본적으로 리소스에 대한 CRUD 와 같이 단순한 처리가 대부분이다. 그러다 보니 최근에는 클라우드 분야에서 REST 를 사용하는 것이 사실상 표준이 되엇으며 웹 API를 REST API의  의미로 부르는 경향도 강해지고 있다.

 

참조 : "그림으로 배우는 클라우드 인프라와 API의 구조" 책. 

728x90