
REST (Representational State Transfer)란 웹 서비스의 아키텍처 스타일 중 하나이다. 특징은 모든 것을 "자원"으로 표현하며 URI을 통해 데이터의 고유성을 띄고 HTTP 메서드를 사용하여 보다 직관적으로 데이터를 조작할 수 있다는 점이 있다.
👉 아키텍처 스타일의 일종!
👉 HTTP 프로토콜을 사용!
아키텍처 스타일이란?
아키텍처 스타일이란 웹 애플리케이션 또는 서비스의 설계와 상호 작용 방식을 설명하는 원칙과 규칙의 집합입니다. 예시를 들면 "집을 짓는 방법"과 같은 것입니다.
- 모든 집에는 벽, 지붕, 문, 창문과 같은 기본 구성 요소가 있어야 합니다.
아키텍처 스타일은 모든 웹 애플리케이션 또는 서비스에 필요한 기본 구성 요소와 규칙을 정의합니다.- 집을 짓는 데 사용되는 재료와 도구에는 일관성이 있어야 합니다.
아키텍처 스타일은 특정한 방식으로 웹 애플리케이션 또는 서비스를 구축하는 데 사용되는 일관된 접근 방식을 제공합니다.- 집을 짓는 방법은 주택의 목적과 환경에 따라 다릅니다.
아키텍처 스타일은 웹 애플리케이션 또는 서비스의 목적과 요구 사항에 따라 선택됩니다.
HTTP 메소드란?
http 대신 https를 적용해보자.
REST API(Representational State Transfer Application Programming Interface)RESTful API는 위에서 설명한 REST 아키텍처 스타일을 준수하여 디자인된 API를 가리키는 용어이다.
API란?
API(Application Programming Interface)두 개의 프로그램이 서로 소통하는 "방법"과도 같은 것입니다. 식당에서 음식을 주문할 때 사용하는 "메뉴판"을 떠올려 봅시다. 음식점의 메뉴(API)를 통해 원하는 음식(데이터 또는 서비스)을 주문할 수 있는 것처럼 인터페이스 즉 "접점" 역할을 해 주는 것이 API입니다. 실체로 존재하는 것은 아니고 개념적인 것입니다.
RESTful API는 자원을 URI로 표현하고, HTTP 메서드를 사용하여 자원을 단순하고 직관적으로 표현한다. 이로 인해 API를 이해하고 사용하기 쉽다.
RESTful API는 HTTP 프로토콜을 기반으로 하며, HTTP 메서드(GET, POST, PUT, DELETE)를 활용하여 자원을 다룬다. 이는 웹 개발자들이 익숙한 도구를 사용할 수 있고, HTTP의 기본 기능을 활용하여 웹 서비스를 구축할 수 있게 해준다.
RESTful API는 서버가 클라이언트의 상태를 관리하지 않는 무상태 (Stateless) 특성을 가진다. 이는 서버의 확장성과 성능을 향상시키는 데 도움이 되며, 서버와 클라이언트 간의 독립성을 유지할 수 있게 해준다.
🤔 무상태 특성이 뭐길래 서버의 확장성을 향상시켜줄까?
무상태 특성과 서버 확장성의 상관관계
RESTful API는 자원을 나타내는 URI를 사용하기 때문에 다양한 유형의 자원을 표현할 수 있다. 이는 다양한 클라이언트와 플랫폼에서 사용할 수 있도록 해준다.
RESTful API를 작성하는 방법은 다음과 같은 일련의 단계를 따라야 하는데 상황을 "회사의 웹 애플리케이션에서 사용자를 관리하는 API를 개발해야 할 때"라고 가정해보고 API가 어떻게 작성되는지 알아보겠다.
RESTful API는 위의 예시 외로 다양한 업무 영역에서 사용될 수 있으며, 각각의 API는 자원, URI, HTTP 메서드, 데이터 표현, 요청 처리, 응답 생성, 보안, 문서화 등을 고려하여 설계 및 개발되는 것만 알고 있으면 되겠다.
끝😆