Skip to content
JONGMINFIRE.DEV

REST, REST API, RESTful

Network


REST란?


'Representational State Transfer' 의 약자로

웹에 존재하는 모든 자원 (이미지, 동영상, DB 자원) 에 고유한 URI를 부여하고, HTTP 메소드 (POST,GET,PUT,DELETE) 를 통해 해당 자원에 대한 CRUD Operation(Create,Read,Update,Delete) 을 적용하는 것 을 의미한다.


REST의 특징

  1. Uniform Interface (균등한 인터페이스)

    REST가 HTTP의 표준만 따른다면 어떤 기술이던지 접목하여 사용할 수 있으므로 플랫폼이나 언어의 제약에 구애받지 않음.

  2. Server-Client (서버-클라이언트 구조)

    REST 서버가 API를 제공하는 방식이기 때문에 클라이언트에서 처리하는 부분과 독립적으로 동작해 서로간의 의존성이 줄어든다.

  1. Stateless (무상태성)

    서버는 클라이언트의 상황을 고려하지 않고 API 요청에 대해서만 처리하기 때문에 '상태가 없다' 라고 표현한다.

  1. Cacheable (캐시 처리 가능)

    REST는 HTTP 표준을 기반으로 만들어졌기 때문에 HTTP의 특징인 캐싱을 사용할 수 있다.

  1. Self-Descriptiveness (자체 표현성)

    REST API의 자원명시 규칙과 메소드는 그 자체로 의미를 지니기 때문에 요청 자체로 어떤 것을 표현하는지 알아보기 쉽다.

  1. Layered System (계층 구조)

    클라이언트는 계층형 구조가 불가능하지만 REST 서버는 다중 계층으로 구성 될 수 있다.


REST의 장점
  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다
  • REST API 메시지가 의도하는 바를 명확하게 나타내, 의도하는 바를 쉽게 파악 할 수 있다.

REST의 단점
  • 표준이 존재하지 않는다.
  • 사용할 수 있는 메소드가 4가지로 제한적이다.
  • 구형 브라우저가 제대로 지원하지 못하는 부분이 있다.

REST API란?


API는 기존에 있는 응용 프로그램을 통해서 데이터를 제공받거나 기능을 사용하고자 할 때 사용하는 인터페이스 및 규격으로써 REST API는 REST 기반으로 서비스 API를 구현한 것이다.

구글 맵 API, 카카오 API 등 OpenAPI 나 마이크로 서비스를 제공하는 업체는 대부분 REST API를 사용한다.

REST API를 디자인 할 때는

  1. URI는 정보의 자원을 표현해야 한다.
  2. 자원에 대한 행위는 HTTP Method (GET,POST,PUT,DELETE)로 표현한다.

의 규칙을 디키며 디자인 하도록 한다.


RESTful 이란?

REST의 기본 원칙을 성실하게 지킨 서비스를 'RESTful' 하다 라고 표현한다.



참조

© 2023 by JONGMINFIRE.DEV. All rights reserved.
Theme by LekoArts