Back-end/DEV notes

MVC pattern 이란? model2 / model1

cheersHena 2018. 8. 22. 01:19
반응형

MCV pattern ?

M : Model  V : View  C : Controller


기존 데이터 흐름

 jsp <---> servlet  <---> dao


* servlet역할

1)jsp(input) 에서 넘오온 데이터(parameter) 분리
2) DB통신: dao호출
3) dao 호출 결과 따른 후처리.
4) 페이지지정:  jsp(output) 지정하여 돌려보냄

DAO (Database Access Object) 

1) DB와 직접적 통신 conn = mConn.getDBConnection();  
     하여 서블릿에서 데이터 처리 (후처리) 
이때 데이터의  전/후처리를 서블릿이 하게되면 서블릿이 비대해지는 문제점이 대두된다. 이를 해결하기 위해 servlet에서 바로 dao 가 아니라 그 사이에 service 라는 것을 사용한다.

2) Service 에서 처리된 결과를 DB에 반영하는 곳

Service
servlet(controller) 의 요청으로 dao호출. 
dao호출 전/후 처리. (서블릿의 2)DB통신 3)전/후처리 단계를 service가 하게 되는것. )
사용자의 요청을 실제 처리하는 코드가 있는곳 

Controller (= service가 적용된 servlet) 

사용자의 요청(.do)이 있을때 요청 처리 위한 준비하는곳.
1) jsp(input) 에서 넘어온 데이터(parameter) 분리
2) service호출 
     2-1) service: DB통신 / dao 호출
     2-2) service : dao 호출 결과 따른 후처리.
3) 페이지지정:  jsp(output) 지정하여 돌려보냄

MVC 패턴 적용하면 기존  jsp <---> servlet <---> dao 에서
 jsp <---> Controller (=servlet ) <---> service <---> dao 
분업하는 것.

즉, 각 작업을 입력처리, 출력처리, 정보처리 로 나눈 분업이다.


입력처리: Controller, 정보처리: Model, 출력처리: View 



1. Model


service+dao : 서비스는 dao호출하고 dao의 결과는 서비스로 간다. 

dao 결과에 따른 데이터 전후처리는 서비스에서 한다.


2. Controller= servlet 

사용자의 요청(.do)이 있을때 요청 처리 위한 준비하는곳.

즉, 사용자 요청받아들이고 파라미터 분리후 파라미터에 따라서

  어떤 작업(어떤 메서드 호출할지)할지 지정. (요청/결과를 받기만 함. 처리는 서비스에서..)


3. View

최종 사용자에게 보여줄 영역(JSP). 보여줌.


** 가장 중요part : Model (service + DAO)

모델에서 모든일이 일어남. 데이터처리와 DB호출.

[Controller, service, dao] 는 하나의 패키지. 항상 같이 다닌다.


**DTO date transfer object

데이터를 효율적으로 관리하기 위해 객체 사용. 

입력 데이터들(파라미터)을 객체화 시켜서 그 객체를 사용함. 

ex) 넘길 매개변수가 100개인경우 다 따로 넘겨줄수 없으므로 100개의 데이터를 객체화 시켜서 객체자체를 보내주는 작업.


** Model 2 pattern

모델 2 패턴이란 MVC패턴을 웹 개발에 도입한 구조이며 모델 2와 MVC패턴은 완전히 같은 형태를 가진다.


 MVC

 model2

 Model

 Service + dao 

 View 

 JSP page 

 Controller

 Servlet 


** Model1 pattern

모델 1 패턴이란 뷰와 로직을 모두 JSP페이지 하나에서 처리하는 구조이다.

이 구조에서 로직부분을 분리하여 나눈 구조가 Model2이자 MVC 패턴으로 탄생한 것이다! 












반응형