1. MVC란?
Model, View, Controller의 약자로 데이터 처리 부분과 화면 부분을 분리시켜 서로 영향이 없도록 개발하는 디자인 패턴
- Model
실제 사용되는 데이터들을 담당
- View
사용자에게 보여지는 화면을 담당
- Controller
사용자로부터 입력을 받고 변경이 필요하다면 Model의 값을 변경(Model의 값이 변경되면 Model이 View에 반영)
웹에서는 View와 Controller가 완전히 분리되어 있지만 Android에서는 Activity or Fragment에 View와 Controller가 모두 포함됨
setContentView(R.layout.activity_main) -> View
button.setOnClickListener() -> Controller
2. MVC 흐름(Android기준)
3. MVC 장단점
장점
- 코드 재사용성 용이
- 비교적? 단순한 구조
단점
- 코드가 Controller에 집중되는 경향이 있음, 특히 안드로이드 같은 경우 View와 Controller가 Activity or Fragment에 같이 있기 때문에 코드가 더욱 집중되고 모듈화가 잘 안되는 경우 발생
- 대부분의 코드를 View/Controller에서 Model을 직접 호출하기 때문에 의존성이 높음