웹 어플리케이션의 구조를 Model(모델), View(뷰), Controller(컨트롤러)로 분리하는 패턴
- Model(모델) : 실제 로직을 구현하는 부분. 일반적으로 데이터베이스로부터 데이터를 가져와서 담아두거나, 데이터 베이스로 저장하는 역할
- View (뷰) : 사용자 인터페이스, 즉, UI부분. 화면 출력과 관계된 로직을 포함할 수는 있지만, 사용자 입력이나 인터랙션, 업무와 관계된 로직은 View가 가져서는 안된다. 오로지 화면출력!
- Controller (컨트롤러) : mvc에서 가장 핵심이 되는 패턴. 사용자의 인터렉션을 처리하고, 모델을 조작하며, 최종 UI로 출력할 수 있는 뷰를 담당한다.
이를 사용하는 이유,
- 각 요소 간에 연결을 보다 느슨하게 구성할 수가 있게 되어, 복잡한 애플리케이션을 관리하기에 용이하다.
- 병행 개발(동시에 각각의 컴포넌트를 개발하는 방식)이 가능하다.
- 이러한 분리로 인하여, 기존의 ASP.NET 애플리케이션보다 훨씬 테스트하기가 용이하다.
- 기존의 ASP.NET을 테스트 하기 위해서는 사용자 입력에 따라 반드시 웹 서버가 요구된다는 제약이 있었지만, MVC 패턴을 적용하면 개별적인 컴포넌트를 독립적으로 테스트 할 수 있게 된다. ?? (응? 뭔소릴가.)
|
위 액션 결과는 ActionResult 클래스를 상속한다. 대부분의 경우 ViewResult를 반환한다.
웹 폼 기반의 웹 애플리케이션의 장점
·
각각의
페이지
단위로
기능을
작성하는 Page Controller 패턴을
사용한다.
: 개별
화면
단위
중심적인
업무를
개발하기에
매우
적합하다.
·
이벤트
중심의
프로그래밍
모델을
제공한다.
: 다양한
이벤트를
제공하는
수
많은
서버
컨트롤이
제공되기에, 이벤트
중심적인
개발을
통해
업무
화면을
직관적으로
작성할
수
있다.
· 뷰상태(ViewState)와 서버 기반의 폼을 사용하기에, 상태 정보를 관리하기에 용이하다.
MVC 기반의 웹 애플리케이션의 장점
·
모든
요청을
단일
컨트롤러를
통해서
처리하는 Front Controller 패턴을
사용한다
: 모든
요청을
단일
컨트롤러를
통해
처리하므로, 라우팅(routing) 하부구조를
지원하는
애플리케이션을
개발할
수
있다.
· 애플리케이션을 3개의 논리 모듈로 분리하기에 애플리케이션의 복잡성을 관리하기 쉽게 한다.
·
뷰상태나
서버
기반의
폼을
사용하지
않는다
: 개발자가
애플리케이션의
동작방식을
전체적으로
제어할
수
있으므로
세밀하게
애플리케이션을
조작하고
싶은
이들에게
적합하다. 단, 이러한
기능(상태정보
관리)이
필요할
경우
추가적인
작업이
요구된다.
출처 : TAEYO.NET ASP.NET 강좌 웹 폼 기반의 개발과 MVC 기반의 개발 http://www.taeyo.net/Columns/View.aspx?SEQ=214&PSEQ=35&IDX=0
'Backend > .NET Framework' 카테고리의 다른 글
ASP.NET MVC 만들면서 배우기- 배우자(1) - view (59) | 2013.10.07 |
---|---|
MVC 시작하기(1) (60) | 2013.10.07 |
Substring (61) | 2013.08.29 |
C# 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. (57) | 2013.08.09 |
c# split (59) | 2013.07.15 |