HTTP

🥅 REST API에 대해서 알아보자

King of Silicon Valley 2021. 12. 5. 22:01
728x90

REST API의 탄생

  • REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 처음 소개 되었습니다. 
  • 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다. 

REST 구성 

  • 자원(RESOURCE)-URI
  • 행위(Verb) - HTTP METHOD
  • 표현(Representations)

REST API는 무엇인가?

  • REST는 프로토콜이표준이 아닌 아키텍처 원칙 세트입니다. 
  • REST API란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. 

REST의 특징

  • Uniform(유니폼 인터페이스) 
    • Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다. 
    • 안드로이드나 ios등과 같은 플랫 폼이나 언어에 종속되지 않고 HTTP를 사용할 수 있는 모든 플랫폼에 사용이 가능한 느슨한 결합 형태의 구조 이다. 
  • Stateless(무상태성)
    • REST는 무상태성 성격을 갖습니다. 즉, 작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다. 
    • 세션 정보나 쿠키 정보를 별도로 저장하고 관리 하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 됩니다.
    • 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다. 
  • Cacheable(캐시 가능)
    • REST의 가장 큰 특징 중 하나는 HTTP라는 기존 웹표준을 그대로 사용하기 때문에, 웹에서 사용하는 기존 인프라를 그대로 활용이 가능합니다. 따라서 HTTP가 가진 캐싱 기능이 적용 가능합니다. 
    • HTTP 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다. 
  • Self-descriptiveness(자체 표현 구조)
    • REST의 또 다른 특징 중 하나는 REST API메세지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조로 되어 있습니다. 
  • Client-Server 구조
    • REST 서버는 API제공, 클라이언트는 사용자의 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다. 
  • 계층형 구조
    • REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다. 

REST API 디자인 가이드 

REST API 설계시 가장 중요한 항목은 다음의 2가지로 요약 할 수 있습니다. 

 

  • URI는 정보의 자원을 표현해야 한다. 
    • 리소스명은 동사보다 명사를 사용 해야 합니다. 
  •  자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 

URI는 자원을 표현하는 데에 집중하고 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API를 설계하는 중심 규칙입니다.

 

설계시 주의할 점

  • URI 마지막 문자로 슬래시(/)를 포함하지 않는다. 
  • 하이픈(-)은 URI 가독성을 높이는데 사용 
  • 밑줄(_)은 사용하지 않는다. 
  • URI경로에는 소문자가 적합하다.
  • 파일 확장자는 URI에 포함시키지 않는다. 

 

참고 링크

https://www.redhat.com/ko/topics/api/what-is-a-rest-api

 

REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법

REST API(RESTful API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. api 서버, rest api 구현 및 사용법을 설명합니다.

www.redhat.com

https://meetup.toast.com/posts/92

 

REST API 제대로 알고 사용하기 : NHN Cloud Meetup

REST API 제대로 알고 사용하기

meetup.toast.com

https://araikuma.tistory.com/340

 

REST API란?

REST는 Representational State Transfer라는 용어의 약자로서 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 2000년도에 로이 필딩 (Roy Fielding)의 박사학

araikuma.tistory.com

 

'HTTP' 카테고리의 다른 글

TCP와 UDP 차이  (0) 2021.12.06
URL 과 URI 차이  (0) 2021.12.05