🍎

MVC Pattern과 MVP, MVVM Pattern

#디자인패턴

MVC 패턴은 Model, View, Controller로 구성된 패턴이다. 그렇다면 MVC는 각각 무엇을 말할까?

  • Model: 모델(Model)은 애플리케이션이 다루는 데이터를 담당한다. 데이터를 표현하고 필요에 따라 비즈니스 로직을 수행한다.
  • View: 뷰(View)는 모델이나 컨트롤러와 같은 다른 구성과 상관 없이 사용자에 어떻게 표현할지 나태낸다.
  • Controller: 컨트롤러(Controller)는 사용자의 요청에 따라 모델과 뷰 사이에서의 흐름을 제어한다.

이렇게 3가지의 구성으로 나누는 이유는 관심사 분리를 위해서다. 각각의 구성은 자신이 맡은 역할과 책임만 담당하고 자신과 다른 구성에 대해 관여하지 않는다. 관심사 분리를 하지 않은 프로그램은 어떤 하나의 수정이 다른 부분까지 영향을 끼칠 수 있기 때문에 유지보수하기가 어렵지만, 관심사 분리를 통해 하나의 수정이 다른 구성까지 전파되지 않도록 한다.

MVP(Model-View-Presenter) 패턴과 MVVM(Model-View-ViewModel) 패턴은 다른 글에서 더 간단하고 명확하게 설명하고 있다. 해당 글을 참고하자.

Reference