본문 바로가기

ETC

MVC 모델이란

* 참조자료 : 위키백과(모델-뷰-컨트롤러)

 

모델-뷰-컨트롤러 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 모델, 뷰, 컨트롤러의 관계를 묘사하는 간단한 다이어그램. 주: 굵은 선은 직접적인 관계를, 점선은 간접적인 관계를 나타낸다(옵저버 패턴). 웹 애플리케이션��

ko.wikipedia.org

 

M. 모델(Model) - 데이터
모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를
보여 줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가/제거/수정할 수 있다.
그러나, 특정 MVC모델은 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어 오기도 한다.


어플리케이션이 "무엇"을 할 것인지를 정의하며, 내부 비즈니스 로직이나 데이터 접근을 위한 C#클래스들을 놓게된다.

특징은 public함수로만 이뤄져있으며, 쿼리에 대해 상태정보를 제공하고 나머지 함수들은 상태를 수정한다.

 

V. 뷰(View) - 텍스트, 체크박스 등 인터페이스
사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 받아온다.

뷰는 모델에게 질의(query)를 하여 모델로부터 값을 가져와 사용자에게 보여준다.

뷰는 화면에 "무엇인가를 보여주기 위한 역할"을 한다. 컨트롤러 하위에 종속되어, 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여준다.


C. 컨트롤러(Controller) - 로직
모델에 명령을 보냄으로써 모델의 상태를 변경.
컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시방법 변경

컨트롤러는 모델이 "어떻게" 처리할지를 알려주는 역할을 하는 것이고, 화면의 로직처리 부분이다. 

화면에서 사용자의 요청을 받아서 처리되는 부분을 구현하게 되며, 요청 내용을 분석해서 Model과 View에 업데이트 요청을 하게된다.

사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다.
컨트롤러는 모델의 mutator 함수를 호출하여 상태를 바꾼다. 이때 모델의 상태가 바뀌면
모델은 등록된 뷰에 자신의 상태가 바뀐것을 알리고 뷰는 거기에 맞게 모델의 상태를 보여준다.