본문 바로가기

IT/Spring

MVC 모델, MVC 패턴 이란?

반응형

MVC 모델, MVC 패턴 이란?

 

MODEL, VIEW, CONTROLLER의 줄임말


데이터의 처리와 비즈니스 로직, 사용자 화면 세 가지 요소를 각각 독립적으로 디자인하는 것


 

MODEL


프로그램 내부 데이터 처리


DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 역할


MODEL의 상태에 변화가 있을 때 CONTROLLERVIEW에 통보


비즈니스 로직과 데이터를 다루는 영역


비즈니스 데이터는 DBMS에 의해 관리되고 그 데이터를 다루는 연산은 SQL문을 통해 구현된다


편집하고자하는 모든 데이터를 가지고 있어야 한다


ViewController에 대하여 어떤 정보도 알지 말아야 한다


변경이 일어나면 변경 처리 방법을 구현해야 한다


데이터베이스 schema, 데이터 odbc, 쿼리문 등을 모두 가지고 있는 것 


Business Layer / Persistence Layer / Domain Model Layer


Business Layer


Service 클래스로 Controller 계층과 Persistence 계층 사이를 연결하는 역할로 두 계층이 직접적으로 통신하지 않게 하여 애플

리케이션의 유연성을 증가->다른 계층들과 통신하기 위한 인터페이스 제공


핵심 업무를 어떻게 처리할 지에 대한 방법을 기술


트랜잭션 처리

 

Persistence Layer


DAO(Data Access Object, 실제적으로 DB에 접근하는 객체) 클래스가 담당한다


데이터 처리 담당

 

데이터베이스에서 데이터를 빼내 객체화하며 데이터를 저장, 수정, 삭제하는 계층->데이터베이스나 파일에 접근하여 데이터를 CRUD하는 계층(Hibernate, ibatis, EJB)


dataSourceConnection Pool, Sql Mapping 담당

 

Domain Model Layer


데이터 객체를 의미


DTOVO(Value Object, 자바빈즈)와 밀접하다


일반적으로 DTO는 로직이 없이 속성과 속성에 접근하기 위한 setter, getter메소드만 가지고 있다


데이터베이스의 모든 정보를 일일이 객체로 만들기보다는 도메인 모델을 이용하여 서비스

 

VIEW


사용자 인터페이스, MODEL에서 전달받은 데이터 출력


모델이 가진 정보를 따로 저장하면 안된다

 

자바 웹 애플리케이션에서는 JSP를 통해 구현


MVC Model 2에서는 JSP가 그 역할을 한다

 

CONTROLLER


MODELVIEW의 상호작용


클라이언트의 요청을 받아서 실제 업무를 수행하는 부분


클라이언트 요청에 대해 MODELVIEW를 결정하여 전달


DB와의 접근이 필요하다면 MODEL을 통하여 DB에 접근한 뒤 받아온 데이터를 VIEW로 전달해준다


모델이나 뷰에 대하여 알고 있어야 한다

 

MVC Model 1에서는 ServletJSP가 같이 쓰이므로 JSPController 역할을 수행하게 되면서


프리젠테이션 로직과 비즈니스 로직의 분리가 어렵고 뷰의 재활용성이 떨어진다


MVC Model 2에서는 Servlet이다

 

작은 애플리케이션은 JSP 내에서 계층을 분리하지 않고 제어와 로직, 표현을 하나에 처리해도 문제가 발생하지 않고 생산성도 더 좋을 수 있으나 대규모 개발의 경우 각 기능을 확실히 나눠야만 개발자와 디자이너의 업무를 분리하여 프로그램의 유연성을 보장하고 확장성, 재사용성을 높일 수 있다

 

많은 시행착오 끝에 잘 구축된 컨트롤러들이 재활용되며 웹 프레임워크 형태로 보급됨

 

반응형

'IT > Spring' 카테고리의 다른 글

DAL / BLL / PL 패턴, 구조란?  (0) 2017.11.08
Eclipse Project Import 하는 법  (0) 2017.11.07
JUnit과 Spring-test  (0) 2017.10.31
Maven oracle jdbc 연결하기  (0) 2017.09.12