불로구
안드로이드 스튜디오 - MVC 패턴이란? 본문
MVC 패턴
- Model, View, Controller의 약자
- 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 3가지로 구분한 패턴
Model
- 애플리케이션의 정보와 데이터
- DB, 상수, 변수등을 나타낸다.
- 위 정보들의 가공을 책임지는 컴포넌트
- 사용자가 편집하길 원하는 모든 데이터를 가진다
- View, Controller에 대해 어떤 정보도 알지 않아야 한다.
-> 데이터 변경 발생 시 모델에서 UI를 직접 조정가능하게 뷰를 참조하는 내부 속성값을 가지면 안된다.
- 변경 발생 시 처리방법을 구현해야 한다.
View
- 데이터 및 객체의 입출력 담당
- 사용자들이 볼 수 있는 화면
- 모델이 가지고 있는 정보를 따로 저장하면 안됨
- 모델이나 컨트롤러와 같이 다른 구성요소들을 알면 안된다.
Controller
- 데이터와 사용자 인터페이스 요소롤 연결하는 다리
- 사용자의 이벤트를 처리하는 부분
- 모델이나 뷰에 대해 알아야 한다
- 모델과 뷰의 변경을 알아야 한다.
동작과정
1. 컨트롤러가 사용자의 이벤트를 받는다.
2. 컨트롤러는 Model의 갱신이 필요한지 확인
3. 모델의 갱신이 필요할 경우 모델 갱신
4. 모델 또는 컨트롤러로 부터 갱신 필요 여부 이벤트 수신
5. UI갱신
6. 사용자에 표출
여기까지는 web의 기준이다.
Android의 기준으로는
1. 액티비티에서 사용자 이벤트 발생
2. Model로 부터 데이터 갱신이 필요한지 확인
3. Model로 부터 전달받은 데이터를 통해 View 갱신 여부 판단
4. View에서 UI 갱신 처리
button.setOnClickListener({
// 데이터 갱신 요청
// 모델에 접근해서 최신 데이터 요청
// 전달받은 데이터로 view 갱신
})
MVC의 장점
1. 개발 기간 단축
2. 간단한 프로젝트에는 효율이 좋다.
3. 코드 이해가 쉽다.
MVC의 단점
1. 하나의 Class에서 모든 것을 할 수 있기에 코드 양 증가
2. 복잡도의 증가 -> 설계의 중요성
3. 유지보수의 어려움
4. 모델과 뷰의 결합도가 높아진다.
'프로그래밍 > 코틀린 안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 - 프로젝트 구조 (0) | 2021.04.28 |
---|---|
안드로이드 스튜디오 - 4대 컴포넌트 (0) | 2021.04.27 |
안드로이드 - 내가보려고 다시쓰는 Kotlin 라이브데이터(LiveData) (0) | 2021.04.22 |
안드로이드 스튜디오 - dataBinding (0) | 2021.04.22 |
안드로이드 스튜디오 - Activity 와 Fragment간 데이터 주고 받기 (0) | 2021.04.21 |