ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring MVC
    Spring(Java) 2023. 11. 3. 17:28

     

    디자인 패턴과 MVC패턴

     

    Spring MVC에 대해 설명하려면 기본적으로 디자인 패턴이 무엇인지, 그 중 MVC 패턴은 무엇인지에 대해 알아야 한다.


    디자인 패턴

    • 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것

    MVC 패턴이란?

    Model - View - Controller 로 구성되어 있으며,

    사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴 

     

    Model

    • 데이터베이스와 연동해 데이터를 저장하고 불러오는 역할을 수행
    • View나 Controller에 대해 어떠한 정보도 알지 못해야 함

    View

    • 모델(데이터)을 사용자에게 표시함
    • 모델이 가지고 있는 데이터를 따로 저장하면 안됨
    • Model과 Controller같은 다른 구성요소에 대한 정보를 모름

    Controller

    • Model과 View사이에서 동작하며, View 혹은 다른 외부 소스에 의해 변경요청된 이벤트를 감지
    • 이벤트들에 대한 적절한 로직을 수행
    • Model이나 View에 대해서 알고 있어야하며, 변경사항을 모니터링 함

    Spring MVC


    Servlet

    • 클라이언트의 요청을 처리하도록 특정 규약에 맞춰 Java코드로 작성하는 클래스 파일
    • Spring MVC 내부에서는 서블릿을 기반으로 웹 애플리케이션을 동작
    • Spring Boot는 기본적으로 Apache Tomcat이 내장

    Spring MVC의 구성 요소와 동작 방식

    Spring MVC의 구조

    • Dispatcher Servlet은 Http Servlet을 상속받아 사용하고, 서블릿으로 동작한다.
    • Dispatcher Servlet → FrameworkServlet → HttpServletBean → HttpServlet

    동작 순서

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

     

Designed by Tistory.