ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Server] REST API의 간단한 개념
    development/Server | Node.js 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)란 - 서버, 구현, 사용법

Designed by Tistory.