MVC Pattern

업데이트:

MVC Pattern 이란

MVC 패턴이 무엇인지 알아보자.

MVC Pattern이란 Model-View-Controller의 약자로 MVC Pattern은 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴 중 하나이다.

(참고: 디자인 패턴이란, 소프트웨어의 개발 방법을 공식화 한 것이다. 소수의 뛰어난 엔지니어가 해결한 문제를 다수의 엔지니어들이 처리 할 수 있도록 한 규칙이면서, 구현자들 간의 커뮤니케이션의 효율성을 높이는 기법이다. 위키피디아 - 디자인 패턴)

MVC는 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.


사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 데이터를 토대로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달한다.

참고:opentutorials

웹에서는 사용자가 웹 사이트에 접속 하고 Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출하게 된다. 그 후 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴하고 Controller는 Model이 리턴한 결과를 View에 반영한다. 데이터가 반영된 View는 사용자에게 보여지게 된다.


각각의 역할

모델, Model

데이터를 가진 객체를 모델이라 지칭한다. 애플리케이션의 정보, 데이터를 나타낸다. 데이터베이스, 처음에 정의하는 상수, 초기화 값, 변수 등을 뜻한다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말한다.

이러한 모델은 다음과 같은 규칙을 가지고 있다.

1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.

2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.

3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.

뷰, View

input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다. 데이터를 기반으로 사용자들이 볼 수 있는 화면입니다.

뷰에서는 다음과 같은 규칙들이 있습니다.

1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.

2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.

뷰는 데이터를 받으면 화면에 표시해주는 역할만 가진다.

3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

컨트롤러, Controller

데이터와 사용자 인터페이스 요소들을 잇는 다리 역할을 한다. 주로 비즈니스 로직이 이 컨트롤러에서 구현되어 있다. 사용자가 데이터를 클릭하고, 수정하는 것에 대한 “이벤트”들을 처리하는 부분을 뜻한다.

컨트롤러는 다음과 규칙이 있다.

1. 모델이나 뷰에 대해서 알고 있어야 한다.

모델이나 뷰는 서로의 존재를 모르고, 변경을 외부로 알리고, 수신하는 방법만 가지고 있는데 이를 컨트롤러가 중재하기 위해 모델과 그에 관련된 뷰에 대해서 알고 있어야 한다.

2. 모델이나 뷰의 변경을 모니터링 해야한다.


왜 MVC패턴을 사용해야 하나

사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 됩니다. 공장에서도 하나의 역할들만 담당을 해서 처리를 해서 효율적이게 됩니다. 여기서도 마찬가지입니다.

서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되는 것입니다. 그러기 위한 MVC패턴입니다.

[참고 사이트]

opentutorials - MVC 디자인 패턴

snippt