본문 바로가기
취준적인

RESTful하다, REST하다?

by klm hyeon woo 2023. 3. 29.

목차

· REST란?

· REST 구성요소

· REST의 특징

· REST에서 가장 중요한 중심 규칙 2가지

· REST의 장점

· REST의 단점

· REST API는 무엇일까?

· REST API의 설계 원칙

· RESTful이란?


REST란?

· REpresentational State Transfer의 약자

· 자원을 정의하고 자원에 대한 주소를 지정하는 네트워크 아키텍처의 모음

· 자원(Resource)의 표현(Representation)에 의한 상태 전달

REST 구성요소

Resource(자원) - URI
· 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
· 자원을 구별하는 ID는 HTTP URI이다.
· Client는 URI를 이용해서 자원을 지정하고, 해당 자원의 상태에 대한 조작을 Server에 요청한다.

Verb(행위) - HTTP Method
· HTTP 프로토콜의 method(POST, GET, DELETE, PUT)를 사용한다.

Representation(표현)
· Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 대해 응답(표현)을 보낸다.
· 자원은 JSON, XML, TEXT, RSS 등으로 표현되어 나타내질 수 있다. JSON 혹은 XML을 통해 전달하는 것이 일반적이다.

REST의 특징

· 인터페이스 일관성 : URI로 지정한 Resource에 대한 조작은 통일되고 한정적인 인터페이스로 수행한다.
· 무상태(Stateless) : 각 요청 간 클라이언트의 context가 Server에 저장되어서는 안된다. Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다. Server의 처리 방식에 일관성을 부여하고 부담이 줄어들며, Server의 자유도가 높아진다.
· 캐시 처리 가능(Cacheable) : www 에서와 같이 Client는 응답을 캐싱할 수 있어야한다.
· 계층화(Layered System) : Client는 REST API Server만 호출한다. REST Server는 다중 계층으로 구성될 수 있다. 로드밸런싱, 공유 캐시 등을 통해 확장성과 보안성을 향상 시킬 수 있다.
· Code on Demand(Optional) : Java applet이나 JavaScript를 제공해 Server가 Client가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
· Client-Server 구조 : 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client가 된다. 아키텍처를 단순화시키고 작은 단위로 분리함으로써 Client-Server의 각 파트가 독립적으로 개선될 수 있도록 해준다.

REST에서 가장 중요한 중심 규칙 2가지

· URI는 정보의 자원을 표현해야한다.

· 자원의 대한 행위는 HTTP Method로 표현한다.

장점

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

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

· API가 의도하는 메세지를 쉽게 파악할 수 있다.

· Server와 Client의 역할을 명확하게 분리한다.

단점

· 사용할 수 있는 method가 제한적이다.

· 이에 따른 표준이 존재하지 않는다.

REST API는 무엇일까?

· REST의 특징을 기반으로 서비스 API를 구현한 것이다.

· 최근 Open API나 마이크로 서비스를 제공하는 기업 대부분은 REST API를 제공한다.

· 각 요청이 어떤 정보나 동작을 위한 것인지를 그 요청의 모습(URI) 자체로 추론 가능하다.

· REST API 디자인은 REST의 두 가지 중요 원칙을 지키며 설계한다.

1. URI는 정보의 자원을 표현해야한다.

2. 자원에 대한 행위는 HTTP Method로 표현한다.

REST API 설계 원칙

· URI는 명사를 사용한다.
· / 로 계층 관계를 표현한다.
· URI 마지막 문자로 / 를 포함하지 않는다.
· URI는 소문자로만 구성한다.
· HTTP 응답 상태 코드를 사용한다.
· 파일 확장자는 URI에 포함하지 않는다.

RESTful 이란?

· REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful API라고 한다. REST 원리를 따르는 시스템을 RESTful 하다고 한다.

· RESTful한 API는 요청을 보내는 주소만으로도 어떤 것을 요청하는지 파악할 수 있다.


레퍼런스

 

[Frontend 기술 면접 대비] REST API

RESTful하다는것은? REST API란?

velog.io

 

댓글