IT 용어

REST의 제약 조건 / 특징

루바의 여정 2024. 4. 24. 23:51

 

 


REST의 제약 조건

 

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

  • Client: 자원을 요청하는 곳
  • Server: 자원을 제공하는 곳
  • REST Server: API를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
  • Client는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다.
  • 역할을 확실히 구분함으로써 서로 간 의존성을 줄인다.

2. Uniform Interface - 균일한 인터페이스

  • URI로 지정한 Resource에 대한 조작을 가능하게 하는 아키텍쳐 스타일을 의미한다.
  • HTTP 표준 Protocol을 따르는 모든 플랫폼에서 사용이 가능하다.
  • 특정 언어나 기술에 종속되지 않는다.

3. Stateless - 무상태성

  • Stateless: 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법
  • HTTP Protocol은 Stateless Protocol이고 REST는 HTTP의 특성을 이용하기 때문에 무상태성을 갖는다.
  • Server는 Client의 요청을 완전히 별개의 것으로 인식하고 처리한다.
  • 따라서, Client에서 Server로의 각 요청에는 그 요청을 이해하는데 필요한 모든 정보가 포함되어야 한다.

4. Layered System - 계층화 시스템

  • 각 구성들 간의 계층을 마음대로 상호작용할 수 없도록 제한한다.
  • Client는 REST API Server만 호출한다.
  • REST Server는 다중 계층으로 구성될 수 있다.
  • Proxy, Gateway와 같은 네트워크 기반의 중간매체를 사용할 수 있어 자유도가 높다.
  • 이러한 계층은 Client에게 보이지 않는 상태로 유지된다.

5. Cacheable - 캐시 가능성

  • 웹 표준 HTTP Protocol을 사용하는 REST 특징으로 인해 웹에서 사용하는 인프라를 그대로 사용 가능하다.
  • 요청에 대한 응답 내의 데이터에 해당 요청은 캐시가 가능한지 불가능한지 명시해야 한다.
  • 대량의 요청을 효율적으로 처리하기 위해 캐시를 사용한다.
  • 캐시 사용을 통해 응답시간이 빨라지고, REST Server 트랜잭션이 발생하지 않아 전체 응답시간, 성능, 서버의 자원  이용률을 향상시킬 수 있다.

6. Code on demand - 온디맨드 코드 (optional)

  • Server는 소프트웨어 프로그래밍 코드를 Client에게 전송하여 Client 기능을 일시적으로 확장하거나 사용자 지정할 수 있다.

'IT 용어' 카테고리의 다른 글

WEB  (0) 2024.04.25
프레임워크와 라이브러리  (0) 2024.04.25
REST  (0) 2024.04.24