Spring MVC란?

‘아키텍처로 보는 Spring Framework 모듈(Module) 구성’ 챕터에서 본 것처럼 Spring에서 지원하는 모든 기능들을 포함해서 Spring Framework이라고 부릅니다.

Spring의 모듈 중에는 웹 계층을 담당하는 몇 가지 모듈이 있습니다. 특히 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데, 이 모듈 이름이 바로 spring-webmvc입니다.

개발자들 사이에서는 Spring Web MVC를 줄여서 Spring MVC라고 부르고 있고, Spring MVC가 웹 프레임워크의 한 종류이기 때문에 Spring MVC 프레임워크라고도 부릅니다.

우리는 가장 많이 사용하는 용어인 Spring MVC라고 부르도록 하겠습니다.

아직 Spring MVC가 무엇인지 구체적으로 머릿속에 그려지지 않겠지만 지금은 두 가지만 기억하면 됩니다.

**서블릿(Servlet)**이란?

서블릿에 대해서는 이전 학습에서 잠깐 언급을 한 적이 있습니다.

서블릿은 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일입니다.

그리고 **아파치 톰캣(Apache Tomcat)**은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나입니다.

우리가 학습을 진행하면서 직접적으로 서블릿 기술을 사용할 일은 없지만 Spring MVC 내부에서는 서블릿을 기반으로 웹 애플리케이션이 동작한다는 사실은 기억을 하고 있으면 좋겠습니다.

Model

Model은 Spring MVC에서 M에 해당됩니다

Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 합니다.

이렇게 처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려줘야 하는데, 이때 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터Model이라고 합니다.

클라이언트의 요청 사항을 구체적으로 처리하는 영역을 **서비스 계층(Service Layer)**이라고 하며, 실제로 요청 사항을 처리하기 위해 Java 코드로 구현한 것을 **비즈니스 로직(Business Logic)**이라고 합니다.

View

View는 Spring MVC에서 V에 해당됩니다.

View는 앞에서 설명한 Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보이는 리소스(Resource)를 제공하는 역할을 합니다.