2008. 7. 9. 13:42
사용자 삽입 이미지
MVC모델에 관해서 한 번쯤 들어 보신 분들이 많을 것 같습니다. 사실 MVC 모델이라는 것은 난데없이 하늘에서 뚝 떨어진 기술이 아니라 꽤 오래된 기술중에 하나 입니다. MVC모델이 제일 처음 나타난 것은 언어학 개론에서나 들어 본듯한 Small talk라는 언어에서 부터 였습니다.  하나의 프로그래밍 모델을 Model, View, Controller로 구별해서 코딩을 하면 전체적인 복잡성이 해소되고 유지 보수 및 테스트에 있어서 탁월한 효과를 나타 낼 것이라는 생각에서 시작한 것 같습니다.
 다시 말해서 Software 산업에서 일반화된 기술중에 하나이며 오랫 시간 동안을 거치면서 여러 언어들로 구현되고 입증된 패턴중에 하나라고 말 할 수 있습니다.

MVC 모델에서 이야기 하고 있는 Model, View, Controller의 역할을 다음과 같이 정의할 수 있습니다.

- Model: 일반적으로 해당되는 Application의 주요 데이터 모델을 이야기 한다. 특정 사용자 정의 클래스가 될 수도 있고 혹은 Entity가 될 수도 있다.
-View: 직접 데이터를 노출하기 위한 부분으로 이 부분을 통해서 실제 데이터를 노출하고 사용자와 Interface를 할 수 있게 하는 실질적인 UI부분을 말한다.
-Controller: Model과 View를 연결하거나 혹은 데이터를 가지고 와서 Model에 채워 넣거나 혹은 사용자가 입력한 데이터를 실제로 반영하는 등 실질적인 로직이 모두 포함되어 있는 곳이다.

사실 MVC의 가장 큰 테마는 UI와 논리 코드를 구분하는데 있습니다. UI 와 논리적인 코드가 함께 혼용되어 있을 경우에 유지보수와 단위 테스트가 매우 어렵고 난해해 지는 문제가 있습니다. MVC는 이와 관련한 문제를 해결할 수 있는 적절한 해법을 제공해주고 있는 점에서 높이 평가되고 있습니다.
 웹과 관련된 개발환경에서 MVC 모델이 각광받고 있는 이유는 웹이라는 환경이 온 갖 기술이 범벅되어 있기 때문인 이유가 가장 클 것입니다. 기본적으로 웹과 관련된 개발을 하기 위해서는 HTML과 Java Script는 물론이고 기반되는 CGI, ASP.NET(or ASP), PHP, JSP와 같은 웹 프로그래밍 기술, 그리고 N-Tier 구조나 Database에 이르기 까지 어느 하나 만만한 것이 없습니다. 그걸 패턴과 모델로 잘 구별해서 정리할 수 있는 MVC는 처음부터 웹을 위해서 설계해 놓은 것 같이 깔끔한 구조가 웹과 잘 맞아 떨어집니다.

 ASP.NET에서도  MVC모델을 사용할 수 없었던 것은 아니지만 공식적으로 ASP.NET에서 MVC를 지원하는 것은 이번이 처음입니다. 앞으로 ASP.NET과 관련된 강좌를 몇 회 진행할 예정입니다. ^^