본문 바로가기
Web/Web

Rest API란? Restful API란? Rest API vs Restful API

by jjudy 2021. 11. 2.

REST 란?

 

  • Representational State Transfer의 약어이다. 
  • 웹에 존재하는 모든 자원(문서, 이미지 등)에 고유한 URI를 부여해서 활용하는 것으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법론이다.
  • 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있다.
  • HTTP 메소드를 통해서 CRUD(Create, Read, Update, Delete) 연산을 수행한다.
  • 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나로 자원을 요구하는 쪽이 클라이언트이고, 자원을 가지고 있는 쪽이 서버이다.

 

 

 


URL?   URI?


URL은 웹 주소라고도 하며, 실제 파일의 위치를 나타내는 주소를 의미한다.

URI특정 리소스를 식별하는 통합 자원 식별자를 의미한다.

URI는 식별하고, URL은 위치를 가르킨다. URI는 URL을 포함하게 된다.

예를 들면, "HONG Gil-dong"은 사람의 이름이며 식별자이다.  (URI)   "서울 xx구 xxx동 123"은 주소로 특정 위치를 가르킨다. (URL)


 

 

REST의 구성 요소

1.  자원(Resource)  -  URI

  • 클라이언트는 URI를 이용해 자원을 지정하고, 해당 자원의 상태에 대한 조작을 서버에 요청한다.

 

 

 

2.  행위(Verb)  -  HTTP Method

  • HTTP 메소드인 GET, POST, PUT, DELETE를 통해 CRUD 연산을 수행한다.

 

 

 

3.  표현(Representation of Resource)

  • 서버와 클라이언트가 데이터를 주고 받는 형식은 json, xml, text, rss 등이 있다.
  • 주로 key와 value를 활용하는 json과 xml을 주로 사용한다.

 

 

 

REST의 규칙

1.  서버-클라이언트 구조 (Server-Client)

  • REST 서버는 API를 제공하고, 클라이언트는 사용자 인증, context(세션, 로그인 정보 등)을 직접 관리한다.

 

 

2. 무상태성 (Stateless)

  • HTTP 프로토콜은 Stateless Protocol 이므로 REST도 무상태성을 갖는다.
  • 클라이언트의 context(세션, 쿠키 등)를 서버에 저장하지 않으므로 서버 구현이 단순하다.
  • 서버는 각각 요청을 완전히 별개의 것으로 인식하고 처리한다. 즉, 이전 요청이 다음 요청의 처리에 연관되면 안된다.

 

 

3.  캐시 처리 기능 (Cacheable)

  • 캐시(Cache) ?  자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소이다.
  • 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존 인프라를 그대로 활용할 수 있다. (캐싱 기능도 적용가능)
  • 대량의 요청을 효율적으로 처리할 수 있다.

 

 

4.  계층 구조 (Layered System)

  • 클라이언트는 REST API Server 만 호출한다.
  • REST API Server 는 다중 계층으로 구성되어 있으므로 클라이언트는 서버와 직접 통신하는지, 중간 서버와 통신하는지 알 수 없다.

 

 

5.  인터페이스 일관성 (Uniform Interface)

  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능하다.

 

 

6.  자체 표현 (Self-Descriptiveness)

  • json 형태의 메시지를 통해서 내용을 직관적으로 이해할 수 있다.
  • 요청 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.

 

 

 

REST  API 란?

 

  • API 란?  응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.
  • REST API는 REST의 특징을 기반으로 API를 제공하는 것이다.
  • 누구나 사용할 수 있도록 공개된 OpenAPI 인 구글 맵, 공공 데이터, 마이크로 서비스 등 대부분이 REST API를 통해 제공한다.

 

 

 

RESTFUL  API 란?

 

  • REST의 6가지 규칙을 지켜서 설계된 API를 RESTFUL API 라고 한다.
  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것을 목적으로 성능이 중요하다면 꼭 restful 하게 구현할 필요는 없다.

 

 

'Web > Web' 카테고리의 다른 글

웹 해킹 워게임 사이트  (0) 2022.11.23
URL? URI? URN?  (0) 2021.12.10
HTTP(HyperText Transfer Protocol) 란?  (0) 2021.11.18
WEB 이란?  (0) 2021.11.16

댓글