본문 바로가기

CS 면접 준비/네트워크

[네트워크] REST, REST API, RESTful ?

REST(Representational State Transfer)는

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.
    • 자원의 상태 : JSON, XML, TEXT, RSS

즉 REST란 

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

예를 들면,   "라면인 상품을 생성한다” 라는 호출이 있을 때,

상품”은 생성되는 자원 (resource)

생성한다”라는 행위는 메서드 (post)

"상품명이 진라면인 상품"은 메시지   ({"name":"진라면","price":"1000"})

 

- 이를 REST 형태로 표현하면 다음과 같다.

HTTP POST , http://localhost/products/ {
	"products": {
    		"name":"라면",
		"price":"1000"
	}
}

REST의 장단점

  • 장점:
    • HTTP 표준 프로토콜 인프라를 그대로 사용하기 때문에 별도에 인프라 구축없이 쉽게 사용 가능
    • REST API 메시지의 의도하는바를 쉽게 할수 있음
    • 서버와 클라이언트의 역할을 명확하게 구분한다.
  • 단점 : 
    • 사용할 수 있는 메소드가 4가지 밖에 없다. HTTP Method 형태가 제한적이다. 

REST가 필요한 이유

  • 최근의 서버 프로그램은 다양한 브라우저와 안드로이폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 한다

REST 구성 요소

  • 자원(Resource): URI
    • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
    • 자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 다.
    • Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.
  • 행위(Verb): HTTP Method
    • HTTP 프로토콜의 Method를 사용한다.
    • HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공한다.
  • 표현(Representation of Resource)
    • Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
    • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내어 질 수 있다

 

REST API 는 뭐야?

  • REST 기반으로 서비스 API를 구현한 것
  • API는 Application Programming Interface
    • ex) 안드로이드 같은 경우 retrofit을 이용해서 api 를 불러오면 주로 json형태로 불러와서 보여줌.
  • REST API의 특징
    • REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있음 -HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있음

RESTful ?

  • REST를 REST답게 쓰기 위한 방법(누군가 공식적으로 발표한 것은 아님, 즉 REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭)
  • RESTful 하지 못한 경우 
    • CRUD 기능을 모두 POST로만 처리하는 API
    • route에 resource, id외의 정보가 들어가는 경우

 

 

 

 

 

 

 

 

'CS 면접 준비 > 네트워크' 카테고리의 다른 글

[네트워크] Http Request Code  (0) 2022.11.12
[네트워크] HTTP vs HTTPS  (0) 2022.11.11