본문 바로가기
🗂 Study/네트워크

REST, RESTful이 무엇일까?🤔

by 뿌맘 2021. 7. 23.
반응형

🔫 REST

REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다.

즉, REST는 

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

REST 구성 요소

  • 자원(Resource) : HTTP URI
  • 자원에 대한 행위(Verb) : HTTP Method
  • 자원에 대한 행위의 표현 (Representations) 

REST의 특징

 

1. 유니폼 인터페이스 (Uniform Interface)

  • HTTP 표준만 따른다면 어떤 언어 혹은 어떤 플랫폼에서 사용하여도 사용이 가능한 인터페이스 스타일이다.

2. 무상태성 (Stateless)

  • REST는 상태 정보를 유지하지 않는다.
  • 서버는 각각의 요청을 완전히 다른 것으로 인식하고 처리를 한다.
  • 이전 요청이 다음 요청 처리에 연관이 되면 안 된다.

3. 캐시 처리 가능 (Cacheable)

  • HTTP의 기존 웹 표준을 그대로 사용하기 때문에 HTTP가 가진 캐싱 기능 적용이 가능하다.

4. 자체 표현 구조 (Self-descriptiveness)

  • REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.

5. 클라이언트-서버 (Client-Server)

  • REST 서버는 API 제공을 하고 클라이언트는 사용자 인증에 관련된 일들을 직접 관리한다.
  • 자원이 있는 쪽을 Server라고 하고 자원을 요청하는 쪽이 Client가 된다.
  • 서로 간의 의존성이 줄어들기 때문에 역할이 확실하게 구분되어 개발해야 할 내용들이 명확해진다.

6. 계층화 (Layerd System)

  • 클라이언트는 Rest API 서버만 호출한다.
  • REST 서버는 다중 계층으로 구성될 수 있으면 로드 밸런싱, 암호화, 사용자 인증 등을 추가하여 구조상의 유연성을 둘 수 있다.

 

🔫 RESTful API

REST를 제약조건을 준수하며 설계된 API를 의미하며, HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스이다.

RESTful은 누군가가 공식적으로 발표한 것이 아니라 여러 개발자들이 비공식적으로 의견을 제시한 것으로 명확한 정의는 없다.

 

RESTful API 설계 규칙

1. URI는 정보의 자원을 표현해야 한다.

  • 자원의 이름은 동사보다 명사를 사용
  • URI는 자원을 표현하는데 중점을 둬야 하기 때문에 행위에 대한 표현이 들어가면 안 됨

2. 자원에 대한 행위는 HTTP Method으로 표현한다.

  • URI에 자원의 행위에 대한 표현이 들어가지 않는 대신 HTTP METHOD를 통해 대신한다.
    (GET, POST, PUT, DELETE 등)

URI 설계 시 주의할 점

  1. 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  3. 하이픈(-)은 URI 가독성을 높이는 데 사용
  4. 밑줄(_)은 URI에 사용하지 않는다.
  5. URI 경로에는 소문자가 적합하다.
  6. 파일 확장자는 URI에 포함하지 않는다.

 

 

참고

더보기
반응형

'🗂 Study > 네트워크' 카테고리의 다른 글

CORS는 무엇일까?💻  (0) 2021.07.30
쿠키🍪 와 세션  (0) 2021.07.09
HTTP 메서드와 역할  (0) 2021.07.09
GET 방식과 POST 방식  (0) 2021.07.08
HTTP와 HTTPS의 차이점 + SSL Handshake  (0) 2021.06.30

댓글