본문 바로가기

자유

REST, REST API, RESTful

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