본문 바로가기
WEB

REST api 란?

by sangfeeeeel 2021. 9. 22.

REST(RESTful)란 무엇일까요?


  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다.
  • 즉, HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미합니다.

REST의 장단점


  • 장점

    1. HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
    2. HTTP프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
    3. HTTP표준 프로토콜을 따르는 모든 플랫폼에서 적용 가능하다.
    4. REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.(구체적)
    5. 서버와 클라이언트의 역할을 명확하게 분리한다.
  • 단점

    1. 표준이 존재하지 않는다.
    2. HTTP Method 형태가 제한적이다.(4가지)

REST가 필요한 이유


  • 애플리케이션의 분리 및 통합
  • 다양한 클라이언트의 등장
  • 최근의 서버 프로그램은 다양한 브라우저와 안드로이드, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야한다.

REST의 특징


  1. Server - Client 구조
    • 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client가 된다.
    • 서로 간 의존성이 줄어든다.
  2. Stateless(무상태)
    • HTTP 프로토콜은 Stateless Protocol 이므로 REST역시 무상태성을 갖는다.
    • 서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.(각 API 서버는 Client의 요청만을 단순 처리한다, 이전 요청이 다음 요청의 처리에 연관되어서는 안된다)
    • 서버의 처리 방식에 일관성을 부여하고 부담이 줄어들며, 서비스의 자유도가 높아진다.
  3. 캐시 처리 가능
    • 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
    • 캐시 사용을 통해 응답시간이 빨라지고 REST Server 트랜잭션이 발생하지 않기 때문에 전체 응답시간, 성능, 서버의 자원 이용률을 향상시킬 수 있다.
  4. 계층화
    • Client는 REST API Server만 호출한다.
    • REST Server는 다중 계층으로 구성될 수 있다.
  5. 인터페이스 일관성
    • URI로 지정한 Resourse에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.
    • HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능하다.

'WEB' 카테고리의 다른 글

GET방식과 POST방식  (0) 2021.07.02