REST, RESTful 이란?

엄재홍·2022년 4월 20일
0

REST 란

Representatitonal State Transfer 의 약자로 자원을 표현에 의해서 정보(상태) 를 주고받는 것을 의미한다.

자원의 표현에 의한 상태 전달 이라고 말할수있으며 데이터. 즉 문서, 사진, 소프트웨어 같은 것들을 표현을 통해서 전달 한다. 예를 들어 수량은 quantity 라고 칭하듯이 데이터가 요청되어질때 자원의 정보를 전달하는 것.

HTTP URI를 통해 데이터의 표현에 의한 정보, 상태를 전달받아 HTTP METHOD를 통해 CRUD 오퍼레이션을 적용한다.

장점

  • HTTP 프로토콜의 인프라를 그대로 사용하기에 (그냥 주소에 적어주면 되기에) REST API 사용을 위해 별도의 인프라 구축이 필요하지 않다.
  • HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하다.
  • URI에 데이터의 표현이 명확하다.
  • 서버와 클라이언트의 역할을 명확하게 분리한다.

단점

  • 메소드가 한정적이라는 점과 지원하지 않는 구형 브라우저가 있다는 점?

REST API

  • 위에 말한 REST 기반으로 서비스 API를 구현한 것을 말한다

특징

  • REST 기반으로 시스템을 분산하여 확장성, 재사용성을 높여 유지보수 및 운용을 편리하게 할수있다.
  • HTTP 표준을 기반으로 하기에 HTTP를 지원하는 프로그래밍 언어라면 뭐든지 클라이언트, 서버를 구현할수있다.
  • 클라이언트와 서버가 명확히 나눠진다.

RESTful 이란

REST 한, REST 스러운 것을 RESTful 하다 라고 한다.

REST가 가진 규칙이나 표준(컨벤션)을 잘 따라서 작성했다면 그 어떤것도 RESTful 하다 라고 말할수있다.

RESTful 의 목적은 가독성이 높고 이해가 쉽고 사용이 쉬운 REST API 를 만드는것이다.

RESTful하게 작성했다해서 성능이 향상 되지는 않는다. 그저 일괄적인 컨벤션으로 이해도 와 호환성을 높이는 것이 주 목적이다.

URL Rules

  • 2.1. 마지막에 / 포함하지 않는다.
  • 2.2. _(underbar) 대신 -(dash)를 사용한다.
  • 2.3. 소문자를 사용한다.
  • 2.4. 행위(method)는 URL에 포함하지 않는다.
  • 2.5. 컨트롤 자원을 의미하는 URL 예외적으로 동사를 허용한다.

위와 같은 컨벤션을 지킨다면 RESTful URL이라고 말할수있다.

RESTful 하지 못한 경우

  • 모든 HTTP 전송 METHOD를 하나로 지정해서 사용하는것
  • 동사를 사용하는 경우. Ex) /cart/show, cart/buy
  • 우리는 처리 결과가 성공일때 성공 메세지와 http status code 도 같이 포함해서 보내줍니다. 하지만 그렇게 하는것보다 바디에는 순수한 데이터만을 전송하고 추가 되는 부분은 http 헤더에 전송하는 방식이 아닌경우
profile
유비무환. 고로 준비합시다.

0개의 댓글