Rest Api와 Spring MVC의 차이

popolarburr·2023년 8월 5일
0

갑자기 궁금해서 작성해보는 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개의 댓글

관련 채용 정보