RESTful API란?

JAEYEON·2023년 5월 8일

RESTful API(Representational State Transfer)는 소프트웨어 아키텍처 스타일이며 네트워크 애플리케이션 설계를 위한 제약 조건 집합입니다. 주로 HTTP를 통신 프로토콜로 사용하여 클라이언트와 서버가 서로 상호 작용하는 방법을 정의합니다. RESTful API를 사용하면 클라이언트(예: 웹 브라우저 또는 모바일 앱)가 서버의 리소스(예: 데이터 개체 또는 서비스)에 액세스하고 조작할 수 있습니다.

다음을 포함하여 RESTful API에서 사용되는 몇 가지 표준 HTTP 메서드가 있습니다.

GET: 서버에서 리소스 또는 리소스 모음을 검색합니다.
POST: 서버에 새 리소스를 생성합니다.
PUT: 서버의 기존 리소스를 새 데이터로 업데이트합니다. 일반적으로 클라이언트는 전체 업데이트된 리소스를 보내야 합니다.
PATCH: 서버의 기존 리소스를 부분적으로 업데이트합니다. 클라이언트는 리소스를 업데이트하는 데 필요한 변경 사항만 보내야 합니다.
DELETE: 서버의 리소스를 삭제합니다.

이러한 메서드는 데이터 관리에서 일반적인 CRUD(Create, Read, Update, Delete) 작업에 해당합니다.

RESTful API는 몇 가지 주요 원칙을 따릅니다.

Stateless(무상태): 클라이언트에서 서버로의 각 요청에는 서버가 요청을 처리하는 데 필요한 모든 정보가 포함되어야 합니다. 서버는 요청 간에 클라이언트 상태에 대한 정보를 저장해서는 안 됩니다.
클라이언트-서버: 클라이언트와 서버는 네트워크를 통해 통신하는 별도의 엔터티입니다. 이러한 분리를 통해 유연성, 확장성 및 더 나은 문제 분리가 가능합니다.
캐시 가능: 클라이언트는 서버 응답을 캐시하여 성능을 개선하고 서버 로드를 줄일 수 있습니다. 응답은 캐시될 수 있는지 여부를 명시적으로 명시해야 합니다.
계층화된 시스템: 아키텍처는 여러 계층으로 구성될 수 있으며 각 계층은 특정 기능을 제공합니다. 이러한 모듈성은 관심사와 유연성의 분리를 촉진합니다.

"RPC 스타일" API(원격 프로시저 호출)라고도 하는 비 RESTful API는 REST 제약 조건 및 원칙을 준수하지 않습니다. 대신 클라이언트가 직접 호출할 수 있는 서버의 특정 기능이나 프로시저를 노출하는 데 중점을 두는 경우가 많습니다. 비 RESTful API의 몇 가지 예는 다음과 같습니다.

SOAP(Simple Object Access Protocol): XML을 사용하여 클라이언트와 서버 간에 구조화된 정보를 교환하는 프로토콜입니다. SOAP는 종종 웹 서비스와 연결되며 HTTP 또는 SMTP와 같은 다양한 전송 프로토콜을 사용할 수 있습니다.
XML-RPC: XML을 사용하여 호출을 인코딩하고 HTTP를 전송 메커니즘으로 사용하는 원격 프로시저 호출 프로토콜입니다. 이를 통해 클라이언트는 서버에서 메서드를 호출하고 XML 형식으로 응답을 받을 수 있습니다.
JSON-RPC: XML-RPC와 비슷하지만 데이터 직렬화에 XML 대신 JSON을 사용하므로 더 가볍고 읽기 쉽습니다.

이러한 각 비 RESTful API에는 장단점이 있으며 RESTful API와 비 RESTful API 간의 선택은 개발 중인 애플리케이션의 특정 요구 사항과 제약 조건에 따라 다릅니다.

profile
프론트엔드 개발자

0개의 댓글