REST API

임재성·2023년 12월 26일
0

REST

무엇인가?

  • REST(REpresentationl State Transfer)는 웹에서 컴퓨터 시스템 간에 표준을 제공하여 시스템이 서로 더 쉽게 통신할 수 있도록 하는 아키텍처 스타일.

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

구성요소

  • 자원(Resource), URI
    시스템이 제공하는 모든 것을 자원으로 표현. 각 자원은 고유한 식별자(URI)를 가지고 있으며, 해당 자원의 상태는 표현(Representation)을 통해 나타남.

  • 표현(Representation)
    자원의 상태를 전송하기 위한 형식. 표현은 다양한 형태로 나타날 수 있으며, 주로 JSON 또는 XML 형식을 사용.

특징

  • 클라이언트 / 서버 구조(Client-Server)
    클라이언트-서버는 서로의 관심사로부터 분리되어 있음.
  • 무상태(Stateless)
    HTTP는 Stateless 프로토콜 이므로 REST 역시 무상태성을 가진다. 클라이언트의 Context를 서버에 저장하지 않는다.
  • 캐시(Cachealble)
    네트워크의 효율성을 향상시키기 위한 제약조건으로, 클라이언트의 요청에대한 응답이 캐시로서 저장될 수 있다면 이후의 동일한 요청은 캐시의 데이터를 재사용하여 응답이 가능.
  • 계층화API
    서버는 순수 비즈니스 로직을 수행하고 그 앞단에 사용자 인증, 암호화, 로드밸런싱 등을 하는 계층을 추가하여 구조상의 유연성을 줄 수 있음.
  • 인터페이스 일관성(Uniform Interface)
    URI로 지정한 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행. HTTP 표준에만 따른다면 모든 플랫폼에 사용이 가능.

장단점

  • 장점
  1. HTTP 의 인프라를 그대로 사용하므로 별도의 인프라를 구출할 필요가 없다.
  2. HTTP 의 표준을 최대한 활용하여 기존의 장점을 함께 가져갈 수 있게 해 준다.
  3. HTTP 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  4. Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
  5. REST API 메시지가 어떤 작업을 하려는지 쉽게 알 수 있다.
    서버와 클라이언트의 역할을 명확하게 분리한다.
  • 단점
  1. 표준이 자체가 존재하지 않아 정의가 필요하다.
  2. HTTP Method 형태가 제한적이다.

RESTful

  • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어.
    'REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
    즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
profile
조금씩 앞으로

0개의 댓글