MVC ( Model-View-Controller)
- 개발 시 3가지 형태로 역할을 나누어 개발하는 방법론
- 비즈니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로 영향없이 개발하기 수월하다는 장점
Model
- "무엇"을 할 것인지를 정의 내부 비즈니스 로직을 처리하기 위한 역할
- 처리되는 알고리즘, DB와 상호작용(CRUD Create Read Update Delete)
Controller
- "어떻게" 처리할 지를 알려주는 역할 , 모바일에서 화면의 로직처리 부분입니다. 화면에서 사용자의 요청을 받아서 처리되는 부분을 구현하게 되며, 요청 내용을 분석해서 Model과 View에 업데이트 요청을 하게 됩니다.
- 사용자로 부터의 입력을 받고 Model 또는 View중개인 역할
View
- 화면에 무엇인가를 보여주기위한 역할, 컨트롤러 하위에 종속되어, 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여줌
- 최종 사용자에게 무엇을 화면(UI)으로 보여줌
MVC의 한계
- MVC에서 View는 Controller에 연결되어 화면을 구성하는 단위요소이므로 다수의 View들을 가질 수 있다.
- Model은 Controller를 통해서 View와 연결되어지지만, 어떻게 Controller를 통해서 하나의 View에 연결될 수 있는 Model도 여러개가 될 수 있다.
- 이러한 문제점을 해결하기 위해서 다양한 패턴을 파생시킴.