[Spring] MVC란? (MVC1 vs MVC2)

bien·2023년 6월 25일
0

spring

목록 보기
1/1

MVC 패턴이란?

M(Model) / V(View) / C(Controller)

  • 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
  • UI와 비즈니스 로직을 분리 -> 서로 영향없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.

모델 Model

  • 데이터와 비즈니스 로직을 관리.
  • 데이터 영역. DAO(Data Access Object), DO(Data Object) 등으로 구분하여 구현한다.
  • 사용자에게 노출되지 않으므로 표시 형식에 유의하지 않아도 된다
  • 몇몇 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고, 나머지 함수들은 상태를 수정한다.

뷰 View

  • 보여줄 값(모델)을 컨트롤러로부터 받아와 사용자에게 보여준다.
  • 사용자에게 보여지는 화면(UI). 모델로부터 정보를 얻고 표시한다.

컨트롤러 Controller

  • MVC 패턴의 중심 부분으로 제어 역할을 담당하며 서블릿(Servlet)으로 구현된다.
  • 데이터와 비즈니스 로직 사이의 상호 동작을 관리한다. 즉, 모델과 뷰를 통제하여 View와 Model이 직접적인 상호 소통을 하지 않도록 관리한다.
  • 앱의 사용자로부터 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직.

MVC1

JSP페이지와 자바빈 클래스로 나누어 구현.

JSP페이지

  • Controller + View
  • 하나의 jsp 페이지에서 controller는 자바, view는 html, css는 자바스크립트를 사용.
  • 하나의 화면을 보여주고 요청이 페이지로 들어올때 요청에 관한 비즈니스 로직을 수행하는것도 JSP 페이지에서 이루어진다.

자바빈 클래스

  • DB같은 외부 저장소와 관련된 데이터 처리 담당.

장단점

  • JSP 하나로 유저의 요청을 받고 응답을 처리하므로 구현 난이도는 쉽다.
  • JSP 하나에서 MVC가 모두 이루어져 재사용성이 매우 떨어지고, 읽기도 힘들다. 즉, 유지 보수에 있어 어려움이 크다.

MVC2

  • 웹 브라우저 요청을 하나의 컨트롤러(servlet)에서 먼저 처리.
  • MVC1과 달리 Controller, View가 분리되어 있다.
  • controller는 요청에 대한 로직처리를 model로 보내고, model은 결과를 view로 보내어 사용자에게 응답한다.
  • 대표적인 것이 스프링 프레임워크.

  • DispatcherServlet이 FrontController의 역할을 맡아 유저의 요청을 받는다.

장단점

  • 유지보수 확장에 용이하며 controller와 view의 분리로 명료한 구조를 가진다. 따라서 개발자와 디자이너의 역할 분담이 용이하다.
  • 구조 설계를 위한 시간이 많이 소요되어 개발이 어렵다.

Reference

profile
Good Luck!

0개의 댓글