[SPRING] MVC 흐름, MVC1 vs MVC2 , HMVC, MVVM

이정환·2023년 7월 25일

[CS] SPRING

목록 보기
16/22

스프링 MVC 구조 흐름

  • == http 요청들어오면 디스패쳐서블렛에서 핸들러 맵핑이 핸들러 찾고 핸들러에서 요청처리하면서 모델에 값 저장하거나 불러오고 뷰 리졸버에서 뷰를 불러오고 응답합

MVC 1과 MVC 2의 차이

MVC 1:

  • MVC 1은 초기 웹 애플리케이션 개발에 사용되었던 모델입니다.

    • 웹 애플리케이션의 구조를 JSP (JavaServer Pages)와 서블릿으로 구현합니다.
    • JSP는 뷰(View) 역할을 수행하고, 서블릿은 컨트롤러(Controller) 역할을 수행합니다. 비즈니스 로직은 주로 서블릿 내에서 처리되며, JSP에서는 주로 데이터 표현과 UI 로직이 처리됩니다.
    • JSP와 서블릿 간의 직접적인 의존성이 존재하며, 개발자는 모든 로직을 직접 처리해야 합니다.
    • 코드의 유지보수가 어려울 수 있으며, 뷰와 비즈니스 로직의 강한 결합으로 인해 유연성이 떨어질 수 있습니다.

    MVC 2:

    • MVC 2는 웹 애플리케이션 개발을 위한 전통적인 MVC 패턴을 기반으로 한 발전된 모델입니다.
    • 주로 Java EE (Enterprise Edition) 기반의 프레임워크에서 사용됩니다.
    • 컨트롤러 역할을 수행하는 서블릿은 비즈니스 로직의 처리를 담당하고, 뷰는 JSP로 구현됩니다.
    • 서블릿과 JSP 사이에 컨트롤러를 추가하여 뷰와 비즈니스 로직을 분리합니다. 이를 통해 뷰와 비즈니스 로직 간의 결합도를 낮추고 유연성을 향상시킵니다.
    • 일반적으로 컨트롤러는 요청을 처리하고 필요한 데이터를 모델(Model)에 담아 뷰로 전달합니다.
    • JSP에서는 주로 데이터 표현과 UI 로직을 처리합니다.
    • MVC 1에 비해 코드의 구조와 유지보수성이 향상됩니다.

    요약적으로, MVC 1은 초기 웹 애플리케이션 개발을 위해 사용되던 모델로서 JSP와 서블릿을 직접 사용하여 구현합니다. 반면, MVC 2는 전통적인 MVC 패턴을 확장한 모델로서 컨트롤러를 추가하여 뷰와 비즈니스 로직을 분리합니다. 이를 통해 코드의 구조와 유지보수성을 향상시킵니다.

MVC와 HMVC에 대해서 설명하고 둘의 차이점, 목표와 장점에 대해 설명하시오.

  • 컨트롤러 중심적으로 모델과 뷰간의 매개체 역할 수행, 모델, 뷰, 컨트롤러 각 부분이 모듈로 분리되어 설계되어서 협업에 용이, 코드 가독성 향상, 유지보수 수월. 재사용성증가. HMVC (Hierarchical Model-View-Controller) 는 MVC의 확장판으로 볼 수 있음. ex. nestjs, java spring

MVVM(model view view-model)

  • == 뷰 모델은 뷰와 모델 사이의 매개체 역할을 수행, MVC에서 MV 부분을 좀 더 구체화 시킨 것

0개의 댓글