-웹 서비스와 API 디자인을 위한 아키텍처 스타일 및 설계 "원칙"이다. RESTful한 시스템은 HTTP를 통해 클라이언트와 서버 간에 데이터를 주고 받으며, 특정 설계 원칙과 제한을 준수한다.
RESTful은 웹 서비스와 API 디자인을 위한 아키텍처 스타일 및 설계 원칙이다. RESTful은 "Representational State Transfer"의 약자이며 RESTful한 시스템은 HTTP를 통해 클라이언트와 서버 간에 데이터를 주고받으며, 특정 설계 원칙과 제한을 준수한다.
RESTful 시스템의 주요 특징과 원칙은 다음과 같다.
자원(Resource) 중심:
-RESTful 시스템에서는 모든 데이터와 서비스가 "자원"으로 간주된다. 자원은 고유한 URI(Uniform Resource Identifier)로 식별되며, 클라이언트는 이 URI를 사용하여 자원에 접근한다.
표준 HTTP 메소드 사용:
-RESTful 시스템은 HTTP 프로토콜의 표준 메소드(GET, POST, PUT, DELETE 등)를 사용하여 자원에 대한 CRUD(생성, 조회, 갱신, 삭제) 작업을 수행한다.
예를 들어, GET 메소드는 자원을 조회할 때 사용하고, POST 메소드는 자원을 생성할 때 사용한다.
표준 HTTP 상태 코드 사용:
-클라이언트와 서버 간의 통신에서 HTTP 상태 코드를 사용하여 요청의 성공 여부 및 결과를 나타낸다. 예를 들어, 200 OK는 요청이 성공적으로 처리되었음을 나타내고, 404 Not Found는 요청한 자원을 찾을 수 없음을 나타낸다.
상태 비저장(Stateless):
-RESTful 시스템에서는 각 요청이 독립적이며, 서버는 클라이언트의 상태를 유지하지 않는다. 클라이언트는 필요한 모든 정보를 요청에 포함시켜 서버가 클라이언트의 이전 상태를 기억할 필요가 없도록 한다.
캐싱 지원:
-RESTful 시스템은 HTTP 헤더를 사용하여 클라이언트와 서버 간에 데이터를 효율적으로 전달하고 캐싱할 수 있습니다. 이를 통해 네트워크 트래픽을 줄이고 응답 시간을 단축할 수 있다.
계층화 아키텍처:
-RESTful 시스템은 계층화된 아키텍처를 지원하여 클라이언트, 서버, 데이터 저장소 등의 역할을 분리합니다. 이를 통해 유연성과 확장성을 높일 수 있습니다.
RESTful한 시스템은 웹 서비스 및 API를 설계하고 구현하는 데 널리 사용되는 아키텍처 스타일이다. RESTful 서비스는 HTTP 프로토콜을 활용하여 클라이언트와 서버 간의 상호작용을 표준화하며, 이를 통해 웹 서비스의 가독성, 확장성, 유지보수성을 향상시킨다!