스프링 프레임워크(31) MVC

넙데데맨·2022년 6월 29일
0

MVC 패턴

  • 비즈니스 로직과 프레젠테이션 로직의 분리하기 위한 아키텍쳐 패턴

Model 컴포넌트

  • 데이터 저장소와 연동해 입력받거나 출력할 데이터 처리
  • DAO, Service 클래스에 해당된다.
  • 여러 트랜잭션을 다루는 일도 한다.

View 컴포넌트

  • 모델이 처리한 데이터, 작업 결과를 가지고 출력할 화면을 만드는 일
  • HTML, CSS, JS를 사용해 웹 브라우저가 출력할 UI 만듬

Controller 컴포넌트

  • 클라이언트 요청을 받았을 때 요청에 대해 실제 업무 수행하는 모델 컴포넌트 호출
  • 클라이언트가 보낸 데이터를 호출 시 전달하기 쉽게 데이터 가공
  • 모델이 업무 수행 완료 시 결과를 뷰를 결정 후 전달
  • Servlet JSP 사용해 작성

모델1 & 모델2

모델1

뷰와 컨트롤러 역할을 JSP 페이지에서 모두 처리하는 구조

모델2

JSP는 뷰의 역할만하고 컨트롤러 역할을 하는 Servlet을 구현

모델2 호출 순서

Front Controller 패턴

  • Front Controller가 클라이언트 요청을 받아 공통적인 작업을 먼저 수행 후 적절한 세부 Controller에게 작업 위임
  • 세부 Controller는 클라이언트에게 보낼 뷰 선택, 최종 결과 생성
  • 인증, 권한 체크 등 공통 처리할 로직이 있을 경우 사용

Spring MVC

특징

  • 서블릿 기반 웹 개발을 위한 MVC 프레임워크 제공
  • 모델 2 아키텍쳐와 Front Controller 패턴 제공
  • Front Controller 역할은 DispatcherServlet이 하며 모든 요청을 받아 처리하도록 구성
  • Spring 기반이기 때문에 DI, AOP 등 쉽게 이용

구성 요소

DispatcherServlet

클라이언트 요청을 받아 Controller에 요청 전달, 리턴 결과 값을 View에게 전달해 응답생성

HandlerMapping

URL 요청정보를 받아 어떤 핸들러 객체 사용할 지 결정

Controller

클라이언트 요청 처리 후 Model 호출, 결과를 DispatcherServlet에 알려줌

ModelAndView

Controller가 처리한 데이터 및 화면 정보 객체

View

Controller 처리 결과 화면에 대한 정보 보유한 객체

ViewResolver

Controller가 반환한 뷰 이름 기반으로 Controller 처리 결과 생성할 View 결정

처리 과정

  1. DispatcherServlet에 클라이언트 요청 전달
  2. DispathcerServlet이 HandlerMapping 사용해 Controller 객체 선택 후 요청 처리
  3. Controller는 클라이언트 요청처리 결과와 View 페이지 정보를 ModelAndView 객체에 담아 반환
  4. DispatcherServlet은 ViewResolver로 부터 응답 결과 생성할 View 객체 구함
  5. View는 클라이언트에게 전송할 응답 생성

웹 어플리케이션 작성 절차

  1. 클라이언트 요청 받는 DispatcherServlet web.xml에 설정
  2. 클라이언트 요청 처리할 Controller 작성
  3. Spring Bean으로 Controller 등록
  4. JSP를 이용해 View 영역 코드 작성
  5. 브라우저 상에서 JSP 실행
profile
차근차근

0개의 댓글