본문 바로가기
CS/WEB 개론

REST란 무엇인가

by JooRi 2024. 7. 11.
728x90
SMALL

* REST(Representational State Transfer, 자원의 상태 전달)

자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다.

 

* REST의 조건

1. 독립적 클라이언트&서버

클라이언트와 서버는 독립적으로 분리되어 있어야 한다.

 

2. Stateless

요청에 대해서 클라이언트의 상태가 서버에 저장되지 않는다.

 

3. 캐시

클라이언트는 서버의 응답을 캐시 할 수 있어야 한다.

클라이언트가 캐시를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해 서버의 부하를 낮출 수 있다.

 

4. 계층화(Layered System)

서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy 등 다계층 형태를 구성할 수 있어야 하며, 확장할 수 있어야 한다.

 

5. 인터페이스 일관성

아키텍처를 단순화시키고 작은 단위로 분리하여서 클라이언트와 서버가 독립적으로 개선될 수 있어야 한다.

 

6. Code on Demand(Optional)

특정 기능을 서버가 클라이언트에 코드를 전달하여 실행할 수 있어야 한다.

 

* 인터페이스 일관성(RESTful하다, REST API)

인터페이스 일관성이 잘 지켜졌는지에 따라 REST를 잘 사용했는지 판단할 수 있다.

 

1. 자원 식별

웹 기반의 REST에서는 리소스 접근을 URI를 사용한다.

 

예시

 

2. 메시지를 통한 리소스 조작

Web에서는 HTML, XML, JSON, TEXT 등 다양한 방식으로 데이터를 전송할 수 있다.

header 부분에 content-type을 통해 어떤 타입인지 지정할 수 있다.

 

3. 자기 서술적 메시지

요청하는 데이터가 어떻게 처리되어야 하는지 충분한 데이터를 포함할 수 있어야 한다.

HTTP 기반의 REST에서는 HTTP 메서드와 Header의 정보로 표현할 수 있다.

 

HTTP 메서드

 

4. 애플리케이션 상태에 대한 엔진으로서 하이퍼미디어

REST API를 개발할 때에도 단순히 클라이언트 요청에 대한 데이터만 내리는 것이 아닌, 관련된 리소스에 대한 Link 정보까지 포함되어야 한다.

 

위 와 같은 인터페이스 일관성 조건을 잘 갖춘 경우를 REST Ful 하다라고 하며, 이를 REST API라고 부른다.

 

* URI(Uniform Resource Identifier)

인터넷에서 특정 자원을 나타내는 주소값을 말한다. 해당 값을 유일하다.

 

URI 예시

 

URL(Uniform Resource Locator)은 특정 파일이 어디에 위치하는지 식별하는 주소를 말한다.

URL은 URI의 하위 개념이다.

URL 예시

 

* URI 설계 원칙(RFC-3986)

 

 

 

728x90
LIST

'CS > WEB 개론' 카테고리의 다른 글

HTTP란 무엇인가  (0) 2024.07.08

댓글