RESTful API

LJM·2023년 10월 18일
0

Spring

목록 보기
13/14

REST는 "Representational State Transfer"의 약자로, 웹 서비스의 아키텍처 스타일 중 하나입니다. RESTful API는 이 REST 아키텍처를 따르는 웹 서비스의 API를 의미합니다.

"Representational State Transfer"라는 용어의 각 부분을 분해하여 살펴보면:

Representational (표현): 자원의 상태는 '표현'을 통해 전달됩니다. 예를 들어, 동일한 자원 (예: 사용자 정보)이 JSON, XML, HTML 등 다양한 형식으로 표현될 수 있습니다. 요청하는 클라이언트에 따라 적절한 표현을 선택할 수 있습니다.

State (상태): 웹은 상태를 전송하는 시스템입니다. '상태'는 특정 시점에 자원의 조건이나 상황을 의미합니다. 예를 들어, 특정 사용자의 프로필 정보, 상품 목록, 현재 재고 수량 등이 상태에 해당됩니다.

Transfer (전송): REST에서 중요한 것은 이 상태를 네트워크를 통해 '전송'하는 것입니다. 클라이언트가 요청을 하면, 서버는 해당 자원의 현재 상태를 표현으로 변환하여 응답합니다. 그 반대도 가능하며, 클라이언트는 자원의 상태를 변경하거나 새로운 상태를 서버에 전송할 수 있습니다.

이러한 원칙에 따르면, REST는 클라이언트와 서버 간의 상호작용에서 중요한 것은 '자원'과 그 자원의 '상태'이며, 이 상태는 '표현'을 통해 전송되는 것입니다.

이 아키텍처 스타일의 이름은 웹 서비스의 핵심 원칙을 간결하게 나타내기 위해 Roy Fielding이 그의 2000년 박사 논문에서 처음 소개하였습니다. REST의 주요 핵심은 자원 지향 아키텍처 (Resource-Oriented Architecture)에서 나오며, 각 자원은 고유한 URI를 통해 식별되고 HTTP와 같은 표준 프로토콜을 사용하여 접근됩니다.

RESTful API의 주요 특징은 다음과 같습니다:

상태와 무상태: 각 요청은 모든 필요한 정보를 포함해야 하며, 서버는 클라이언트의 상태를 기억하면 안 됩니다.
클라이언트-서버 아키텍처: 클라이언트와 서버가 분리되어 있습니다.
캐시 가능: 응답은 클라이언트에 캐시될 수 있어야 합니다.
레이어드 시스템: 클라이언트는 종단 시스템만 알 수 있으며, 중간 서버를 사용할 수 있습니다.
코드 온 디맨드 (선택적): 서버는 실행 가능한 코드를 클라이언트에게 전송할 수 있습니다.
유니폼 인터페이스: 일관된 인터페이스를 가지고 있어야 합니다.

profile
게임개발자 백엔드개발자

0개의 댓글