2017년 9월 6일 수요일

REST란?

위키백과 설명...
REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼졌다.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 겹치는 부분과 충돌되는 부분이 있다. 필딩의 REST 아키텍처 형식을 따르면 HTTP나 WWW이 아닌 아주 커다란 소프트웨어 시스템을 설계하는 것도 가능하다. 또한, 리모트 프로시저 콜대신에 간단한 XML과 HTTP 인터페이스를 이용해 설계하는 것도 가능하다.
필딩의 REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다.

**********
 REST 방식의 웹 서비스를 쉽게 이해하기 위해서 어떻게 메시지를 주고 받게 되는지 동작 아키텍처를 살펴보도록 하겠습니다. 먼저 기존의 SOAP을 이용한 일반적인 웹 서비스 방식은 다음과 같습니다. 


[일반적인 웹 서비스]



반면에 REST는 URL을 요청하게 됩니다. 복잡한 SOAP 메시지를 호출하지 않아도 URL을 이용해서 데이터를 요청해야 한다는 것이죠.

[REST 방식의 웹 서비스]

위의 그림을 보면 12133이라는 URL을 통하여 데이터를 요청하고 있고 그 데이터는 XML 형식으로 반환하게 됩니다. 반환되는 XML 형식은 다음과 같습니다. 


웹에있는 자원들을 HTTP를 활용하여 전송하기 위한 아주 간단히 만든 인터페이스? 
>>유지보수 쉬움
 ex) board/list , board/write


특징
1. 클라이언트와 서버는 독립적이다.
2. 캐시 가능 
3. 계층화, 클라이언트는 중간 서버를 통해 연결한다.
4. 유니폼하다. URL로 지정한 리소스에 대해 조작이 통일, 한정적인 인터페이스로 수행한다.
5. 자체표현만으로 쉽게 이해 가능
6. 무상태?? 각 요청간 클라이언트의 객체는 서버에 저장 불가

장점
1. 사용이 쉬움, 간결함
2. 클라이언트와 서버가 명확히 분리
3. 원하는 데이터 표현을 사용할 수 있음

단점
1. 표준이 없음(보안또한?)
2. HTTP메소드의 한계?(HTTP 통신 모델에 의존?)
3. 둘 이상을 대상으로 상호작용하는 분산환경에는 유용하지 않음


*************************
어렵군!!



댓글 없음:

댓글 쓰기