이론 정리

REST api의 기초

철매존 2022. 2. 27. 15:53
728x90

REST Api의 기초

먼저 spring boot에서 @RestController란 @Controller와 @ResponseBody의 조합이다.

  • Controller : Model객체를 통해 데이터를 전달하고, View를 찾아간다.
  • RestController : 객체만을 반환한다. -> 객체는 주로 JSON나 XML형태로 http응답에 담아서 전송한다.

Controller는 Spring 2.5버전에서부터, RestController는 spring 4.0버전에서부터 지원되었다.
RestController 사용시 모든 메소드가 뷰 대신 객체로 작성된다.

REST의 특징

  1. Uniform Interface
    HTTP의 표준에 따른다면 언어에 종속되지 않고, 모든 플랫폼에서 사용 가능하다.
  2. Stateless
    REST는 무상태성의 성격을 갖는다.
    들어오는 요청만을 처리하면 되기 때문에 자유도가 높아지고 구현이 단순해진다.
  3. Cacheable
    HTTP의 기존 웹 표준을 그대로 사용하기 때문에, 웹의 기존 인프라중 하나인 캐시 기능을 적용할 수 있다.
  4. Self-descriptiveness
    REST API의 메세지만 보고도 이를 쉽게 이해할 수 있는 구조로 되어 있다.
  5. Client-server구조
    REST server는 API를 제공하고, 클라이언트는 session/로그인 정보 등을 관리하여 역할이 확실히 구분되기 때문에 클라이언트와 서버의 의존성을 줄일 수 있다.
  6. 계층형 구조
    REST server는 다중 계층으로 구성될 수 있다.
    따라서 API server는 비즈니스 로직으로만 구성하고, 그 앞에 보안/암호화/사용자 인증 등의 방안을 추가하여 주고 상의 유연성을 만들어 낼 수 있다.
  7. Code-On-Demand(optional)
    Server로부터 스크립트를 받아 Client에서 실행할 수 있다.

REST api 사용 이유

  1. HTTP의 프로토콜 인프라를 그대로 사용하기 때문에 별도의 인프라를 구축할 필요가 없다.
  2. HTTP표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능하다.
  3. 서버와 클라이언트 간 역할 분리가 가능하다.
  4. 의도에 따른 설계가 간편하다.

Rest API사용 시 주의점

  • URL상에서 동사를 사용하지 않는다. + URL은 서버의 자원을 표현하도록 한다.
    • 이러한 동사를 사용하는 대신 HTTP methods를 통해 통신한다.
      • 유저생성 / 유저확인 / 유저변경 / 유저삭제의 CRUD가 있을 때에 userCreate, userConfirm, userUpdate, userDelete를 사용하지 않는다.
        • user라고 통일 후, methods를 POST / GET / PUT / DELETE를 사용하여 통신하도록 한다.
  • 소문자를 사용한다.
    • URL경로에 대문자를 포함하지 않는다.

'이론 정리' 카테고리의 다른 글

RBAC과 ABAC 기초 정리  (0) 2022.08.18
XSS와 sql injection에 관하여  (0) 2022.06.11
MA(모놀리식)와 MSA에 관하여  (0) 2022.04.07
마크업 / 마크다운  (0) 2021.11.07
HTML 기본 태그 정리  (0) 2021.11.06