본문 바로가기
Network

[REST] 이해하기

by Awesome-SH 2020. 5. 31.

REST 이해하기

"Representational State Transfer"

자원(Resource)의 표현 및 표출(Representation)에 의해 상태(State)를 전달하는 것

HTTP 프로토콜을 사용으로 웹의 장점을 최대한 활용할 수 있는 아키텍처

 

HTTP URI(Uniform Resource Identifier)으로 자원을 명시

HTTP Method(POST, GET, PUT, DELETE)로 자원에 대한 CRUD Operation을 적용

 

CURD

  • C : Create : 생성(POST)
  • R : Read : 조회(GET)
  • U : Update : 수정(PUT)
  • D : Delete : 삭제(DELETE)
  • HEAD : Header 정보조회(HEAD)

 

REST 장/단점

장점

  • HTTP 프로토콜을 사용하여 REST API 사용을 위한 별도의 인프라 구축 필요 없음
  • HTTP 프로토콜의 표준을 최대한 활용하여 장점을 활용할 수 있음
  • HTTP 프로토콜 표준을 따르는 모든 플랫폼에서 사용 가능
  • REST API 메시지가 의도하는 바를 명확하게 표현할 수 있음
  • 서버와 클라이언트의 역할 분리

단점

  • 표준이 존재하지 않음
  • 제한적인 HTTP Method형태
  • Header 작성이 쉽지 않다

 

 

REST 사용 이유

  • 어플리케이션 분리 및 통합
  • 다양한 클라이언트의 등장
  • 다양한 브라우저 또는 모바일 디바이스에서도 통신할 수 있어야 함
  • 멀티 플랫폼, 크로스 플랫폼에 대한 서비스 지원을 위해

 

 

 

REST 구성 요소

  • 자원 ( Resource ) : URI
  • 행위 ( Verb ) : HTTP Method
  • 표현 ( Representation of Resource )

 

 

REST 특징

  • 자원은 Server, 자원 요청은 Client
  • 무상태 ( Stateless ) : 세션과 쿠키와 같은 Context 정보를 신경쓰지 않음
  • 캐시처리 ( Cacheable ) : Last-Modified 태그 or E-Tag로 캐싱 구현 가능
  • 계층화 ( Layerd System ) : 로드밸런싱, 공유캐시 등을 통해 확장성 및 보안성 향상 가능
  • 인터페이스의 일관성 ( Uniform Interface ) : 특정 언어나 기술에 종속 되지 않음

 

REST API ?

REST 기반으로 서비스 API 를 구현한 것

마이크로 서비스 ( 하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개 변경/조합이 가능하도록 만든 것 )

Open API ( 누구나 사용할 수 있도록 공개 된 API , 구글 맵 / 공공데이터 등 )

 

 

 

REST API 설계 규칙

  1. URI는 정보의 자원을 표현해야 한다. ( 동사보다는 명사 / 대문자보다는 소문자 등 )
  2. 자원에 대한 행위는 HTTP Method로 표현한다. ( URI에 HTTP Method 가 들어가면 안됨 )
  3. 슬래시 구분자 ( / ) 는 계층 관계를 나타내는데 사용한다.
  4. URI 마지막 문자에 슬래시 ( / ) 를 포함하지 않는다.
  5. 하이픈 ( - ) 은 URI 가독성을 높이는데 사용
  6. 밑줄 ( _ ) 은 URI 에 사용하지 않는다.
  7. URI 경로에는 소문자가 적합하다.
  8. 파일 확장자는 URI 에 포함시키지 않는다.

 

 

RESTful이란 ?

REST 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어

REST API 를 제공하는 서비스를 "RESTful" 하다고 할 수 있다.

 

이해하기 쉽고 사용하기 쉬운 REST API 를 만드는 것

댓글