본문 바로가기

면접

Spring MVC

정의

Spring MVC

Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return하는 응답까지 다양한 응답을 할 수 있도록 프레임워크

 

HTTP Request를 처리하는 부분인 Controller,

데이터를 처리해 정제된 데이터를 넣는 Model,

정제된 데이터를 활용해 사용자에게 보여지는 View에 대한 역할 분리를 잘 해놓았다.

 

Spring MVC를 사용하면 Model, View, Controller 모두를 인터페이스를 사용해 규격화해놓아 유연하고 확장성 있게 웹 어플리케이션을 설계할 수 있다.

 

 

동작방식

DispatcherServlet

HTTP Request가 왔을 때 DispatcherServlet이라 불리는 서블릿이 HTTP Request를 처리할 핸들러 어댑터를 지정한다. DispatcherServlet은 일종의 HTTP Request를 처리할 Controller을 지정하는 Controller로 Super Controller 역할을 한다.

이렇게 앞쪽에서 처리하는 컨트롤러를 두는 패턴을 Front Controller 패턴이라고 한다.

 

Controller(Handler)

http request를 처리해 Model을 만들고 View를 지정

DispatcherServlet에 의해 배정된 핸들러 어댑터는 핸들러(Controller)를 실행한다. Controller는 HTTP Request를 처리하고, HTTP Request의 메세지를 처리해 필요한 데이터를 뽑아 Model에 저장한다. 또한 HTTP Request에 따라서 HTTP가 보여줄 View Name를 지정한다. 이곳에서 View Name 뿐만 아니라, 직접 View를 반환할 수도 있다. 하지만 이곳에서 View에 Model의 데이터를 세팅하지는 않는다.

 

ModelAndView

Controller에 의해 반환된 Model과 VIew가 Wrapping된 객체

 

ViewResolver 

ModelAndView를 처리하여 View를 그림

ViewResolver에서는 ModelAndView 객체를 처리해 View를 그린다. 여기서는 모델에 저장된 데이터를 사용해 View를 그려준다.  View는 사용자에게 보여줄 완성된 View이며, 여기서 그려지는 View는 그대로 유저에게 반환된다. 우리가 특정한 url로 들어갔을 때 우리에게 보여지는 View가 바로 이곳에서 만들어지는 View이다.

 

 

Model

클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 한다.

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

클라이언트의 요청 사항을 구체적으로 처리하는 영역을 서비스 계층(Service layer)라고 하며,

요청 사항을 처리하기 위해 Java 코드로 구현한 것을 비즈니스 로직(Business Logic)이라 한다.

 

View

View는 Model을 이용하여 웹 브라우저와 같은 애플리케이션의 화면에 보이는 리소스(Resource)를 제공하는 역할을 한다.

 

 

 

 

reference

https://ittrue.tistory.com/234

'면접' 카테고리의 다른 글

Spring AOP란?  (0) 2023.08.07
Spring DI/IoC  (0) 2023.08.07
기술 질문  (0) 2023.08.01