REST는 Representational State Transfer라는 용어의 약자로 웹의 장점을 최대한 활용할 수 있도록 만들어진 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다.
즉 REST란
1. HTTP URI를 통해 자원을 명시하고
2. HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미합니다.
CRUD란 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말로 REST에서 CRUD는 다음과 같다
- Create : 데이터 생성(POST)
- Read : 데이터 조회(GET)
- Update : 데이터 수정(PUT)
- Delete : 데이터 삭제(DELETE)
REST는 아래에서 설명할 제약조건(특징)들을 가지고 있는데 이 모든 제약조건이 지켜진 형태를 REST “-ful” 하다고 표현한다.
200 OK
{
"id" : "1",
"name" : "zayson",
"links" : {
"grade" : "/members/1/grade", // 등급을 수정하는 ACTION URI 전달
"exp" : "/members/1/exp" // 경험치를 수정하는 ACITON URI 전달
}
}
클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다..
https://meetup.toast.com/posts/92
https://ko.wikipedia.org/wiki/REST
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80
https://sabarada.tistory.com/26