Back-End/JSP

MVC 패턴이 무엇인지 왜 사용하는지 알아보자

CJun 2021. 6. 14. 00:38
반응형
MVC 패턴 이란?
Model, View, Controller의 약자로 웹 애플리케이션을 비지니스 로직, 프레젠테이션 로직, 데이터로 분리하는 디자인 패턴이다. 특히나 웹 애플리케이션에서는 애플리케이션을 비즈니스 로직, 프레젠테이션, 요청 처리 데이터로 분류하고 비즈니스 로직은 애플리케이션의 데이터, 즉 고객, 제품, 주문정보의 조작에 사용되는 용어이고 프레젠테이션은 애플리케이션이 어떻게 표시되는지, 즉 위치, 폰트, 크기를 나타낸다. 그리고 요청 처리 뎅터는 비즈니스 로직과 프레젠테이션 파트를 함께 묶는것을 말한다.

모델(Model)

애플리케이션의 데이터와 비즈니스 로직을 담는 객체이다.

뷰(View)

사용자에게 모델의 정보를 보여주는 역할을 한다.
비즈니스 로직을 포함하지 않으며 하나의 모델을 다양한 뷰에서 사용할 수 있다.

컨트롤러(Controller)

모델과 뷰 사이에 어떤 동작이 있을때 조정하는 역할을 한다.
웹으로부터 받은 요청에 가장 적합한 모델을 생성하는 것을 처리하는 역할과
사용자에게 응답하는 적잘한 뷰를 선택하여 해당 모델을 전달하는 역할을 한다.

 

MVC 패턴 구조

① 모델 1

모델 1은 기존의 JKSP로만 구현합 웹 애플리케이션이고 웹 브라우저의 요청을
JSP 페이지가 받아서 처리하는 구조이다.
즉 JSP페이지에 비즈니스 로직을 처리하는 코드와 웹 브라우저에 결과를 출력하는 코드가 섞이는 것이다.
장점 단점
구조가 단순하여 쉽게 익힐 수 있어 구현이 용이하다. 출력을 위한 뷰 코드와 로직 처리를 위한 자바코드가 섞여있어서 분업이 용이하지 않다.
개발 초기에 복잡한 설정이 필요없어서 빠르게 개발이 가능하다. 코드가 복합하여 유지 보수가 어렵다.

모델 2

모델 2는 클라이언트의 요청 처리와 응답처리 그리고 비즈니스 로직 처리 부분을 모듈화한 구조이다.
웹 브라우저의 요청이 들어오면 모든 처리를 JSP페이지가 담당하는 모델 1과는 다르게
요청에 대한 로직을 처리할 자바빈즈나 자바 클래스인 모델 요청 결과를 출력하는
JSP페이지인 뷰, 모든 흐름을 제어는 서블릿인 컨트롤러 나누어 작업을 처리한다.
장점 단점
출력을 위한 뷰 코드와 로직 처리를 위한 자바 코드를 분리하기 때문에 모델 1보다 코드가 간결하다. 구조가 복잡하여 습득하기가 어렵고 작업량이 많다.
뷰와 로직 처리에 대한 분업이 용이하다. 개발 초기에 설정이 필요한 부분이 모델 1보다 많아 작업하기 까지의 시간들이 많이 소요된다.
기능에 따라 분리되어있기 때문에 유지보수가 용이하다. 코드가 분리되어 관리해야 할 파일이 많아진다.

 

반응형