— Network
REST란?
'Representational State Transfer' 의 약자로
웹에 존재하는 모든 자원 (이미지, 동영상, DB 자원) 에 고유한 URI를 부여하고, HTTP 메소드 (POST,GET,PUT,DELETE) 를 통해 해당 자원에 대한 CRUD Operation(Create,Read,Update,Delete) 을 적용하는 것 을 의미한다.
Uniform Interface (균등한 인터페이스)
REST가 HTTP의 표준만 따른다면 어떤 기술이던지 접목하여 사용할 수 있으므로 플랫폼이나 언어의 제약에 구애받지 않음.
Server-Client (서버-클라이언트 구조)
REST 서버가 API를 제공하는 방식이기 때문에 클라이언트에서 처리하는 부분과 독립적으로 동작해 서로간의 의존성이 줄어든다.
Stateless (무상태성)
서버는 클라이언트의 상황을 고려하지 않고 API 요청에 대해서만 처리하기 때문에 '상태가 없다' 라고 표현한다.
Cacheable (캐시 처리 가능)
REST는 HTTP 표준을 기반으로 만들어졌기 때문에 HTTP의 특징인 캐싱을 사용할 수 있다.
Self-Descriptiveness (자체 표현성)
REST API의 자원명시 규칙과 메소드는 그 자체로 의미를 지니기 때문에 요청 자체로 어떤 것을 표현하는지 알아보기 쉽다.
Layered System (계층 구조)
클라이언트는 계층형 구조가 불가능하지만 REST 서버는 다중 계층으로 구성 될 수 있다.
REST API란?
API는 기존에 있는 응용 프로그램을 통해서 데이터를 제공받거나 기능을 사용하고자 할 때 사용하는 인터페이스 및 규격으로써 REST API는 REST 기반으로 서비스 API를 구현한 것이다.
구글 맵 API, 카카오 API 등 OpenAPI 나 마이크로 서비스를 제공하는 업체는 대부분 REST API를 사용한다.
REST API를 디자인 할 때는
의 규칙을 디키며 디자인 하도록 한다.
REST의 기본 원칙을 성실하게 지킨 서비스를 'RESTful' 하다 라고 표현한다.