개발에 AtoZ까지

[개념] REST, REST API, RESTful 정의 및 특징 본문

백엔드/REST API

[개념] REST, REST API, RESTful 정의 및 특징

AtoZ 개발자 2021. 2. 14. 14:11
반응형

◆목표

REST의 정의
REST의 특징
REST API 정의
REST API 사용법
RESTful 정의


1. REST의 정의

- REST(Representaional State Transfer) 란 기기간의 자원을 이름(자원의 표현)으로 구분해 자원의 상태를 웹 기술인 HTTP 프로토콜을 활용하여 주고받는 것을 의미합니다. 즉, 분산 시스템을 위한 HTTP 기반 소프트웨어 아키텍처이다.

Tip) 자원, 자원의 표현, 상태, 분산 시스템

  • 자원 : 해당 소프트웨어가 가지고 있는 모든 것
  • 자원의 표현 : 자원에 이름을 명시적으로 정하는 것, ex) 고객정보를 customer로 정의하는 것
  • 상태 : 자원의 상태(정보)를 전달하는 것, 전달하는 방법에는 JSON, XML를 주로 사용함
  • 분산 시스템 : 하나의 시스템으로 보이는 독립된 컴퓨터들의 집합, 이를 위해 네트워크를 통한 컴퓨터 간의 통신이 필요 ex) MSA(MicroService  Architecture)에서 사용하는 것처럼, 카카오로 자동 로그인 등

2. REST의 특징

   1) REST의 특징

1] 서버와 클라이언트 구조

2] 상태 변환이 없다(Stateless)
   - 클라이언트의 context를 서버에 저장하지 않음
   - 이전 요청과 다음 요청 처리에 연관성이 없다 (개연성이 없음)

3] 캐시 처리 가능
   - HTTP 프로토콜을 사용하기 때문에 HTTP 프로토콜의 기능 중 하나인 캐싱 기능 적용 가능
   - 캐시 사용으로 응답 시간 향상, 별도의 트랜잭션이 발생하지 않기 때문에 정체 응답 시간, 성능, 서버 자원
     이용률을 향상할 수 있다.

   2) REST의 장점

1] HTTP 프로토콜 인프라를 그대로 사용하기 때문에 REST API 사용을 위한 추가 인프라가 없어도 된다

2] HTTP 표준 프로토콜을 따르는 모든 플랫폼(모든 문법)에 사용이 가능하다

3] HTTP URI와 메서드를 통해 의도하는 바를 쉽게 파악할 수 있다

4] 서버(자원을 가지고 있는 쪽)와 클라이언트(자원을 요청하는 쪽) 역할을 분리할 수 있다, 서로 간의 의존성 감소

   3) REST의 단점

1] 사용할 수 있는 메서드가 4가지(CRUD) 밖에 없다.

2] 구형 브라우저에서 아직 지원하지 못하는 부분이 있다 (GET, DELETE 메서드)

Tip) URI

  • URI : 자원을 가져오기 위한 방법 (URL의 상위 개념)

3. REST API 정의

- 타인의 컴퓨터(서버) 기능을 실행시키는 방법

Tip) API

  • API : 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스(즉, 컴퓨터의 기능을 실행시키는 방법)

4. REST API 사용법

- URI를 통한 접근법 및 Collection, Element 사례

- URI를 통한 접근 후에는 HTTP 4가지 Method를 통해  가공을 실시함

1] GET(조회)
2] POST(생성)
3] PATCH(부분 수정) / PUT(전체 수정)
4] DELETE(삭제)

5. RESTful 정의

- REST라는 아키텍처를 구현하는 웹서비스를 가리키는 용어

ex) REST API를 제공하는 웹서비스를 RESTful 하다고 할 수 있음

반응형
Comments