ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API
    Back-End 2022. 2. 15. 19:42

    REST API

    • REST API에서 REST는 Representational State Transfer의 약자로 소프트에어 프로그램 아키텍처의 한 형식이다.
    • 자원의 이름 (자원의 표현)으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
    • REST는 기본적으로 웨의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

    구체적인 개념

    • HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해서 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다.
    • 즉, REST는 자원 기반의 설계의 중심에 Resource가 있고, HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처를 의미
    • CRUD Operation
      • Create : 생성 (POST)
      • Read : 조회 (GET)
      • Update : 수정 (PUT)
      • Delete : 삭제 (DELETE)
      • HEAD : Header 정보 조회

    REST 구성

    • 자원 (Resource) - URL
    • 행위 (Verd) - HTTP Method
    • 표현 (Representaions)

    1. 자원 (Resource) URL

    • 모든 자원에 고유한 ID가 존재하며, 이 지원은 Server에 존재한다.
    • 자원을 구별하는 ID는 /orders/order_id/1 과 같은 HTTP URI다.

    2. 행위 (Verd) - HTTP Method

    • HTTP 프로토콜의 Method를 사용한다.
    • HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.

    3. 표현 (Representaions)

    • 클라이언트가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
    • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답으로 나타낼 수 있다.
    • 현재는 JSON으로 주고 받는 것이 대부분이다.

    4. REST의 장단점

    • 장점
      • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
      • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다
      • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
      • 서버와 클라이언트의 역할을 명확하게 분리한다.
      • 여러가지 서비스 다지인에서 생길 수 있는 문제를 최소화한다.
    • 단점
      • 표준이 존재하지 않는다.
      • 사용할 수 있는 Method가 4가지 밖에 없다.
        • HTTP Method 형태가 제한적이다.
      • 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 있다.
        • PUT, DELETE를 사용하지 못한다.
        • PushState를 지원하지 않는다.

    5. REST API 특징

    • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
    • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.

    'Back-End' 카테고리의 다른 글

    CI/CD  (0) 2022.02.22
    SQL Select Query 문법 처리 순서  (0) 2022.02.22
    MongoDB 장점  (0) 2022.02.17
    HTTPS와 SSL  (0) 2022.01.29
    SQL SELECT 문법  (0) 2022.01.07
Designed by Tistory.