Rest

bird.j·2021년 4월 10일
0

cs, 면접

목록 보기
1/4

💡 Rest


자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것.

  • 클라이언트와 서버 사이의 통신 방법 중 하나이다.

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

  • 자원 명시할때는 복수형태의 명사가 일반적.



💡 Rest의 장점


  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.

  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.



💡 Rest의 단점


  • HTTP Method 형태가 제한적이다(사용할 수 있는 메소드가 4가지 밖에 없다.)



💡 REST가 필요한 이유


  • 다양한 클라이언트들의 등장

    • 최근의 서버 프로그램은 다양한 브라우저와 모바일 디바이스에서도 통신을 할 수 있어야한다.
    • 이러한 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색한 결과, REST에 관심을 가지게 되었다.



💡 REST 구성요소


1. 자원 : URI

  • 모든 자원에 고유한 ID가 존재하고, 이 자원은 서버에 존재한다.
  • 클라이언트는 URI를 이용해서 자원을 지정하고 해당 자원의 상태에 대한 조작을 서버에 요청한다.

2. 행위

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

3. 표현

  • 클라이언트가 자원의 상태에 대한 조작을 요청하면 서버는 이에 적절한 응답을 보낸다.
  • JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적



💡 REST 특징


  • 서버 클라이언트 구조. 자원이 있는 쪽이 서버, 자원을 요청하는 쪽이 클라이언트

  • stateless

    • 사용자나 클라이언트의 컨택스트를 서버쪽에 유지하지 않는다. 즉, HTTP Session과 같은 컨텍스트 저장소에 상태 정보를 저장하지 않는 형태를 의미한다.
    • 상태 정보를 저장하지 않으면 각 API 서버는 들어오는 요청만을 들어오는 메시지로만 처리하면 되며, 세션과 같은 컨텍스트 정보를 신경쓸 필요가 없기 때문에 구현이 단순해진다.


참고 | REST란?

0개의 댓글