포스트

RESTful

RESTful에 대해 알아가보자.

RESTful

개발을 해보았다면 누구나 듣게 되는 그것. RESTful RESTful이 뭔지가 궁금해져서 정리해보았다.

RESTful이란?

REST 아키텍쳐 스타일을 잘 지킨 API를 의미한다.

REST란?

REST는 Representational State Transfer의 줄임말로 자원을 URI로 표현하고, HTTP 메서드로 행위를 정의하는 방식이다.

REST에는 핵심 원칙이 존재하는데

  1. 클라이언트-서버 구조
    • 클라이언트와 서버는 서로 독립적으로 동작한다.
  2. HTTP 메서드 사용
    • HTTP 메서드를 사용하여 자원에 대한 행위를 정의한다.
  3. 무상태성(Stateless)
    • 클라이언트의 상태를 서버가 저장하지 않는다.
  4. 캐시 처리 가능
    • 클라이언트는 서버의 응답을 캐시할 수 있다.
    • 서버는 클라이언트에게 캐시 가능 여부를 명시할 수 있다.
  5. 일관된 인터페이스
    • 자원에 대한 행위를 HTTP 메서드로 정의하고, URI로 자원을 표현한다.
    • 클라이언트와 서버는 일관된 인터페이스를 사용하여 통신한다.
  6. 코드 온 디맨드(선택적)
    • 서버는 클라이언트에게 코드를 전송할 수 있다.
    • 클라이언트는 서버에서 받은 코드를 실행할 수 있다.

예를 들자면

  • 자원 : users
  • 행위 : GET, POST, PUT, DELETE

이때 RESTful한 API의 설계는

HTTP 메서드URI설명
GET/users사용자 목록 조회
POST/users사용자 생성
GET/users/1특정 사용자 조회
PUT or PATCH/users/1특정 사용자 정보 수정
DELETE/users/1특정 사용자 삭제

이런식으로 설계가 된다.

흔히 아는 login/, logout/ 같은 URI는 RESTful하지 않다.
이걸 좀 RESTful하게 바꿔보자면 /auth/login, /auth/logout 이런식으로 바꿔줄 수 있다. /auth는 자원이고 login, logout은 행위이기 때문이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.