REST(Representational State Transfer)의 구체적인 개념
-HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
- 즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고
HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
- 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
- CRUD Operation
- Create : 생성(POST)
- Read : 조회(GET)
- Update : 수정(PUT)
- Delete : 삭제(DELETE)
- HEAD : header 정보 조회(HEAD)
REST의 장단점
장점 :
-HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가 없다.
-HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
-HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
-Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
-REST API 메시지가 의도하는 바를 명혹하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
-여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화 한다.
-서버와 클라이언트의 역할을 명확하게 분리한다.
단점 :
-표준이 존재하지 않는다.
-사용할 수 있는 메소드가 4가지 밖에 없다.(HTTP Method 형태가 제한적이다.)
-브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 왠지 더 어렵게 느껴진다.
-구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재한다.
(PUT, DELETE를 사용하지 못하는 점, pushState를 지원하지 않는 점)
REST가 필요한 이유
-애플리케이션 분리 및 통합
-다양한 클라이언트의 등장
-최근의 서버 프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은
모바일 디바이스에서도 통신을 할 수 있어야한다.
작성 중
출처, 도움 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'자유' 카테고리의 다른 글
구글 플레이 스토어 개인 정보 처리 방침 (0) | 2020.10.29 |
---|---|
[github] error: src refspec master does not match any (0) | 2019.11.12 |
신입 개발자 기술 면접 (1) JAVA (0) | 2019.10.11 |