반응형
REST API(REpresentational State Transfer API)
"애플리케이션 프로그래밍 인터페이스(API)"의 한 종류. 이는 애플리케이션이나 디바이스가 서로 연결되어 통신할 수 있는 규칙을 정의하는 집합입니다.
REST API는 REST 아키텍처 스타일의 디자인 원칙을 준수한다는 것입니다. 이 아키텍처 스타일은 2000년에 Dr. Roy Fielding이 박사 학위 논문에서 처음 정의했습니다. REST API는 개발자들에게 상당한 유연성과 자유를 제공합니다. 이러한 유연성 때문에 REST API는 마이크로서비스 아키텍처에서 컴포넌트와 애플리케이션을 연결하는 일반적인 방법으로 등장했습니다.
REST API의 주요 특징:
- 일관된 인터페이스 (Uniform interface):
- 동일한 리소스에 대한 모든 API 요청은 동일한 형식을 가져야 합니다.
- REST API는 사용자의 이름이나 이메일 주소 등의 동일한 데이터 조각이 오직 하나의 URI(Uniform Resource Identifier)에 속함을 보장해야 합니다.
- 리소스는 클라이언트가 필요로 하는 모든 정보를 포함해야 합니다.
- 클라이언트-서버 분리 (Client-server decoupling):
- REST API에서 클라이언트와 서버 애플리케이션은 완전히 독립적이어야 합니다.
- 클라이언트 애플리케이션이 알아야 하는 유일한 정보는 요청된 리소스의 URI이며, 이는 다른 방법으로 서버 애플리케이션과 상호작용할 수 없습니다.
- 서버 애플리케이션은 HTTP를 통해 요청된 데이터에 전달하는 것 말고는 클라이언트 애플리케이션을 수정하지 않아야 합니다.
- 상태 없음 (Statelessness):
- REST API는 각 요청에서 이의 처리에 필요한 모든 정보를 포함해야 함
- REST API는 서버측 세션을 필요로 하지 않습니다.
- 서버는 클라이언트 요청과 관련된 데이터를 저장하지 않습니다.
- 캐시 가능성 (Cacheability):
- 가능하면 리소스를 클라이언트 또는 서버측에서 캐싱할 수 있어야 합니다.
- 서버 응답에는 전달된 리소스에 대해 캐싱이 허용되는지 여부에 대한 정보도 포함되어야 합니다.
- 이의 목적은 서버측의 확장성 증가와 함께 클라이언트측의 성능 향상을 동시에 얻는 것입니다.
- 계층 구조 아키텍처 (Layered system architecture):
- REST API에서는 호출과 응답이 서로 다른 계층을 통과합니다
- 통신 루프에는 다수의 서로 다른 중개자가 있을 수 있습니다. REST API는 엔드 애플리케이션 또는 중개자와 통신하는지 여부를 클라이언트나 서버가 알 수 없도록 설계되어야 합니다.
- 코드 온디맨드(옵션). REST API는 일반적으로 정적 리소스를 전송하지만, 특정한 경우에는 응답에 실행 코드(예: Java 애플릿)를 포함할 수도 있습니다. 이 경우에 코드는 요청 시에만 실행되어야 합니다.
'코딩 > 리액트' 카테고리의 다른 글
SPA, CSR, SSR (0) | 2024.02.13 |
---|---|
state 변경함수 사용할 때 주의점 : async (0) | 2023.09.24 |
실시간 데이터가 중요하면 react-query (0) | 2023.09.23 |
Recoil - Atoms (0) | 2023.09.23 |
Recoil 시작하기 (0) | 2023.09.23 |