MVC (Model, View, Controller) 의 개념

MVC-Pattern

MVC (Model / View / Controller)

“MVC”는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.

제목에도 나와있듯이 “MVC”는 Model View Controller의 약자이다. 소프트웨어를 이 세가지 역할로 구분하여 개발하는 방법론이다.  Spring Framework와 JSP 예제를 보더라도 위 디자인 패턴을 많이 사용하는 것을 볼 수 있다.

 

Model

Model은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후 그 결과를 리턴한다. 여기서 나오는 단어가 “DAO”이다. Data Access Object의 약자이며 실질적으로 데이터베이스에 접근하여 검색, 추가, 수정, 삭제 등 데이터의 조작을 할 수 있는 객체이다.

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 개발 순서

1. Web Application(JSP Model 1) 개발 순서

  1. DBMS 설정
  2. DTO(Data Transfer Object, Domain, Model) Class 제작
  3. DAO(Data Access Object, Persistence) Class 제작
  4. Manager Class(Process, Business Logic) 제작
  5. Manager Test
  6. JSP 생성 연동

  2. MVC Web Application(JSP Model 2) 개발 순서

  1. DBMS 설정
  2. DTO(Data Transfer Object, Domain, Model) Class 제작
  3. DAO(Data Access Object, Persistence) Class 제작
  4. Manager Class(Process, Business Logic) 제작
  5. Manager Test
  6. Servlet Controller 제작
  7. Action Interface 제작
  8. Action 구현 Class 제작
  9. Manager Class 연동
  10. 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 란?

https://m.blog.naver.com/PostView.nhn?blogId=sunmaket&logNo=50113449506&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F – MVC 개발순서


게시됨

카테고리

작성자

%d 블로거가 이것을 좋아합니다: