네트워크 정리본 - REST/REST API

기술면접을 대비한 네트워크편 - REST REST API
오니's avatar
Jun 15, 2024
네트워크 정리본 - REST/REST API

REST

REpresentation State Tranfer
  • 자원을 명시해 연산을 수행하고 주고 받는 것

REST 특징

  1. 서버-클라이언트 구조
  1. 무상태성
    1. → 서버는 클라이언트에 대한 정보를 저장하지 않는다.
  1. 캐싱
    1. → 클라이언트는 캐싱할 수 있다.
  1. 자체 표현 구조
    1. → 요청된 REST를 보고 무엇을 하고자 하는지
  1. 일관된 인터페이스
    1. → 동일 인터페이스에 동일한 연산이 수행해야한다.

REST API

REST 특징을 띄고 있는 API
  • 자원: URI
  • 행위: 메소드
  • 표현: JSON

용어 정리

URI

  • Uniform Resource Identifier
  • 자원을 나타내는 주소
  • 하위 개념으로 URL, URN 등이 있다.
ex) 이 위치를 어떻게 나타낼 것인가? → 도로명 주소 / 위경도 등으로 다양하게 나타낼 수 있듯이 URI는 위치 나타내는 것이고 URL, URN등은 위치를 표현하는 하위 개념이다.

멱등성

  • 동일 수행해도 결과가 바뀌지 않는 것을 멱등성이라고 한다.

CRUD로 보는 REST

Method
Create
POST
Read
GET
Update
PUT
Delete
DELETE
  • PUT과 POST
    • PUT과 POST는 멱등성에서 차이가 보인가. POST는 연산 횟수대로 값을 만들지만 PUT은 멱등성이 있기에 횟수와 상관없이 변화가 없다.

추가 메소드

  • PATCH
    • PUT과 같이 데이터 수정하지만 PUT은 전체를 업데이트 하지만, PATCH는 일부 수정한다.
  • OPTION
    • 사용가능한 메소드를 헤더에 포함시켜 return 한다.
  • HEAD
    • Get과 동일하지만, 데이터가 body가 아닌 header에 담긴다.

REST 장단점

장점

  1. 추가적인 설비 없이 도입이 가능하다.
  1. 범용적으로 기기를 가리지 않고 사용이 가능하다.

단점

  1. 가능한 연산이 한정적이라, 복잡한 연산은 지원하지 않는다.
 
Share article

오니의 개발 블로그