본문 바로가기
컴소니/개발

REST(Representational State Transfer)란?(feat, RESTful, REST API)

by 금소니 2021. 1. 26.
반응형

#146

1. REST(Representational State Transfer)란?

분산 하이퍼미디어(자원) 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원의 상태나 정보를 전송하는 인터페이스입니다.

 

REST를 구성하는 요소에는 총 세가지가 있습니다.

 

아래의 예시를 보시면 쉽게 이해하실 수 있습니다.

 

예) 1번 영화 자원에 대하여 조회 요청

POST /movies/1

{

    "name" : "The LThe Lord Of The Ringsord Of The Rings"

}

 

우선 첫 번째로 자원(Resource)이 있어야 합니다.

보통 URI이라고 하는데요.

보시면 아시겠지만 자원은 1번 영화입니다.

 

두 번째로는 행위(Method)입니다.

자원에 대한 HTTP 요청입니다.

이 요청에는 POST, GET, PUT, DELETE가 있는데요. 

각각 CREATE, READ, UPDATE, DELETE에 해당됩니다.

예시에서는 POST를 이용했으니 CREATE에 대한 요청이겠죠?

 

세 번째로는 표현(Representation)입니다.

어떤 자원을 요청하는지에 대한 메세지라고 보시면 되는데요.

위의 예시에서는 1번 영화에 대한 내용으로 보시면 됩니다.

이 내용을 어떻게 전달할 것인지 결정할 수 있습니다.(xml, json 등)

 

2. REST의 조건

REST를 구현하는데 크게 6가지 조건이 있습니다.

 

1) Client-server architecture

 : REST가 구현된 서버, 이에 요청을 하는 클라이언트, 독립적인 구조로 운영

 

2) Statelessness

 : 클라이언트가 요청한 내용에 대한 상태정보를 저장하지 않고 요청에 대한 응답만 전달

 

3) Cacheability

 : HTTP 캐싱이란 웹 상에서 자주 액세스하는 데이터를 임시 저장하는 방법, 클라이언트의 요청에 대해 캐싱

 

4) Layered sytem

  : 계층을 두어 각 계층에서 역할을 수행할 수 있도록 분리(암호화, 로드밸런싱 등)

 

5) Code on demand(Option)

 : 클라이언트 요청에 따라 서버에 실행 가능한 소프트웨어 코드를 전송

 

6) Uniform interface

 : 자원에 대한 행위(메소드)를 통일된 인터페이스로 제공

 

3. REST 작성 가이드

1) 소문자를 사용한다.

 

2) '/'는 계층 관계를 나타낼 때 사용하고 마지막에는 사용하지 않는다.

 

3) 언더바(_)를 사용하지 않고 하이픈(-)을 사용한다.

 

4) 되도록 동사를 사용하지 않고 명사를 사용하며, 복수형으로 사용한다.

 

5) 확장자를 표시하지 않는다.

 

6) 행위에 대하여 표현하지 않고 메소드를 통해 사용한다.

 

4. RESTful이란?

한국적으로는 REST와 같은 의미입니다.

REST한~ 이런 의미라고 보시면 됩니다.

 

5. REST API란?

API란 이전 포스팅에서 이야기를 드렸죠?

 

API(Application Programming Interface)란?

#145 1. API(Application Programming Interface)란? 응용 프로그램 프로그래밍 인터페이스, 즉 응용 프로그램 간에 인터페이스를 해주는 역할을 담당하는 것입니다. 처음에 이 개념만 들었을 때 정말 모호

goldsony.tistory.com

REST환경에서 제공하는 API입니다.

 

사실 REST에서 제공하는 것이 REST API입니다.

 

6. REST API 예제

Open API에서 GET 메소드를 이용하여 프로그램을 만들 때 참고하였던 내용입니다.

 

영화진흥위원회 오픈API

튜토리얼 영화관입장권통합전산망 오픈API 서비스를 이용해 간단한 애플리케이션을 개발하는 튜토리얼입니다.

www.kobis.or.kr

반응형

댓글