MVC패턴이란?

 

MVC패턴은 Model, View, Controller의 약어로, 프로그램을 개발하는 중 발생했던 문제를 정리하여 상황에 따라 간편하게 사용하여 쓸 수 있는 것을 정리하여 특정한 규약을 통해 쉽게 쓸 수 있는 형태로 만든 디자인패턴 중 하나. 

비지니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로 영향없이 개발 하기 수월하다는 장점이 있다.

예를 들어 그냥 jQuery를 이용한다면 $('#lucid')로 DOM을 선택할 수 있는 것을 그냥 순수Javascript를 사용한다면 document.getElementsByid('lucid')로 길게 써가며 찾아야 하겠죠. 예를 들어 어떠한 data를 만들고 이 data를 수정할 로직을 짠다. 그리고 그 data를 보여주는 부분을 만들 때 이거 하나하나가 로직이 분리가 안되있고 한꺼번에 정의가 되어있다면? 나중에 유지보수하기가 힘들겁니다. 그걸 "돕기" 위해 디자인패턴이라는게 나오는 것이며 이렇듯 "좀 더 쉽고 편리하게" 사용할 수 있게 만든 특정한 방법들을 디자인 패턴이라고 합니다. 그 디자인 패턴이라는 것은 스트래티지 패턴, 옵저버 패턴 등등 정말 여러가지가 있고 그 중에 하나가 바로 MVC패턴입니다.

 


1. Model이란 ?

 

규칙 1: 사용자가 편집하기 원하는 모든 데이터가 담겨있어야 한다. 

규칙 2 : view나 controller에 대해서 어떤 정보도 알지 말아야 한다. (UI를 직접조정할 수 없다는 의미) 

규칙 3 : 데이터에 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다

규칙 4: 재상요이 가능해야 하며 다른 인터페이스에서도 변하지 않아야 한다. 

 


2. Controller란 ? 

Model내의 [Data]와 사용자의 인터페이스[View] 를 잇는 매개역할을 합니다.

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

규칙 2 : 모델이나 뷰의 변경을 모니터링 해야 한다 (모델이나 뷰의 변경통지를 받으면 이를 해석하여 

각각의 구성요소에 통지를 해야 한다. )

 

 


3. view란 ?

 input텍스트, 체크박스 항목과 같은 사용자의 인터페이스영역입니다. 사용자가 데이터를 입력하거나, 요청한

데이터를 출력해주는 역할을 담당합니다.

규칙 1  : 모델이 가지고 있는 임의의 정보를 화면에 노출해서는 안된다. 

규칙 2 : 모델이나 컨트롤러와 같이 다른 구성요소들을 알아선 안된다. 

자신을 제외하고는 다른 요소의 참조와 동작요소를 알아선안된다. 

 MVC 패턴을 왜 사용할까?

View, Controller, Model이 각각 분리되어 자신의 역할에 집중할 수 있기 때문에 

역할을 나누어 프로그램을 만들게 된다면 

유지보수성, 확장성, 유연성이 증가하기 때문에 이를 위해 사용한다. 

 

[출처 : https://m.blog.naver.com/jhc9639/220967034588]  

+ Recent posts