[CS] 30) 스프링 MVC 프레임워크

songh·2024년 3월 11일
0

CS지식

목록 보기
31/35
post-thumbnail

스프링 MVC 란

Spring MVC는 스프링에서 제공하는 웹 모듈로, 모델, 뷰, 컨트롤러 세가지 구성요소로 구성된다. 사용자의 다양한 HTTP 요청을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 뷰를 표시하는 HTML을 리턴하는 응답까지 할 수 있도록 하는 프레임워크다.

스프링 MVC 구조

모델, 뷰, 컨트롤러 세 가지 구성요소를 가지지만 이들이 유기적으로 동작하도록 하기 위해 다양한 구성요소가 함께 한다.

DispatcherServlet(Front Controller)

Handler(Conetroller)

ModelAndView

ViewResolver

DispatcherServlet

가장 앞단에서 HTTP 요청을 처리하는 컨트롤러다. Spring MVC에서 HTTP Request가 오면 DispatcherServlet 이라는 서블릿이 HTTP 요청을 처리할 컨트롤러를 지정하게 된다. 일종의 HTTP Request를 처리할 Contooler를 지정하는 컨트롤러로, Super Controller 역할을 한다. 이렇게 앞쪽에서 처리하는 컨트롤러를 두는 패턴을 Front Controller 패턴이라고 한다.

처리할 컨트롤러를 지정할때, HandlerMapping을 통해 검색 요청해서 반환받고 해당 컨트롤러로 처리를 요청하게 되는 것이다.

디스패처 서블릿은 프로젝트 파일 내에 servlet-context.xml 파일의 @Controller 인자로 요청 위임 컨트롤러를 찾아서 매핑된 컨트롤러가 존재하면 @RequestMapping 으로 요청을 처리할 메서드로 이동한다.

Controller

HTTP Request를 처리해서 모델을 만들고 view를 지정한다. 배정된 컨트롤러는 http request를 처리하고 필요한 데이터를 뽑아서 Model에 저장한다. 즉, 데이터를 처리해 정제된 데이터를 넣는 것이 Model이다. 또한 http가 보여줄 view name을 지정한다. view name뿐 아니라 직접 view를 반환할 수도 있다. 하지만 이곳에서 view에 모델의 데이터를 세팅해주지는 않는다.

ModelAndView

컨트롤러에 의해 반환된 모델과 뷰가 래핑된 객체를 말한다. Model은 Map 자료구조로 HTTP Request 데이터를 파싱해서 key-value 형태로 저장된다. 이 모델은 이후에 뷰를 그리기 위해 사용된다.

ViewResolver

디스패처 서블릿에서 view를 찾아달라는 요청에 따라 ModelAndView를 처리해서 View를 반환한다. 모델에 저장된 데이터를 사용해 뷰를 그려준다. 여기서 뷰는 사용자에게 보여줄 완성된 뷰로, 유저에게 그대로 반환된다.

따라서 디스패처 서블릿이 클라이언트에게 최종적인 결과를 출력한다고 볼 수 있다.


Spring MVC 의의

모델, 뷰, 컨트롤러 모두 인터페이스를 사용해서 규격해놓아, 유연하고 확장성있는 웹 어플리케이션을 설계할 수 있다.

0개의 댓글

관련 채용 정보