Post

스프링5 - 스프링 MVC 2

스프링 MVC

앞선 포스팅에서 MVC 패턴과 서블릿에 대한 개념을 설명하였다.
이번 포스팅에서는 스프링에서 모듈화하여 제공하고 있는 스프링 MVC에 대해 알아보자.

스프링 MVC 특징

스프링 프레임워크는 웹 애플리케이션 개발을 MVC 패턴으로 진행함에 있어 용이함을 제공하기 위해 MVC 인터페이스 및 구현체를 제공하고 있다.

스프링 MVC의 특징은 아래와 같다.

  • 모듈성과 유연성 : 각각의 구성 요소가 느슨하게 결합되어 있어 모듈성이 뛰어나고 유연한 아키텍처를 구축할 수 있다.
  • 커스터마이징 : 다양한 설정 옵션과 확장 포인트를 제공하여 개발자가 애플리케이션을 자유롭게 커스터마이징 할 수 있다.
  • POJO 기반의 컨트롤러 : Plain Old Java Object(POJO)를 기반으로 하는 컨트롤러를 지원하여 간단하게 작성하고 테스트하기 용이하다.
  • 자동화된 테스트 지원 : 스프링이 제공하는 테스트 지원 기능을 활용하여 컨트롤러와 서비스 등을 효과적으로 테스트할 수 있습니다.
  • 다양한 뷰 템플릿 지원 : JSP, Thymeleaf, FreeMarker 등 다양한 뷰 템플릿 엔진을 지원하여 개발자가 선호하는 방식으로 뷰를 작성할 수 있다.
  • AOP(Aspect-Oriented Programming) 지원 : 스프링의 AOP를 통해 횡단 관심사(예: 로깅, 트랜잭션 관리)를 간결하게 처리할 수 있습니다.

위와 같은 특징을 통해 스프링 MVC는 웹 애플리케이션 개발에 있어서 높은 생산성을 제공한다.

스프링 MVC와 Servlet

스프링 MVC는 서블릿(Servlet)을 기반으로 동작한다.
다만 스프링 MVC는 서블릿의 확장으로써 독자적인 기능을 제공하고 있다. 스프링 MVC는 서블릿 API를 추상화하고, 더 나은 유연성과 모듈성을 제공하기 위해 여러 인터페이스와 클래스를 도입하였다.
그 중에서 스프링 MVC의 핵심 컴포넌트인 DispatcherServlet서블릿을 확장한 클래스이다.
DispatcherServlet은 클라이언트의 요청을 받아서 적절한 핸들러로 전달하고, 뷰를 렌더링하여 응답을 생성하는 역할을 한다. 스프링 MVC는 서블릿과 DispatcherServlet을 통해 웹 애플리케이션의 HTTP 요청을 처리 한다.

따라서 개발자는 서블릿 API에 직접적으로 의존하지 않고 스프링 MVC의 기능들을 활용하여 더 간편하게 웹 애플리케이션을 개발할 수 있다.

This post is licensed under CC BY 4.0 by the author.