본문 바로가기
IT/자바스크립트

REST 공부 1편

by 모찌 2018. 8. 11.

1. REST란?


REST는  2000년에 웹 HTTP의 공동 창시자인 로이 필딩의 박사 논문에서 소개한 소프트웨어 아키텍쳐입니다.


로이 필딩은 기존의 웹이 HTTP의 장점을 100퍼센트 활용하지 못하여 그 장점을 살리기 위해 REST를 소개한 것입니다당연히 HTTP에 따르는 웹 서비스인 것이겠죠?


REST는 4단어의 앞 문자를 따서 요약했다고 생각하시겠지만 단어를 풀어보면 Representational State Transfer 3단어로 이루어져 있습니다.


직역해보면 표현적인 상태 전달이라는 뜻으로 클라이언트가 URL을 통해서 자료를 요청하면 서버가 상태를 바꿔서 표현해주는 것입니다.



위 그림을 이용해 풀어서 설명해보겠습니다.


우선 Resource라는 것은 책의 1페이지 , 사용자 이름이 terry 같은 정보들을 말합니다.

REST는 화면 없이 내용만 주고 받아Resource라는 표현을 쓰는 것입니다.

이런 resource에 접근하기 위해서는 URL을 필요로 합니다.


Representation은 Client applicationurl을 통해서 resource에 접근하고 값을 가지고 오게 되면 xml 이나 json 같은 데이터 타입으로 받게 되는데 이러한 타입들을 말합니다.


state는 Client applicationjson이나 xml로 응답으로 받게 되면 뭔가 변화하게 되는 것을 말합니다


이제 REST에 대해서 예를 들어 설명해보겠습니다.


서버 resource에 책이 존재하고 있습니다. 클라이언트가 url을 통해 책의 1페이지를 json(representation)으로 요청을 하면  application은 책의 1페이지를 받게 되는 것입니다.


그러면 Client상태가 바뀌게 되는 것이죠. 그래서 RESTRepresentational State Tranfer 한다는 의미입니다.


2. REST API의 특징


1) 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스 입니다..


2) Resources의 추상 인터페이스 입니다.


3) The Human-Readable Web : 사람이 해석할 수 있는 웹입니다.

 REST는 사람이 해석하기 쉽게 만든 웹입니다기계가 쉽게 해석할 수 있는 웹을 사용하는 API는 SOAP API라는 것이 있는데 이 API는 REST와 자주 비교되는 API입니다.


4) HTTP Method의 요청으로 Resourcescreate / read / update / delete (CRUD) 기능이 있습니다.

 URL을 통하여 Resource에 접근한다고 한다면 이제 HTTP method를 통하여 해당 Resources를 CRUD 즉, create read update delete 할 수 있습니다.



REST 의 장점


1. 우선 REST의 장점은 플랫폼(윈도우나 리눅스같은 하드웨어 아키텍쳐나 소프트웨어 프레임워크의 종류)과 프로그래밍 언어에 제한 받지 않는 다는 것입니다.

2. 사람이 이해하기 쉽게 되어 있어서 개발하기가 단순하고 개발이나 실행시키는 데 도구환경이 필요가 없습니다.

3. 서버와 클라이언트를 독립적으로 구현하게 되므로 확장성이 향상됩니다.


REST의 단점


1. Point-to-point 통신 모델로 둘 이상의 상호작용하는 분산 환경에 유용하지 않습니다.

2. 보안, 정책 등 REST에 대한 표준이 없습니다.  관리가 어렵습니다.

3. HTTP 통신 모델에만 적합한 API 입니다. 하지만 꼭 HTTP에만 사용할 수 있는 것은 아닙니다.


2편으로 넘어가겠습니다.





댓글