갑자기 궁금해서 작성해보는 Rest Api와 Spring MVC차이를 알아보자.
우선 내가 알고있던건 뷰(view)를 반환하느냐 안하느냐에 따라서 MVC와 RestAPI로 나누어진다고 수박 겉핥기 식으로 알고 있었다. 그러나 갑자기 궁금해서 찾아보기 시작했다 .
우선 요즘 구글링보다 지선생이 조금 더 빠른 것 같아서 무작정 지선생님에게 물어봤다
Rest Api와 Sprin MVC의 차이를 알려줘
에 대한 답은
REST API와 Spring MVC는 모두 웹 애플리케이션 개발에 사용되는 중요한 개념이지만, 서로 다른 관점과 목적을 가지고 있습니다.
개념 및 목적: REST는 네트워크 아키텍처의 한 스타일로, 분산 시스템에서 리소스를 표현하고 관리하기 위한 방법을 제공합니다. REST API는 웹 리소스를 고유한 URI로 표현하며, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 작업을 수행하는 방식을 말합니다. 주로 웹 상의 자원을 효과적으로 공유하고 조작하기 위해 사용됩니다.
특징: Stateless(무상태), Cacheable(캐시 가능), Uniform Interface(일관된 인터페이스), Self-descriptive Messages(자체 서술적 메시지), Client-Server 구조 등의 특징을 가집니다.
개념 및 목적: Spring MVC는 웹 애플리케이션을 개발하기 위한 프레임워크로, 클라이언트 요청을 처리하고 응답을 생성하는 데 사용됩니다. 애플리케이션의 구성 요소를 Model(데이터 및 비즈니스 로직), View(사용자 인터페이스), Controller(요청 처리 및 로직 제어)로 분리하여 관리하며, MVC 패턴을 따릅니다. Spring MVC는 개발자가 웹 애플리케이션을 구축하고 유지보수하기 쉽게 도와줍니다.
특징: 애노테이션 기반의 URL 매핑, 모델-뷰-컨트롤러 아키텍처, 다양한 핸들러 인터셉터 및 필터 지원, 데이터 바인딩, 유효성 검사, 뷰 리졸버 등의 기능을 제공합니다.
차이점:
범위와 기능의 차이: REST API는 네트워크 아키텍처를 기반으로 하며, HTTP 메서드를 통해 리소스에 대한 작업을 정의합니다. Spring MVC는 웹 애플리케이션 개발을 위한 다양한 기능과 구성 요소를 포함하고 있으며, MVC 아키텍처 패턴을 따르기 때문에 모델, 뷰, 컨트롤러의 분리가 중요한 특징입니다.
요약하면, REST API는 네트워크 아키텍처 스타일로 웹 리소스를 관리하고 조작하기 위한 개념이며, Spring MVC는 웹 애플리케이션 개발을 위한 프레임워크로 클라이언트 요청 처리와 응답 생성을 관리하는 데 사용됩니다. Spring MVC는 RESTful 웹 서비스를 개발하기 위한 도구로도 활용될 수 있습니다.
Spring MVC
RESTful Api
MVC는 DispatcherServlet을 걸쳐 view를 응답하지만, RESTful Api는 DispatcherServlet을 거치지 않고 json 형식의 데이터를 응답한다.