MVC(Model, View, Controller)는 게임 개발, 윈도우즈 프로그래밍 개발,웹 어플리케이션 개발등 여러군데서 많이 사용한다.
MVC패턴을 모르고서는 프로그래밍을 할수 없을 정도로 많은 기업이나 오픈소스프로젝트에서 소스의 유지보수를 위해서, 구현의 효율성을 높이기 위해서 많이 쓴다.
MVC 패턴
MVC패턴은 Smalltalk에서 그래픽 인터페이스와 실제로 동작하는 코드를 분리하기 위해 개발되었다 지금은 다른 객체지향언어에서도 널리 사용되는 패턴 중 하나이다.
웹 어플리케이션에서 사용하는 MVC 패턴
MVC 패턴의 기본 개념은 사용자에게 보일 페이지(View)와 데이터 처리(Model), 그리고 이들 상호간의 흐름을 제어(Controller)하는 모듈을 분리하는 것이다. 이렇게 함으로 더 쉽게 웹 애플리케이션을 확장하고 유지, 보수를 할 수 있다.
(여기서는 JAVA Web 개발에 관한 MVC 패턴을 다룬다)
모델(Model)
모델(model)이란 어떠한 동작을 수행하는 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보여질지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public 함수로만 이루어진다. 몇몇의 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고 나머지 함수들은 상태를 수정하는 함수이다.
웹어플리케이션에서 모델(Model)은 데이터 영역으로 DAO(Data Access Object), DO(Data Object) 등으로 구분해 구현하기도 한다. 하이버네이트, 아이바티스와 같은 퍼시스턴스 프레임워크를 사용하기도 한다. EJB와 연동할 수 있으며 EJB 3.0의 POJO 기반의 퍼시스턴스 API도 있다.
뷰(View)
MVC에서 모델은 여러 개의 뷰(view)를가질 수 있다. 뷰는 모델에게 질의를 하여 모델로 부터 값을 가져와 사용자에게 보여준다.
웹어플리케이션에서 뷰(View)는 JSP를 기본으로 표현 언어, JSTL, 커스텀 태그 라이브러리 등을 함께 사용하며, 모듈화 된 사용자 인터페이스 모델인 JSF(Java Server Faces)도 이용할 수 있다.
컨트롤러(Controller)
MVC의 뷰는 여러 개의 컨트롤러(Controller)를 가지고 있다. 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다. 컨트롤러는 모델의 mutator 함수를 호출하여 상태를 바꾼다. 이 때 모델의 상태가 바뀌면 모델은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고 뷰는 거기에 맞게 사용자에게 모델의 상태를 보여 준다.
웹어플리케이션에서 컨트롤러(Controller)는 MVC 패턴의 중심이 되는 부분으로, 직접 구현하거나 구현된 솔루션을 이용할 수 있다. 대표적으로 스트러츠 프레임워크(struts Framework)나 스프링 프레임워크(Spring Framework)가 있다.
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
Android SDK 설치 (0) | 2008.12.14 |
---|---|
오랜만에 만져본 JAVA (2) | 2008.12.02 |
내가 보아야 할 Ruby 관련 책들 (2) | 2008.05.14 |
Ruby를 맛봅시다. (2) | 2008.04.30 |
10.Raw Socket (0) | 2008.04.29 |