RESTful API 이란?

유광진·2024년 1월 27일
0

이번 포스팅에서는 백엔드 개발자라면 숙지해야 할 필수 개념인 RESTful API에 대해 알아보자.

📌 1. API 이란?

Application Programming Interface의 줄임말

응용 프로그램에서 사용할 수 있도록 다른 응용프로그램을 제어할 수 있게 만든 인터페이스를 말합니다.

API를 사용하면 내부 구현 로직을 알지 못해도 정의되어 있는 기능을 쉽게 사용할 수 있다.

예를 들면 네이버 지도 API, 카카오 지도 API 등등..

여기서 인터페이스(Interface)란 어떤 장치간 정보를 교환하기 위한 수단이나 방법을 의미합니다.

📌 2. REST 이란?

REST는 Representation State Transfer의 줄임말

자원(데이터)의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미한다.

REST는 서버와 클라이언트의 통신 방식 중 하나이다. (아키텍처에 가까운 개념)

다시 말해 HTTP URI (Uniform Resource Identifier)를 통해 자원을 명시하고 HTTP Method를 통해 자원을 교환하는것을 의미합니다.

📌 3. 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 등 여러 형태의 Representation으로 나타내어 질 수 있다.

JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적입니다.

📌 4. REST 특징

📖 Server-Client 구조

자원(데이터)이 있는 쪽이 Server, 요청하는 쪽이 Client을 의미한다.

또한 클라이언트와 서버가 독립적으로 분리되어 있어야 한다.

📖 Stateless

요청 간에 클라이언트 정보가 서버에 저잗되지 않고 서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.

📖 Cacheable

HTTP 프로토콜을 그래도 사용하기 때문에 HTTP의 특징인 캐싱 기능을 적용하고 대량의 요청을 효율적으로 처리하기 위해 캐시를 사용한다.

📖 Code on Demand (Option)

요청을 받으면 서버에서 클라이언트로 코드 또는 스크립트(로직)을 전달하여 클라이언트 기능을 확장한다.

📖 인터페이스 일관성 (Uniform Interface)

정보가 표준 형식으로 전송되기 위해 구성 요소간 통합 인터페이스를 제공한다. HTTP 프로토콜을 따르는 모든 플랫폼에서 사용하게끔 설계한다.

📌 5. REST 장점

HTTP 표준 프로토콜을 사용하는 모든 플랫폼에서 호환 가능하다. 또한 서버와 클라이언트의 역할을 명확하게 분리한다. 마지막으로 여러 서비스 설계에서 생길 수 있는 문제를 최소화 한다.

그래서 대체 RESTful API 이란 뭘까?

📌 6. RESTful API 이란

REST 아키텍처의 조건을 준수하는 어플리케이션 프로그래밍 인터페이스를 말합니다.

일반적으로 REST 아키텍처를 구현하는 웹 서비스를 RESTful 하다고 표현한다.

REST 기반으로 시스템을 분산하여 확장성과 재사용성을 높이고 HTTP 표준을 따르고 있어 여러 프로그래밍 언어로 구현할 수 있다는 특징이 있다.


📌 7. 참조

(RESTful API란)
https://aws.amazon.com/ko/what-is/restful-api

profile
백엔드 개발자 유광진 입니다.

0개의 댓글