심심한잉여의 잡동사니

REST, REST API, RESTful 이란? 본문

코딩일기/Spring&SpringBoot

REST, REST API, RESTful 이란?

심심한잉여 2022. 3. 13. 23:05
반응형

항상 REST API에 대해서 질문 혹은 우대가 많아 알아보기로 했다.
분명 코딩을 하며 항상 사용하며 대략적으로는 이해는 했으나 정의를 해보지않아 머리속에 그려지지 않았으니 이 시간을 가지며 머리에 그려보도록 하자.

 

REST란?
자원을 이름으로 구분하여 해당 자원의 정보를 주고 받는 것
즉, HTTP URI를 통해 자원을 명시하고 HTTP 메소드를 통해 해당 자원에 대한 CRUD를 적용하는 것을 뜻한다.

HTTP Method는 무엇이 있는가?
대표적으로는 이 4가지가 있다.
GET : Read
POST : Create
PUT : Update
DELETE : Delete
각각 CRUD를 위와 같이 나누고 있다. 

REST의 장단점
장점 : 
 - HTTP의 인프라를 그대로 사용하여 REST API사용을 위한 별도의 인프라 구축이 필요없다.
 - HTTP의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
 - HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
 - REST API 메시지가 의도하는 바를 명확하게 나타내어 의도를 쉽게 파악이 가능하다.
 - 서버와 클라이언트의 역할을 명확하게 분리한다.

단점 : 
 - 표준이 존재하지 않는다.
 - 사용할 수 있는 메소드가 4가지 뿐이다.(HTTP Method)
 - 구형 브라우저는 사용이 불가능하다.(PUT, DELETE 사용 불가)

REST를 사용해야하는 이유
 - 애플리케이션의 분리 및 통합
 - 다양한 클라이언트의 등장
 - 최근의 서버 프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신이 가능해야함
 - 멀티플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용한 방법을 모색한 결과, REST에 관심을 가지게 되었다.

REST의 특징
1. Server - Client(서버 - 클라이언트 구조)
 - 자원을 가지고 있는 쪽이 Server, 자원을 요청하는 곳이 Client가 된다.
 - 서로간의 의존성이 줄어든다.
2. HTTP의 특징을 그대로 가져온다.

 


REST API란?
REST 기반으로 서비스 API를 구현한 것
최근 OpenAPI, 마이크로 서비스 등을 제공하는 업체 대부분은 REST API를 제공한다.

REST API의 특징
 - 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수, 운용을 편리하게 할 수 있다.
 - REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
 - REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C# 웹 등을 이용해 클라이언트를 제작할 수 있다.


RESTful의 개념

RESTful이란?
RESTful은 일반적으로 REST라는 아키텍처를 구현한 웹 서비스를 나타내기 위해 사용되는 용어
 - REST API를 제공하는 웹 서비스를 RESTful하다고 할 수 있다.

RESTful의 목적
 - 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것

RESTful하지 못한 경우
 - CRUD 기능을 모두 POST로만 처리하는 API
 - route에 resource, id 외의 정보가 들어가는 경우 

반응형