1. REST란?
- Respresentational State Transter의 약자로 자원을 이름으로 구분하여 자원의 정보 및 상태를 주고 받는 모든 것을 의미한다.
- HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD Operation을 적용하는 것이다.
- REST는 기본적으로 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
- CRUD Operation
- Create : 생성 (POST)
- Read : 조회 (GET)
- Update : 수정 (PUT)
- Delete : 삭제 (DELETE)
- HEAD : header 정보 조회 (HEAD)
2. REST의 구성 요소
1) 자원 : URI
- 모든 자원에 고유한 ID가 존재하고, 이는 server에 존재한다.
- 자원을 구별하는 ID는 '/group/student/:idx' 같은 HTTP URI이다.
- client는 URI를 통해 자원을 지정하고 해당 자원의 상태에 대한 조작을 server에 요청한다.
2) 행위 : HTTP Method
- HTTP 프로토콜의 GET, POST, PUT, DELETE와 같은 메소드를 사용한다.
3) 표현
- 클라이언트가 자원의 상태에 대한 조작을 요청하면 서버는 이에 알맞은 응답을 보낸다
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현으로 나타낼 수 있다.
(주로 JSON/XML을 통해 데이터를 주고 받음)
3. REST API의 특징
- 이는 REST 기반으로 서비스 API를 구현했기 때문에 확장성과 재사용성을 높여 유지보수 및 운영이 편리하다
- REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 구현이 가능하다
4. RESTful이란?
- REST API를 제공하는 웹서비스를 표현하기 위한 단어로, 해당 웹서비스가 RESTful하다~ 이런식으로 사용
- 즉, CRUD 기능을 모두 POST로만 처리하거나 route에 resource, id 외의 정보가 들어가는 경우에는 RESTful하지 못하다고 할 수 있다.
참고) https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'사이드 프로젝트 > 개발몰입과정[2021_SUMMER]' 카테고리의 다른 글
2주차 개념 스터디 - HTTP (1) (0) | 2021.08.09 |
---|---|
1주차 개념 스터디 - Node.js의 BE 또는 FE Library / Framework (0) | 2021.08.01 |
1주차 개념 스터디 - 라이브러리와 프레임워크의 차이 (0) | 2021.07.31 |
1주차 개념 스터디 - 정적 타입 언어 vs 동적 타입 언어 (0) | 2021.07.31 |
1주차 개념 스터디 - npm(yarn)이란 무엇인가 (0) | 2021.07.31 |
댓글