MVC (Model, View, Controller) 의 개념
MVC의 기본개념에 대해 새로 정립하고 싶어서 다시 정리를 해 보았다.’
- MVC PatternMVC
는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.
MVC-Pattern
제목에도 나와있듯이 “MVC”는 Model View Controller의 약자이다. 소프트웨어를 이 세가지 역할로 구분하여 개발하는 방법론이다. Spring Framework와 JSP 예제를 보더라도 위 디자인 패턴을 많이 사용하는 것을 볼 수 있다.
Model
Model은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후 그 결과를 리턴한다. 여기서 나오는 단어가 “DAO”이다. Data Access Object의 약자이며 실질적으로 데이터베이스에 접근하여 검색, 추가, 수정, 삭제 등 데이터의 조작을 할 수 있는 객체이다.
Data Access Object위 그림과 같이 어떤 요청이 들어와 Controller가 받아 요청처리를 위해 Model을 사용한다. 이 Model에 정의된 DAO는 데이터 처리 후 결과를 반환한다.
View
View는 데이터가 반영되어 클라이언트 측(사용자)에게 보여주는 역할을 한다. 데이터를 처리해서 보내는 곳은 당연히 Model이 되고, 클라이언트 측 기술(웹에선 HTML/CSS/Javascript)들을 모아둔 컨테이너이다.
Controller
controller는 클라이언트 측 요청을 받아 이를 파악한 후 그 요청에 맞는 데이터를 Model에 의뢰하는 역할을 한다. Spring Framework에서는 “DispatcherServlet”이 되고 프레임워크를 사용하지 않는 일반 JSP Dynamic Web Project에서는 web.xml에서 정의한 Servlet이다.
MVC에서 자주 쓰이는 용어
- DAO(=Data Access Object) : 실질적으로 DB에 접근하는 객체를 말한다.
- DTO(=Data Transfer Object) : 컨트롤러, 뷰, 비즈니스, 퍼시스턴스 계층간 데이터 교환을 위한 객체이다. 일반적인 DTO는 로직을 갖고 있지 않으며 속성과 그 속성을 접근하기 위한 getter, setter 메소드만 가진 클래스이다.
- VO(=Value Object) : DTO와 비슷한 개념, 다만 VO는 Read Only속성을 가진다.
- MO(=Model)
MVC 개발 순서
Web Application(JSP Model 1) 개발 순서
- DBMS 설정
- DTO(Data Transfer Object, Domain, Model) Class 제작
- DAO(Data Access Object, Persistence) Class 제작
- Manager Class(Process, Business Logic) 제작
- Manager Test
- JSP 생성 연동
MVC Web Application(JSP Model 2) 개발 순서
- DBMS 설정
- DTO(Data Transfer Object, Domain, Model) Class 제작
- DAO(Data Access Object, Persistence) Class 제작
- Manager Class(Process, Business Logic) 제작
- Manager Test
- Servlet Controller 제작
- Action Interface 제작
- Action 구현 Class 제작
- Manager Class 연동
- JSP 생성 연동
참고자료
https://opentutorials.org/course/697/3828 – MVC 디자인 패턴
https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC – MVC 위키피디아
http://genesis8.tistory.com/214 – DAO / VO / DTO 란?