본문 바로가기
JSP

JSP / Servlet(서블릿) 의 MVC 패턴

by 산과잔 2020. 10. 24.

[     MVC 패턴     ]

  • M (Model, 모델) :  로직(연산) 수행(데이터 작업 포함) 을 담당
  • V (View, 뷰) : 사용자 화면 출력을 담당함
  • C (Controller, 컨트롤러) : 중앙에서 Model 과 View 의 제어를 담당

MVC 패턴이란, WAS(Web Application Servel) 안에서의 역할을 3가지로 나눠서 구성하는 디자인 패턴을 말한다. 

출처 : https://codevang.tistory.com/192?category=844272

[     Controller(컨트롤러)     ]

모든 요청은 컨트롤러로 모인다. 

사용자가 직접 URL/IP 를 입력해서 접근하건, 뷰(View)에서 다른 뷰(View) 를 호출하건, 모델(Model) 에서 다른 모델을 호출하건 모두 컨트롤러를 거치게 된다. 

일종의 작업 분배기 이다. 

 

톰캣서버(=WAS) 에서 구동되는 가장 핵심적인 역할이기 때문에 서블릿(HttpServlet) 클래스를 상속받아

서블릿(서블릿이란? = mangkyu.tistory.com/14)이 된다. 

서블릿은 톰캣 서버와 정보를 주고 받을 수 있는 기능이 있고, 특히 사용자의 요청 내용과 커넥션 정보 등을 내장 객체 형태로 가지고 있어 이를 적절히 처리할 수 있는 기능을 갖고 있다,

이 정보를 모델에게 넘겨서 로직을 수행하게 하고 다시 결과를 받아 뷰에게 전달해 최종 화면을 사용자에게 넘겨준다.

또는 바로 뷰를 호출해 사용자에게 화면을 보여 줄 수도 있다. 

 

[     Model(모델)     ]

실제 로직을 수행하는 역할을 하는 자바 클래스.

Command 는 로직을 수행하는  기능을 가진 클래스를 의미하고

DAO/DTO 는 DB 와 연동되어 데이터 작업을 담당하는 기능의 클래스이다. 

둘을 나눠둔 것도 역시 기능별로 모듈화를 하는 객체지향적 방식을 지향하기 때문이다. 

DAO 는 데이터 작업 로직을 가진 클래스 

DTO 는 데이터를 저장해 운반하기 위한 클래스이다. 

일반적인 자바 프로그램밍과동일한 구조이다. 

 

[     View(뷰)     ]

최종 작업 결과물을 가지고 적절한 화면을 구성해서 사용자에게 전달하는 기능

화면 구성은 JSP 가 편리하기 때문에 대부분 JSP 를 사용해 뷰를 구성한다.

톰캣서버(=WAS)는 컨트롤러가 최종적으로 실행시킨 JSP 파일을 서블릿으로 변환해서 컴파일 한뒤 실행해준다.

결과적으로 사용자에게 도달하는 데이터는  html 형태의 코드가 된다.

브라우저는 이 코드를 받아 화면 구성을 해 사용자에게 보여준다. 

 

출처 : codevang.tistory.com/