Model-View-Controller 어플리케이션을 세가지 역할로 구분한 개발 방법론 사용자가 Controller 를 조작하면 Controller 는 Model 을 통해 데이터를 가져오고 그 데이터를 바탕으로 View 를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다. 사용자 인터페이스로부터 비즈니스 로직을 분리하여 어플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 어플리케이션을 만들 수 있다.