REST & REST API & RESTful

에이블·2022년 6월 13일
0

REST

Representational State Transfer

  • 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

  • 즉, 자원(resource)의 표현(representation)에 의한 상태 전달

  • 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식

  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일

구체적인 개념

  • HTTP URL를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

  • CRUD Operation

    • Create : 데이터 생성(POST)
    • Read : 데이터 조회(GET)
    • Update : 데이터 수정(PUT)
    • Delete : 데이터 삭제(DELETE)
  • REST의 특징

      1. Server - Client(서버 - 클라이언트 구조)
      1. Stateless(무상태)
      1. Cacheable(캐시 처리 가능)
      1. Layered System(계층화)
      1. Uniform Interface(인터페이스 일관성)

장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.

  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해 준다.

  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.

  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.

  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

  • 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.

  • 서버와 클라이언트의 역할을 명확하게 분리한다.

단점

  • 표준이 자체가 존재하지 않아 정의가 필요하다.

  • 사용할 수 있는 메소드가 4가지밖에 없다.

  • HTTP Method 형태가 제한적이다.

  • 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구된다.

  • 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다.(익스폴로어 등)

REST API

REST API란 REST의 원리를 따르는 API

  • REST API 설계 예시
      1. URI는 동사보다는 명사를, 대문자보다는 소문자를 이용하여야 한다.
      1. 마지막에 슬래시(/)를 포함하지 않는다.
      1. 언더바 대신 하이픈을 사용
      1. 파일확장자는 URI에 포함하지 않는다.
      1. 행위를 포함하지 않는다.

RESTful

RESTFUL이란 REST의 원리를 따르는 시스템을 의미합니다.
하지만 REST를 사용했다 하여 모두가 RESTful 한 것은 아닙니다.

REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있으며

모든 CRUD 기능을 POST로 처리 하는 API 혹은 URI 규칙을 올바르게 지키지 않은 API REST API의 설계 규칙을 올바르게 지키지 못한 시스템은

REST API를 사용하였지만 RESTful 하지 못한 시스템이라고 할 수 있습니다.

profile
꺾이지 않는 마음

0개의 댓글