디자인 패턴 중 하나인 MVC 패턴은 Model, View, Controller의 줄임말로 어플리케이션을 구성할 때 그 구성요소를 세 가지 역할로 구분한 패턴을 의미한다.
사용자 인터페이스로부터 비즈니스 로직을 분리하여 서로 영향 없이 쉽게 고칠 수 있는 설계가 가능하다.
모든 사용자의 요청은 controller로 가고, controller에서는 어떻게 처리할 것인지 결정한 뒤 모델에 요청을 한다.(데이터베이스 담당) 업데이트된 요소를 view로 보여준다.
모델(Model)과 뷰(View) 사이에서 브릿지 역할을 수행한다.
앱의 사용자로부터 입력에 대한 응답으로 모델 및 뷰를 업데이트하는 로직을 포함하고 있다.
사용자의 요청은 모두 컨트롤러를 통해서 진행되어야 한다.
컨트롤러로 들어온 요청은 어떻게 처리할지 결정하여 모델로 요청을 전달한다.
데이터를 보여주는 화면 자체의 영역을 뜻함
사용자 인터페이스(ui) 요소들이 여기에 포함되며, 데이터를 각 요소에 배치함
뷰에서는 별도의 데이터를 보관하지 않음
어플리케이션의 역할을 세 구간으로 나누어 설계함으로써 서로 간의 의존성이 낮아짐
각 영역이 독립적으로 구성되어 개발자 간 분업 및 협업이 원활해짐
한 영역을 업데이트 하더라도 다른 곳에 영향을 주지 않음
프로젝트의 역할이 거대해질수록 컨트롤러의 사이즈가 커지는 경우가 발생할 수 있다.