MVC(Model1, Model2)

계리·2024년 3월 24일
0

MVC패턴

소프트웨어 디자인 패턴 중 하나다. Model, View, Controller 세 가지 요소로 나뉘는데 이렇게 나뉜 이유는 사용자 인터페이스(화면)와 비즈니스 로직을 분리하여 유지보수를 용이하게 하기 위한 디자인 패턴이다.


MVC 구성

Model

내부 비즈니스 로직과 데이터를 관리를 한다. 그래서 DB와 상호작용을 한다. VO와 DAO 클래스를 생각하면 된다.

View

사용자 인터페이스를 담당한다. 요청을 받고 View를 통해 응답 결과를 보여준다. JSP파일에서 HTML과 CSS를 생각하면 된다.

Controller

Model과 View 사이에서 중간 역할을 담당한다. Model을 통해 데이터를 받고 View로 부터 응탑 결과를 보여주도록 데이터를 전달 해준다.


Model1

출처 - https://velog.io/@chamroro/JSP-Model1-Model2-Spring-MVC-pattern-%EC%B0%A8%EC%9D%B4

Model에서 Bean(또는 Java Bean)라고 적혀있는데 자바 객체를 의미한다. 결국 Bean, JavaBean는 DB 연동에 사용되는 자바 객체들이다. 그래서 위에서 Model에 대해 간략히 설명할 때 VO, DAO 클래스들을 생각해보라고 한 것이였다.


특징

Model1 구조 같은 경우 JSP 파일에서 Controller와 View 기능을 모두 처리한다는 특징이 있다. 즉 JSP 파일에서 요청받는 것부터 View 응답 결과를 보여주는 것까지 역할을 수행한다.

Model1 구조 같은 경우 이렇게 단순한 구조이기 때문에 적은 인력으로 간단판 프로젝트를 수행할 때 사용할 수 있다는 장점이 있지만 엔터프라이즈급의 대규모 프로젝트로 가게 되면 유지보수가 어려워지게 되고 개발자와 디자이너 간에 협업이 어려워지게 된다.


Model2

출처 - https://velog.io/@chamroro/JSP-Model1-Model2-Spring-MVC-pattern-%EC%B0%A8%EC%9D%B4

특징

Model2 구조는 위에서 설명한 MVC 디자인 패턴을 얘기한다. Model1의 단점들을 보완하기 위해 만들어진 구조이다.

이렇게 세 가지로 나뉘게 되면 Controller는 Servlet에서 담당하게 되고 View는 JSP 파일에서 관리하게 되므로 유지보수에 용이하게 되고 개발자와 디자이너간 협업에 있어 수월하게 진행할 수 있다는 장점이 있지만 나뉘어진만큼 복잡도가 올라가게 되어 흐름을 파악하는데 어려워지고 설계 난이도도 올라가게 된다는 단점이 있다.


참고

profile
gyery

0개의 댓글