개발 영역을 모델(Model), 뷰(View), 컨트롤러(Controller) 세 영역으로 나누고 각각의 의존을 최소화
모델 (Model) : data를 저장하거나, 필요한 형태로 가공하는 역할 수행
뷰 (View) : 사용자에게 응답하기 위해서 화면을 작성하는 역할 수행
컨트롤러 (Controller) : 뷰와 모델 사이의 실행 흐름을 제어하는 역할을 수행