White Whale Studio

[MVC Pattern] 개념 정리 본문

IT Engineering/C#.net

[MVC Pattern] 개념 정리

glorymind 2016. 6. 21. 11:13
반응형

MVC 패턴은 소프트웨어 공학에서 사용되는 아키텍쳐 페턴입니다.


Model - View - Controller의 약자이며

잘 사용하는 경우 사용자 인터페이스와 로직을 분리해서 유지보수가 쉽도록 구현할 수 있다고 합니다.


WPF의 경우 MVVM (Model - View - ViewModel) 의 패턴을 가지는데 저는 뭣도 모르고 그냥 개발했었네요;;


MVC 패턴을 활용하여 Winform의 예제까지 살펴볼 예정입니다.


우선 개념적으로 MVC 패턴에서 각 요소들을 알아보겠습니다.


Model : 뷰와 컨트롤러 사이에서 전달되는 데이터만을 나타나는 단순한 뷰 모델(View Model)일 수도 있고, 데이터 및 데이터에 대한 작업, 규칙을 가지고 있는 도메인 모델(Domain Model)일 수도 있습니다. 데이터 변경에 따른 내용을 View를 통해 업데이트합니다.


View : 뷰는 사용자 눈에 보여지는 부분입니다. 시각적인 디자인, 사용자 인터페이스라고 보시면됩니다. 

사용자의 요청에 따른 결과물이 표현되는 부분입니다.  화면에 표출되는 방식에 대한 로직이 들어가야하며, Model에 의해 업데이트 됩니다.

업데이트 되는 방식은 다음과 같습니다.

   - Model을 직접 사용하여 업데이트하거나

   - Model이 갱신 정보를 View에게 알려주는 방식(Observer Interface)


Controller : 컨트롤러는 뷰와 모델을 연결시켜주며, 사용자의 입력을 받아 모델을 조작하는 등 데이터 흐름을 제어하는 역할을 합니다. 

또한 사용자에게 보여줄 적절한 뷰를 선택하기도합니다. 직접 View를 업데이트하지는 않습니다.


MVC에 관한 간략한 상호관계도는 아래의 그림들을 참조하시기 바랍니다. 

MVC 패턴이 출현한 것은 View와 Model 사이에 Controller 라는 중간 과정을 두어 의존성을 분리하기 위해서 입니다.

그렇지만 그림에서 보시는 것과 같이 모델과 뷰의 의존성을 완전히 분리할 수는 없습니다.

이 때문에 MVP, MVVM등과 같은 변형된 아키텍쳐 패턴이 등장하였습니다.

추후에 다른 아키텍쳐 패턴에 대한 내용도 기회가 된다면 다루어 보겠습니다.



그림에 따라 조금씩 상이할 수는 있지만 대체적으로 유사한 형태를 띄고 있습니다.





반응형
Comments