ITstudy

REST, REST API, RESTful에 대해서 이해하기!

martinooo 2022. 9. 5. 12:00

목표

  • REST의 개념 이해 
  • REST의 특징 이해
  • REST API의 개념을 이해
  • REST API의 설계 규칙을 이해
  • RESTful의 개념을 이해한다

REST의 개념

REST란 

  • REST의 정의 
  • "Representational State Transfer"의 약자 
    • 자원을 표현하여 해당 자원의 상태를 주고 받는 모든것을 의미 
    • 즉 자원(resource)의 표현(representation)에 의한 상태 전달 
    • 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 
      • REST는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
      • REST는 네트워크 상에서 Client와 Server사이의 통신 방식 중 하나이다. 
    • REST의 구체적인 개념 
      • HTTP URL(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(GET, POST, DELETE, PUT)을 통해서 해당 자원에 대한 CRUD Operation을 적용하는것을 의미 
        • CRUD Operation
          • Create : 생성(POST)
          • Read : 읽기(GET)
          • Update : 업데이트(Update)
          • Delete : 삭제(Delete)
          • HEAD : header 정보 조회(HEAD)
    • REST의 장단점 
      • 장점 
        • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가없다. 
        • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다. 
        • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의미 파악이 쉽다. 
        • 서버와 클라이언트의 역활이 명확하게 분리되어 있다.
      • 단점 
        • 표준이 존재하지 않는다. 
        • 사용할수 있는 메소드가 4가지 밖에 없다.
        • 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 더 어렵게 느껴진다.
  • REST 구성요소
    • 자원(Resource) : URL
      • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다. 
      • 자원을 구별하는 ID는 '/content/:id'와 같은 HTTP URL 이다. 
      • Client는 URL를 이용해서 자원을 지정하고 해당 자원의 상태에 대한 조작을 Server에 요청한다.
    • 행위(Verb) : HTTP Method
      • HTTP 프로토콜의 Method를 사용한다.
      • HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.
    • 표현(Representation of Resource)
      • Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답은 응답한다.
      • JSON 혹은 XML를 통해 데이터를 조고 받는 것이 일반적이다.
       

REST API란 

  • API(Application Programming Interface)란 
    • 데이터와 기능의 집합을 제공하여 컴퓨터 간에 인터페이스를 촉진하여, 서로 정보를 교환하는 것 
  • REST API의 정의 
    • REST 기반으로 서비스 API 구현한 것 
    • 최근 Open API(공개된 API: 구글 맵 공공 데이터 등)제공하는 업체 대부분은 REST API를 제공한다. 
  • REST API의 특징 
    • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다. 
    • REST는 HTTP표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수있다
  • REST API 설계 기본 규칙 
    • URL는 정보의 자원을 표현해야 한다. 
      • 대문자 보다는 소문자 
        • ex) GET /Content or /CONTENT -> /content 이렇게 사용해야된다. 
      • 자원에 대한 행위를 표현하면 안된다 (GET, POST, DELETE, PUT) 
        • ex) GET /content/get or /content/delete 등등 

RESTful이란 

  • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다. 
    • REST API를 제공하는 웹서비스를 RESTful하다고 할수있다.
  • RESTful은 REST에 대한 사용방법, 공식문서를 따른것이 아니다. REST 원리를 잘 따른 시스템이 RESTfull 이다 

RESTful 목적

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는것 

 

 

 

 

 

참고

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html