[Spring 공부일지] MVC…?

최원석·2024년 7월 29일

Spring 공부

목록 보기
2/5

MVC pattern

MVC는 Model View Controller의 약자로 사용자 인터페이스, 데이터 및 놀리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.

애플리케이션의 개발영역을 Model, View, Controller로 구분하여 각 영역에 맞게 코드를 작성한다.

→ 변경사항이 생겨도 다른 영역에 영향이 미치지 않으므로 유지보수가 용이. 또한 영역 간의 결합성이 낮아지므로 프로그램 수정이 용이해 확정이 뛰어남

Model

애플리케이션에서 정보 및 데이터 부분을 의미. Controller에게 받은 데이터를 조작하는 역할을 수행

View

사용자 인터페이스 요소를 나타냄. Contrller에게 받은 Model 데이터를 사용자에게 시각적으로 보여주기위한 역할을 수행

Controller

Model과 View 사이에서 데이터 흐름을 제어. 요청을 파악 처리하고 결과를 Model에 저정하여 View에게 전달.

MVC 패턴
MVC 패턴


Spring Web MVC

Spring MVC란, Spring에서 제공하는 웹 모듈로 Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request를 처리하고 다양한 응답을 할 수 있도록 만든 프레임워크

DispatcherServlet

HttpServlet을 상속받아 사용, 서블릿으로 동작한다.

❓ 서블릿(Servlet)? 클라이언트의 요청을 처리하도록 특정 규약에 맞춰 Java코드로 작성하는 클래스 파일

요청 흐름

  1. 서블릿 호출 시 HttpServlet이 제공하는 service()메서드 호출
  2. 스링 MVC는 FramworkServlet.service()를 시작으로 여러 메서드가 호출되면서 최종적으로DispatcherServlet.doDispatch()가 호출

동작 순서

  1. 핸들러 조회 : 핸들러 매핑을 통해 URL에 매핑된 핸들러(컨트롤러) 조회
  2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터 조회
  3. 핸들러 어댑터 실행: 핸들러 어댑터 실행
  4. 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행
  5. ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해 반환.
  6. viewResolver 호출: 뷰 리졸버를 찾아 실행한다.
  7. View 반환: 뷰 리졸버는 뷰의 논리 이름을 물이 이름으로 바꾸고 렌더링 역할을 담당하는 뷰 객체 반환.
  8. 뷰 렌더링: 뷰를 통해서 뷰를 렌더링한다.

1개의 댓글

comment-user-thumbnail
2024년 7월 29일

유익하네요

답글 달기