Old Branch

REST API -1 Service, Protocol(SOAP)

woolbro 2019. 6. 14. 15:03
반응형

REST API 에 관하여 공부한 내용을 정리 해 보았습니다. 

 

도움이 되었으면 좋겠습니다~~

 

Service - SOAP , REST

 소프트웨어 요소들이 서로 간 통신하기 위해 사용하는 Interface 입니다. API와 Web Serivce의 차이점을 이해해야합니다. Web Service는 대부분 HTTP를 통해 작동하는 API 유형입니다. 단순하게 웹 관점에서는 데이터를 요청하고 응답을 위한 interface 라고 할 수 있다.

 

최근에는 두 가지 유형의 웹 서비스가 사용되는데, SOAP 과 REST 입니다. SOAP 기반의 웹 서비스, REST 기반의 웹 서비스 로 들어보셨을 거에요.

 

각각을 살펴보면, 

 

  • SOAP (Simple Object Access Protocol) - 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
  • REST (Representational State Transfer) - WWW과 같은 분산시스템을 위한 소프트웨어 아키텍처의 한 형식. REST를 따르는 형식을 RESTful 이라고 하기도 함

 

 

한 두번쯤 검색 해 보셨더라면, 위와같은 내용들이 많이 나올텐데, 우선 SOAP와 REST는 웹서비스에서 사용되는 공통점이 있지만, SOAP는 프로토콜이고, REST는 Architecture Pattern 입니다. 둘은 비교 대상이 아니죠..

 

SOAP 기반 서비스는 SOA 개념을 실현하기 위한 기술이라고 합니다. SOAP의 철자와 SOA + Protocol 인줄 알았는데 아니라고 합니다...하하

SOA --> 서비스 지향 아키텍쳐 (Service Oriented Architecture) 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이라고 합니다.

 

SOA 외에도 ROA라는 개념이 있는데, ROA는 자원 지향 아키텍쳐(Resouce Oriented Architecture) 이다.  "RESTful" 인터페이스 자원의 형태로 소프트웨어를 설계 및 개발을 위한 소프트웨어 아키텍처와 프로그래밍 패러다임의 스타일입니다.

 

 

SOAP

 웹서비스 내의 모든 데이터는 XML로 표현이 됩니다. 그 데이터들과 이를 다룰 수 있는 오퍼레이션들이 WSDL로 정의되면 UDDI라는 전역적 서비스 저장 소에 등록(publish)되어 누구라도 서비스를 찾을 수 있도록 공개됩니다. 공개된 웹서비스가 이용될 때, 서비스 요청자와 서비스 제공자 간에 SOAP을 이용하 여 서비스를 호출하고 결과를 돌려받게 됩니다.

 

 SOAP 메시지는 아래 그림과 같이 SOAP 봉투(envelope), SOAP 헤더(header), SOAP 바디(body)로 구성된 하나의 XML 문서로 표현되는 데 이러한 복잡한 구성으로 인해 HTTP 상에서 전 달되기 무겁고, 메시지 인코딩/디코딩 과정 등 웹 서비스 개발의 난이도가 높아 개발 환경의 지원이 필요합니다.

WSDL 용어는 XML이라고 생각하시면 편하고, UDDI는 일종의 검색 엔진이라고 보시면 편합니당~~ 각각은 웹 표준이기 때문에 따로 어렵게 생각 하지 않아도 될.......되나요?? 하하

 

 

HTTP 프로토콜을 사용한 SOAP 통신모델

지금 포스팅은 SOAP 까지 작성했습니다. 다음 포스팅에서 REST에 대해서 작성하고, SOAP과 비교를 한번 해보도록 하겠습니다~