REST(Representational safe transfer)

kimji1
3 min readMar 18, 2020

--

  • REST는 엄격한 의미로 네트워크 아키텍처 원리의 모음
  • 웹의 장점을 최대한 활용할 수 있는 아키텍처
  • ‘네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 말한다.
  • 간단한 의미로 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다.
  • REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다.

구성 요소

  • 자원: URI
  • 행위: HTTP 메서드와 동일
  • 표현

행위 — 메서드

  • 각각의 메서드가 CRUD 메서드에 대응됨
  • Idempotent: POST를 제외한 나머지 메서드에 대해서는 여러 번 수행 해도 결과가 같음
  • POST — create
  • GET — select
  • PUT — update
  • DELETE — delete

REST 아키텍처에 적용되는 6가지 제한 조건

클라이언트/서버 구조

무상태(Stateless)

  • 각 요청 간 클라이언트의 Context가 서버에 저장되어서는 안 된다.

캐시 처리 가능

  • WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
  • 잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability(확장성)와 성능을 향상시킨다.

계층화(Layered System)

  • 클라이언트는 보통 대상 서버에서 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지 알 수 없다.
  • 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.

Code on demand(optional)

  • 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.

인터페이스 일관성

  • 아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.

REST의 주요 목표

  • 구성 요소 상호작용의 규모 확장성
  • 인터페이스의 범용성
  • 구성요소의 독립적인 배포
  • 중간적 구성요소를 이용해 응답 지연 감소, 보안을 강화, 레거시 시스템을 인캡슐레이션

--

--

kimji1
kimji1

No responses yet