728x90
안드로이드에는 다양한 아키텍처 구조가 존재한다.
오늘은 MVC 패턴에 대해서 공부해보려고 한다.
MVC는 안드로이드와 관계없이 프로그래밍 시 가장 널리 사용되는 구조 중 하나이며 간단하게 Model, View, Control의 약자입니다.
MVC 구조에서의 입력은 모두 Control에서 발생하게 되며 관리되게 되는 구조입니다.
이벤트가 발생한 Control에 의해 각 모듈의 정의와 View의 사용 용도가 달라지게 됩니다.
MVC 구조에서는 입력을 모두 Control에서 발생하게 되며 관리하게 되는 구조이다.
이벤트가 발생한 Control에 의해 각 모듈의 정의와 View의 사용용도가 달라지게 된다.
Model, View, Control의 특징을 정리해보자
- Model
- 데이터를 가지며 애플리케이션에서 사용되는 데이터와 그 데이터를 처리함.
- View 또는 Control에 묶이지 않아 재사용 가능함.
- View
- 사용자에게 보일 화면을 표현.
- 앱 및 UI와의 상호작용에서 컨트롤러와 통신함.
- 유저가 어떤 입력(Action)을 하든 View는 무엇을 해야 할지 모름
- Control
- 사용자로부터 입력을 받고 이 입력을 모델에 의해 View 정의를 하게 됨.
- 모델의 데이터 변화에 따라 뷰를 선택함.
MVC의 장점
- Model 과 View가 분리된다.
- Model의 비종속성으로 재사용성이 가능해진다.
- 구현하기가 쉽다. + 개발기간이 짧아진다. -> 어렵게 생각 할 것 없이 안드로이드 액티비티에서 모든걸 동작하게 처리만 잘 해준다면 개발이 쉽고 개발기간도 짧아진다.
- 구조를 파악하기가 쉽다.
- 유닛테스트에서 Model만 테스트하면 된다.
MVC의 단점
- Model과 View사이에 의존성이 발생한다. 이로인해 앱자체가 커지고 로직이 복잡해져서 유지보수가 힘들수도 있다. (MVP 패턴의 등장 배경이다.)
- 시간이 지날수록 컨트롤러에 많은 코드가 쌓여 코드가 비대화하여 문제 발생 가능
- Controller가 안드로이드 API에 깊게 종속되므로 유닛 테스트가 어려움.
728x90
'Android > Study' 카테고리의 다른 글
[Android] MVVM 패턴 이란? (2) | 2023.01.01 |
---|---|
[Android] MVP 패턴이란? (0) | 2023.01.01 |
[Android] Notification(노티피케이션) (0) | 2022.10.18 |
[Android] CustomView 추가 실습 (0) | 2022.09.28 |
[Android] CustomView(커스텀 뷰) (0) | 2022.09.07 |