목차
· 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는 요청을 보내는 주소만으로도 어떤 것을 요청하는지 파악할 수 있다.
레퍼런스
'취준적인' 카테고리의 다른 글
웹 접근성을 왜 지켜야해요? (1) | 2023.03.29 |
---|---|
왜 크로스 브라우징(Cross Browsing)을 고려해야해요? (0) | 2023.03.21 |
브라우저는 어떻게 작동할까? (0) | 2023.03.14 |
보안 정책에 관련된 SOP와 CORS (0) | 2023.03.14 |
함수형 컴포넌트와 클래스 컴포넌트 리마인드 (0) | 2023.03.05 |
댓글