model, view, viewModel

MVC → MVP → MVVM

Controller가 너무나 많은 역할을 한다고 느꼈다.

레이아웃 코드들,

유저 입력 프로세싱,

비지니스 로직,

데이터 변환,

화면 전환,

생명주기,

콜백처리(델리게이트 등),

네트워크 통신...

Controller 혼자 몸집이 비약적으로 커지게 된다. (Massive View Controller)

이를 해결하기 위해, "Controller의 역할을 덜어주자!"고 만들어진게 MVP 이다.