오늘은 Software Design Pattern중에서 Architectural Pattern의 하나인 MVC패턴에 대하여 포스팅을 하겠습니다.
1. MVC란??
MVC패턴은 Model, View, Controller의 약자입니다.
Model은 모든 데이터의 상태와 로직을 처리합니다.
View는 모델이 가진 데이터를 표현하는 방법을 제공합니다.
Controller는 사용자로부터 받은 정보를 모델에게 상태 변경 요청하고 필요에 따라 뷰의 상태 변경을 요청합니다.
웹 어플리케이션에 MVC 패턴을 적용시켜보자면,
위와 같은 그림으로 설명 할 수 있습니다.
2. MVC의 장점?
>> 유연하고 확장하기 쉽다
View와 Model간의 간섭을 피하고 Controller가 중간 관리를 하는 역할을 하여 간접소통을 통해 좀더 유연한 구조를 설계할 수 있는것이 MVC의 가장 큰 장점입니다.
3. MVC의 단점?
>> 복잡한 구조로 보일 수있다.
>> Model과 View의 완벽한 분리가 어렵다.
기본기능 설계를 위해 클래스들이 많이 필요하기 때문에 복잡할 수 있습니다. 이것은 속도가 중요한 프로그램에서는 권장 되지 않을 수 있습니다. 또한 설계시간이 오래 걸리고 숙련된 개발자가 필요합니다.
가장 큰 문제점은 Model과 View의 의존성이 완벽히 분리 할 수 없기 때문에 패턴이 모호해질 수 있고 변형이 올 수 있습니다.
4. 대안방안
Model과 View의 완벽한 분리가 이루어질 수 있으면서 MVC의 장점을 갖고있는 MVP(Model, View Interface, Presenter)라는 패턴을 사용 하면 됩니다.
MVP 패턴은 다음번 포스팅에서 다뤄보겠습니다.
Reference:
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
http://bomb0730.tistory.com/19
http://0zine.tistory.com/57
http://lefigaro.tistory.com/39
'Newbie's Log' 카테고리의 다른 글
Scala Tutorial part 2 (0) | 2014.08.08 |
---|---|
Scala Tutorial part 1 (0) | 2014.08.07 |
AngularJS Tutorial (0) | 2014.07.29 |
TDD를 위한 Library: Toast - Unit Testing for CodeIgniter (0) | 2014.06.22 |
Apache VirtualHost에 대해 알아보자 (0) | 2014.06.19 |