우파루파의 개발 기록

[Server] REST API의 간단한 개념 본문

development/Server | Node.js

[Server] REST API의 간단한 개념

upa-r-upa 2021. 6. 24. 22:47

이번 포스팅에서는 REST 아키텍처의 개념에 대해 간단하게 개념 정리를 해보겠습니다.

단순한 개념 정리이므로 개념에 대해 훑는 정도로만 봐주시면 될 것 같습니다.

REST란

Representational State Transfer 의 약어입니다.

소프트웨어 아키텍처의 한 형식이고, 네트워크 아키텍처 원리의 모음이라고 정의합니다.

HTTP 통신에서 특정 자원에 대한 요청ResourceMethod로 표현하여 특정한 형태로 응답하는 것을 말합니다.

용어에 대한 개념은 아래에서 간단하게 짚어보겠습니다.

이외의 다른 아키텍처는 대표적으로 SOAP 이 있습니다.

특정 자원에 대한 요청의 종류

CRUD 액션

  • Create
  • Read
  • Update
  • Delete

Resource

클라이언트가 요청할 수 있는 Unique한 값을 가진 URI(uniform resource identifier)를 말합니다.

Method

행위에 대한 정의에만 집중하며, HTTP METHOD를 사용합니다.

  • GET
  • 단순히 데이터를 READ 할 때 사용합니다.
  • POST
  • 데이터를 추가할 때 사용합니다.
  • PUT (자원의 전체 교체)
  • 데이터를 수정할 때 사용합니다.
  • PATCH (자원의 부분 교체)
  • 데이터를 수정할 때 사용합니다.
  • DELETE
  • 데이터를 삭제할 때 사용합니다.

특정한 형태

JSON 형식을 말합니다.

네트워크 아키텍처 원리란?
자원(Resource)를 정의하고 자원에 대한 주소를 지정하는 방법 전반을 말합니다.

REST 아키텍처의 6가지 조건

  • 인터페이스의 일관성특정한 클라이언트의 플랫폼에 종속되지 않고 모든 클라이언트에서 사용 가능하게 해야 합니다.
    • 요청을 일관되고 한정적으로 수행할 수 있는 아키텍처 구조를 의미합니다.
  • 무상태
    • 클라이언트의 Request에 대한 정보를 저장하지 않아야 하고, 클라이언트 각각의 요청을 개별적인 요청으로 받아들여야 합니다. 서버에서 처리해야 하는 부하가 줄어드므로 더 효율적으로 처리할 수 있습니다.
  • 캐시 처리 가능
    • 캐시 처리가 가능해야 합니다.
  • 계층화
    • 클라이언트가 요청한 데이터를 검색하는 데 있어 필요한 관련된 서버의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화된 시스템이어야 합니다.
  • Code on demand (Optional)
    • 클라이언트의 요청을 받으면 서버가 클라이언트에서 실행할 수 있는 코드를 전송하여 클라이언트의 기능을 확장시킬 수 있는 기능이 있어야 합니다.
  • 클라이언트/서버 구조
    • 클라이언트 & 서버 및 리소스로 구성되어 있으며 요청이 HTTP를 통해 관리되는 아키텍처여야 합니다.

참조 문서

REST - 위키백과, 우리 모두의 백과사전

REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법