일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BAM
- 멤버십
- SSM
- 가상화
- 패턴인식
- Google App Engine
- 물걸레자동세척로봇청소기
- 증강현실
- 하이퍼바이저
- 나르왈프레오
- Neural Network
- 패턴 인식
- Bidirectional Associative Memory
- NarwalFreo
- 파이썬
- 물걸레로봇청소기추천
- 신경회로망
- Friendship
- 동아리
- 신경망
- Python
- hopfield network
- 인공지능
- 삼성전자 소프트웨어멤버십 SSM
- 삼성
- 빅데이터
- 삼성소프트웨어멤버십
- 갤럭시탭S8울트라
- 고려대학교
- 구글 앱 엔진
- Today
- Total
정보공간_1
[6기 강남 윤재석] SOAP & REST 본문
안녕하세요. 삼성소프트웨어 멤버십 엘리트멤버 6기 윤재석입니다. 오늘은 SOAP과 REST에 대해서 이야기하고자 합니다.
.
SOAP(Simple Object Access Protocol)
SOAP이란 위에 정의된 것 처럼 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다.
SOAP 장단점
SOAP의 장단점은 아래와 같습니다.
장점
* 기존 원격 기술들에 비해서 프록시와 방화벽에 구애 받지 않고 쉽게 통신이 가능하다.
* 플랫폼과 프로그래밍 언어에 독립적이다.
* 웹 서비스를 제공하기 위한 표준 (WSDL, UDDI, WS-*) 이 잘 정립되어 있다.
* 에러 처리에 대한 내용이 기본으로 내장되어 있다.
* 분산 환경에 적합하다.
단점
* 복잡한 구조로 인한 오버헤드가 있으며, 이는 SOAP의 확장을 저해하고 있다.
* REST에 비해 상대적으로 무겁고 속도도 느리다.
* 개발 난이도가 높아 개발 환경의 지원이 필요하다.
<그림> SOAP 아키텍처
SOAP의 아키텍처는 크게 UDDI 레지스트리(UDDI registry), 서비스 요청자(Service requestor), 서비스 제공자(Service provider)로 구성됩니다. 서비스 공급자는 웹 서비스를 UDDI 레지스트리에 등록 (Publish)하며, 서비스 요청자는 웹 서비스를 UDDI 레지스트리에서 탐색 (Find) 합니다. 서비스 공급자와 서비스 제공자는 SOAP 형태로 인코딩된 메시지로 바인딩 (Bind) 합니다. 다시말하면 서비스 요청자는 SOAP으로 인코딩하여 웹 서비스를 요청합니다. 서비스 제공자는 이를 디코딩하여 적절한 서비스 로직을 수행시켜서 결과를 얻고 그 결과를 다시 SOAP으로 인코딩하여 반환합니다.
SOAP 메시지의 구조
<그림> SOAP 메시지 구조
SOAP 메시지는 HTTP 헤더를 포함하며, SOAP Envelope에 SOAP Header와 SOAP Body를 포함하도록 구성되어 있습니다.
<그림> SOAP 메시지 코드레벨 예시
REST(REpresentational State Transfer)
REST란 위에 정의된 것 처럼 HTTP를 통해 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스 입니다. 또한 HTTP 등의 기본 개념에 충실히 따르는 웹 서비스 입니다.
REST 장단점
REST의 장단점은 아래와 같습니다.
장점
* 플랫폼과 프로그래밍 언어에 독립적이다. ( = SOAP )
* SOAP 보다 개발하기 단순하므로 학습곡선이 작고 도구가 거의 필요없다.
* 간결하므로 추가적인 메시지 계층이 없다.
단점
* Point-to-point 통신 모델을 가정하므로 둘 이상으로 상호작용하는 분산환경에는 유용하지 않다.
* 보안, 정책 등에 대한 표준이 없다.
* HTTP 통신 모델만 지원한다.
REST 아키텍처
REST의 아키텍처는 자원 요청자(Resource requester), 자원 제공자(Resource provider) 로 구성됩니다. REST는 자원을 등록하고 저장해주는 중간 매체 없이 자원 제공자가 직접 자원 요청자에게 제공합니다. REST는 기본 HTTP 프로토콜의 메소드인 GET/PUT/POST/DELETE를 이용하여 자원 요청자는 자원을 요청합니다. 자원 제공자는 다양한 형태로 표현된 (JSON, XML, RSS 등)의 리소스를 반환합니다.
REST 메시지의 구조
<그림> REST 메시지 코드레벨 예시
Google Trend로 보는 SOAP과 REST
Google Trend를 통해 SOAP과 REST 검색량 비교를 해본 결과 SOAP은 평행을 유지하고 있지만 REST는 급격히 상승하고 있는 것을 알게 되었습니다. SOAP이 견고하고 단단하지만 많은 제약을 갖고 있어서 확장에 불편함이 있는 것에 비해, 최근에는 REST 처럼 간편하지만 활용성이 높은 웹 서비스가 많아지고 있는 현상을 표현해주고 있다고 생각합니다.
오늘은 SOAP과 REST에 대해 간단히 알아보는 시간을 가졌습니다. 다음 포스트에서는 안드로이드 프레임워크를 포팅하는 방법, 커널 포팅하는 방법 등 안드로이드 프레임워크에 대해서 이야기하는 시간을 갖도록 하겠습니다.
Written By Jaeseok Yoon, email : yjaeseok@gmail.com
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 부산 오승민] Transact-SQL(T-SQL) #4 - 저장 프로시저 (0) | 2014.10.20 |
---|---|
[6기 부산 오승민] Transact-SQL(T-SQL) #3 - FILE TABLE (0) | 2014.10.20 |
[6기 강북 홍진우] 64비트 멀티코어 OS#3 - 메모리 관리 기법 (0) | 2014.10.10 |
[6기 강북 윤덕진]리눅스 쉘 스크립트 프로그래밍 #1 (0) | 2014.10.10 |
[6기 강북 이보희] 디지털 영상처리 - Filter 편 #2 (0) | 2014.10.10 |