쳉지로그

[네트워크] REST(Representational State Transfer) 본문

네트워크/기초 용어

[네트워크] REST(Representational State Transfer)

쳉지 2021. 11. 24. 15:40
REST(Representational State Transfer) 정의

- 자원(Resource)의 표현(Representation)에 의한 상태(정보) 전달

- 즉, HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것

CRUD란?
- 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능(Create, Read, Update, Delete)를 묶어서 일컫는 말

Create 생성 (POST)
Read 조회 (GET)
Update  수정 (PUT)
Delete  삭제 (DELETE)

 

 

REST 구성요소

1. 자원(Resource, URI)

  - 모든 자원은 고유한 ID를 가지며, 서버에 존재한다.

 

2. 행위(Method)

  - HTTP 프로토콜의 Method를 사용한다.

 

3. 표현(Representation)

  - 주로 JSON, XML을 통해 데이터를 주고 받는 것이 일반적이다.

 

 

REST 특징

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

  - Client가 Server로 자원을 요청한다.

 

2. 무상태성(Stateless)

  - HTTP 프로토콜의 특징과 동일하게 Stateless하다.

  - 즉, 서버는 각각의 요청을 완전히 별개로 인식하여 처리한다.

 

3. 캐시 처리 가능(Cacheable)

  - 웹 표준 HTTP 프로토콜을 그대로 사용하므로, HTTP의 특징 중 하나인 캐싱 기능 적용이 가능하다.

 

4. 계층화(Layered System)

  - REST 서버는 다중 계층으로 구성 가능하다.

 

5. 인터페이스 일관성(Uniform Interface)

  - URI를 지정한 자원(Resource)에 대한 조작을 일관된 인터페이스로 수행한다.

 

 

REST 장/단점

장점

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

- HTTP 프로토콜의 인프라를 그대로 사용하므로 별도의 인프라 구축이 불필요

- 서버와 클라이언트의 역할을 명확하게 분리

 

단점

- 표준이 없음

- 사용 가능한 메소드 4개밖에 없음

- 구형 브라우저가 지원해주지 못하는 부분이 존재함

 

 

REST API? RESTful?

REST API 정의

- REST를 기반으로 서비스 API를 구현한 것

API(Application Programming Interface)란?
- 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

REST API 설계 기본 규칙

1. 슬래시( / )는 계층 관계를 표현한다.

2. URI 마지막에는 슬래시를 포함하지 않는다.

3. 하이픈( - )을 사용해 가독성을 높이고, 밑줄( _ )은 사용하지 않는다.

4. 파일 확장자는 URI에 포함하지 않는다. (Accept header 사용)

 

RESTful 정의

- REST 원리를 따르는 시스템

- 즉, REST API를 제공하는 웹 서비스를 RESTful하다고 표현

Comments