Model-View-Controller로 애플리케이션의 역할을 구분한 개발 방법론.
유저가 controller를 조작하면 controller는 model을 통해 데이터를 가져오고, 그 데이터를 바탕으로 view를 통해 시각적 표현을 제어하여 사용자에게 전달한다.
데이터를 가진 객체.
데이터는 내부 상태에 대한 정보나 모델을 표현하는 이름 속성으로 가질 수 있다.
model의 상태 변화가 있을 때 controller와 view에 이를 통보한다.
View는 input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 가지고 있는 컨테이너입니다. 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어온다.
결과물을 생성하기 위해 model로부터 정보를 불러온다.
유저가 접근한 url에 따라 유저의 요청사항을 파악한 후, 그에 맞는 model을 요청하고, 데이터를 view에 반영해서 사용자에게 알려준다.
즉, event를 처리하는 부분이다.
model에 명령을 보내서 view의 상태를 변경할 수 있다.
controller가 관련된 model에 명령을 보내서 view의 표시 방법을 바꿀 수 있다.
1번에 비하면 2번이 유지보수가 더 편리하고 코드의 중복도 적어진다.