- RESTful API는 "Representational State Transfer"의 약어로, 웹 표준을 사용하여 서버와 클라이언트 간의 상호 작용을 정의하는 방법
-
restful 아키텍처

- 화면 렌더링은 vue가 담당하고, spring 서버는 data만을 전달해주는 restful api 아키텍처
-
restful api의 특징
- 리소스 기반
- RESTful API는 모든 것을 리소스(데이터 또는 서비스)로 간주하며, 각 리소스는 고유한 URI(Uniform Resource Identifier)를 가진다고 가정
- 스테이트리스(Stateless) 통신
- 각 요청은 독립적이며, 이전 요청의 상태를 서버가 기억하지 않기 때문에, 모든 요청은 자체적으로 충분한 정보를 포함해야 정상 통신 가능 → HTTP통신의 기본 원칙
- 표준 HTTP 메서드 사용
- REST API는 표준 HTTP 메서드(GET, POST, PUT, PATCH, DELETE 등)를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행
- 데이터 교환 형식
- JSON, XML 등의 경량 데이터 형식을 사용하여 클라이언트와 서버 간 데이터를 교환
- Spring MVC와 RESTful API의 차이
- Spring MVC는 뷰 템플릿을 사용하여 동적 웹 페이지를 생성
- RESTful 서비스는 뷰를 반환하는 대신, HTTP 응답에 데이터를 담아 클라이언트(예: 웹 애플리케이션, 모바일 애플리케이션)에 제공
- RESTful 서비스는 데이터 중심의 API를 제공하며, 주로 JSON형식의 데이터를 반환하는 형식
- REST API 방식의 개발 이유
- 복잡하지 않은 단순한 정적인 화면은 SpringMVC로도 가능, 그러나 다이나믹하고 복잡한 화면은 프론트엔드 기술을 적용. 그에 따라 서버는 REST API적용
- 현대적인 화면에서는 대부분 프론트엔드 기술이 적용된 CSR(클라이언트 사이드 렌더링)이 적용되어 있으므로, REST API가 사실상 서버 통신의 표준