No img

REST(REpresentational State Transfer)


2020년도 로이 필딩의 박사학위 논문에서 최초로 소개된 REST는 당시 웹 설계의 우수성에 비해 제대로 사용되지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 발표됐다.

쉽게 말하면 REST는 HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍처다.

 

REST 구성요소


REST는 자원(resource), 행위(verb), 표현(representation) 3가지로 구성되어있다.

- 자원: URI, 모든 자원에 고유한 ID가 존재하고 이 자원은 서버에 존재한다. 자원을 구별하는 id는 URI다.

- 행위: http 프로토콜의 method(*GET, POST, PUT, DELETE)를 사용한다.

- 표현: 클라이언트가 자원의 상태에 대한 조작을 요청 시 서버는 적절한 응답을 보낸다.

 

* HTTP METHOD

POST URI를 요청하면 리소스 생성
GET 리소스를 조회 및 정보 반환
PUT 리소스 수정
DELETE 리소스 삭제

 

REST 특징


1. 서버 클라이언트 구조

2. Stateless(무상태): 클라이언트의 context를 서버에 저장하지 않고, 서버는 각각의 요청을 별개의 것으로 인식하고 처리

3. Cacheable(캐시 처리 가능): 캐시 사용을 통해 응답시간이 빨라지고 REST 서버 트랜잭션이 발생하지 않기 때문에 전체 응답시간, 성능, 서버의 자원 이용률 향상 가능

4. Layered System(계층화): REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 네트워크 기반의 중간매체 사용을 가능하도록 만듦.

5. Uniform Interface(인터페이스 일관성)

 

REST API


REST API는 REST를 통해 서비스 API를 구현한 것이다.

REST API를 설계할 땐 1. URI 정보는 자원을 표현, 2. 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현 2가지는 꼭 기억해야한다.

 

URI 설계

1. 슬래시(/) 구분자는 계층 관계를 나타내기 위해 사용한다.

2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.

3. 긴 URI를 사용할 경우 하이픈(-)을 사용해 가독성을 높이며, 밑줄(_)은 URI에 사용하지 않는다.

4. URI 경로에는 소문자를 사용하며, 파일확장자는 포함하지 않는다.

 

+) RESTful

일반적으로 REST 아키텍처를 구현하는 웹 서비스를 표현하기 위해 사용되는 용어다.

따라서 REST API를 제공하는 웹 서비스를 RESTful하다고 표현할 수 있다.

 

 

참고 자료


gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

medium.com/@dydrlaks/rest-api-3e424716bab

meetup.toast.com/posts/92

'CS > Web & Network' 카테고리의 다른 글

http vs https  (0) 2020.10.05
TCP vs UDP  (0) 2020.10.05
흐름 제어 및 오류 제어  (0) 2020.10.05
OSI 7계층 모델  (0) 2020.10.05
[Node.js]Node.JS Study - 모듈  (0) 2020.06.25
[통신] http 통신 vs socket 통신  (0) 2020.06.16
[Tistory] 스킨 만들기 - 2. skin.html  (0) 2020.06.03
[Tistory] 스킨 만들기 - 1.기본구조  (0) 2020.06.02