Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

GraphQL

SOAP, REST

대량의 자원들이 인터넷으로 올라가면서 자원 식별해서 만들기, 삭제, 변경, 가져오기와 같은 작업을 효과적으로 수행하게 할지가 중요한 이슈가 됐다. 이 작업은 단순히 효율적이어야 할 뿐만 아니라 높은 상호운용성도 제공을 해야 했다. 서비스와 서비스가 서로 엮이면서, 다른 서비스의 자원도 가져다가 사용해야 하는 경우가 자주 발생하는데 각 서비스마다 서로 다른 형태의 작업식별및 작업명령 체계를 가직 있다면 웹 애플리케이션의 개발이 힘들어질 것이기 때문이다.

이렇게 인터넷에서의 자원에 대한 접근과 작업을 효과적으로 수행하기 위해서 나온 툴이 SOAP(Simple Object Access Protocol)REST이다. 정확히 말하자면 SOAP는 프로토콜이고 REST는 아키텍처모델이다. REST 아키텍처 모델을 따르는 웹 서비스를 우리는 RESTful 웹 서비스라고 부른다.

SOAP는 공식(표준)프로토콜로 엄격한 규칙과 ACID 준수, 권한부여와 같은 다양한 기능을 제공한다. 복잡한 내용을 전달하기 위해서 XML을 사용하고 있다. 복잡성이 커지면서 더 많은 대역폭과 더 많은 컴퓨팅자원이 필요해지게 되면서 지금은 (더 유연한)REST 방식을 많이 사용하고 있다.

REST는 HTTP 프로토콜로 작업을 요청하는 아키텍처 모델이다. REST는 URI 메서드를 이용해서 작업의 내용을, URI PATH로 작업할 자원을 명시한다.

파일을 업로드/다운로드 할 수 있는 클라우드 스토리지 서비스가 있다고 가정해보자. 이 웹서비스는 https://api.example.com/file/item3와 같은 API를 제공 할 수 있을테고, 메서드에 따라서 작업이 결정된다.
  • GET https://api.example.com/file/item3 : item3 파일을 다운로드 한다.
  • POST https://api.example.com/file/item3 : item3 파일을 업로드 한다.
  • PUT https://api.example.com/file/item3 : item3 파일을 업데이트 한다.
  • DELETE https://api.example.com/file/item3 : item3 파일을 삭제한다.

참고

SOAP / RESTful 기반 웹서비스 비교

SOAP 기반/ RESTful기반 웹서비스 비교 from seungdols