1 minute read

MVC

: MVC(Model View Controller)는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴을 말한다.

mvc

MVC 패턴은 다음과 같이 모델, 뷰, 컨트롤러 세 부분으로 나뉜다.


  • 모델(Model) : 함축된 데이터

모델은 내부 비지니스 로직을 처리하기 위한 역할을 한다. 즉, 애플리케이션이 무엇을 할 것인지를 정의하는 애플리케이션의 주춧돌이라고 할 수 있다.

조금 더 자세히 말하면 뷰와 컨트롤러는 모델에 의존하지만 모델은 화면이나 컨트롤러에 독립적이다. 모델은 데이터와 데이터가 동작하는 방식을 제공한다. 따라서 모델은 프로그램 데이터의 무결성을 유지하는 책임을 진다.

  • 뷰(View) : 데이터의 표현

뷰는 컨트롤러 하위에 종속되어 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여준다. 즉, 화면에 무엇인가를 보여주기 위한 역할을 한다.

뷰는 복잡한 로직이 포함되어서는 안된다. 단순 시간화를 표현하기 때문이다. 뷰에는 HTML, XML 등이 포함된다.

  • 컨트롤러(Controller) : 모델과 뷰의 연결고리

컨트롤러는 모델이 어떻게 처리할지를 알려주는 역할을 한다. 즉, 데이터를 받고 시스템의 다른 부분에 전달한다. 따라서 시스템 요소의 연결고리가 된다.


동작

MVC 패턴의 동작순서는 다음과 같다.

  1. 사용자의 Action은 Controller에 들어온다.
  2. Controller는 사용자의 action을 확인하고 Model을 업데이트 한다.
  3. controller는 model을 나타내 줄 View를 선택한다.
  4. View는 Model을 이용해 화면에 랜더링 한다.


MVC 장단점

모델, 뷰, 컨트롤러 각각 담당하는 역할을 분리시켜 개발의 효율성을 높이고, 개발 완료 후 유지보수성과 확장성을 보장한다.

하지만, Model과 View가 서로에 대한 정보를 가지고 있지 않고 독립적이라고는 하지만, 다수의 Model과 해당하는 다수의 View가 하나의 Controller를 통해 소통을 이루고 있기 때문에 Model과 Voew의 의존성이 완전히 분리될 수 없다. 따라서 Controller 하나에 다수의 Modelrhk View가 복잡하게 연결되는 상황이 발생할 수 있다.

Updated: