Rest Api와 Spring MVC의 차이

popolarburr·2023년 8월 5일

갑자기 궁금해서 작성해보는 Rest Api와 Spring MVC차이를 알아보자.

우선 내가 알고있던건 뷰(view)를 반환하느냐 안하느냐에 따라서 MVC와 RestAPI로 나누어진다고 수박 겉핥기 식으로 알고 있었다. 그러나 갑자기 궁금해서 찾아보기 시작했다 .

지피티의 도움

우선 요즘 구글링보다 지선생이 조금 더 빠른 것 같아서 무작정 지선생님에게 물어봤다

Rest Api와 Sprin MVC의 차이를 알려줘

에 대한 답은

REST API와 Spring MVC는 모두 웹 애플리케이션 개발에 사용되는 중요한 개념이지만, 서로 다른 관점과 목적을 가지고 있습니다.

  • REST API (Representational State Transfer API):

개념 및 목적: REST는 네트워크 아키텍처의 한 스타일로, 분산 시스템에서 리소스를 표현하고 관리하기 위한 방법을 제공합니다. REST API는 웹 리소스를 고유한 URI로 표현하며, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 작업을 수행하는 방식을 말합니다. 주로 웹 상의 자원을 효과적으로 공유하고 조작하기 위해 사용됩니다.

특징: Stateless(무상태), Cacheable(캐시 가능), Uniform Interface(일관된 인터페이스), Self-descriptive Messages(자체 서술적 메시지), Client-Server 구조 등의 특징을 가집니다.

  • Spring MVC (Model-View-Controller):

개념 및 목적: Spring MVC는 웹 애플리케이션을 개발하기 위한 프레임워크로, 클라이언트 요청을 처리하고 응답을 생성하는 데 사용됩니다. 애플리케이션의 구성 요소를 Model(데이터 및 비즈니스 로직), View(사용자 인터페이스), Controller(요청 처리 및 로직 제어)로 분리하여 관리하며, MVC 패턴을 따릅니다. Spring MVC는 개발자가 웹 애플리케이션을 구축하고 유지보수하기 쉽게 도와줍니다.

특징: 애노테이션 기반의 URL 매핑, 모델-뷰-컨트롤러 아키텍처, 다양한 핸들러 인터셉터 및 필터 지원, 데이터 바인딩, 유효성 검사, 뷰 리졸버 등의 기능을 제공합니다.
차이점:

  • 개념과 목적의 차이: REST API는 분산 시스템에서 자원을 표현하고 관리하기 위한 아키텍처 스타일을 말하며, 주로 웹 리소스의 효율적 공유와 조작을 위해 사용됩니다. Spring MVC는 웹 애플리케이션을 개발하기 위한 프레임워크로, 클라이언트 요청 처리와 응답 생성을 위해 사용됩니다.

범위와 기능의 차이: REST API는 네트워크 아키텍처를 기반으로 하며, HTTP 메서드를 통해 리소스에 대한 작업을 정의합니다. Spring MVC는 웹 애플리케이션 개발을 위한 다양한 기능과 구성 요소를 포함하고 있으며, MVC 아키텍처 패턴을 따르기 때문에 모델, 뷰, 컨트롤러의 분리가 중요한 특징입니다.

  • 관련성: Spring MVC는 RESTful 웹 서비스를 개발하기 위해 사용될 수 있습니다. Spring 프레임워크는 Spring MVC 모듈을 통해 RESTful 웹 서비스를 쉽게 구축할 수 있는 다양한 기능을 제공합니다. 이는 Spring MVC가 REST API 개발에 사용되는 하나의 방법이라는 의미입니다.

요약하면, REST API는 네트워크 아키텍처 스타일로 웹 리소스를 관리하고 조작하기 위한 개념이며, Spring MVC는 웹 애플리케이션 개발을 위한 프레임워크로 클라이언트 요청 처리와 응답 생성을 관리하는 데 사용됩니다. Spring MVC는 RESTful 웹 서비스를 개발하기 위한 도구로도 활용될 수 있습니다.

그림이해

Spring MVC

  • 클라이언트의 요청이 들어오면 ViewResolver를 통해 클라이언트에게 text/html , jsp 타입 혹은 파일의 경로 타입의 view 응답을 보낸다.

RESTful Api

  • 클라이언트의 요청이 들어오면 MessageConverter를 통해 application/json이나 text/plain등 알맞은 형태로 리턴한다. ( http response )

결론

MVC는 DispatcherServlet을 걸쳐 view를 응답하지만, RESTful Api는 DispatcherServlet을 거치지 않고 json 형식의 데이터를 응답한다.

profile
차곡차곡

0개의 댓글