MVC패턴은 안드로이드 디자인 패턴 MVP, MVVM의 기초 뼈대가 되는 디자인 패턴이다.
내가 디자인 패턴을 잘 모르는 사람이다싶어도 MVC 패턴대로 개발하고 있을 확률이 높을만큼 흔하고 쉽다.
Model View Controller 의 구조이다.
이미지에서 보다시피 딱 봐도 Controller에서 모든 게 이루어진다고 생각하면 된다.
Model ) 데이터의 정보가 담겨 있는 곳이다. 예를 들면 data class와 같은 데이터 객체이다.
data class House{
val area : String,
val size : Int,
val type : String
}
이런 구조가 있을 것 같다.
참고로 모델은 어디에 의존하지 않기 때문에 재사용이 가능하다.
다음으로 View
View ) xml 레이아웃이라 생각하면 된다.
흔히 안드로이드는 대부분 compose 형식의 개발이 아닌 이상 xml파일과 Activity.kt(or java) 파일로 나누어 구현을 한다.
그러니까 자동으로 view는 분리된 셈
사용자에게 보여지는 UI를 나타내는 부분
마지막으로 Cotroller
Controller ) Activity/Fragment 파일을 말한다.
뷰와 모델을 참조해서 제어하는 변수/함수를 구성하는 파일이다. 사용자의 조작에 따라 뷰를 갱신하고 화면을 이동하고, 모델을 제어하기도 한다.
이 밑줄 친 setContentView에 activity_main을 끌어온 것이 바로 뷰를 참조하는 것.
모델을 끌어오는 것은 선언해서 가져오기만 하면 되는 거니까 아마 많이 사용해 본 경험이 있을 것으로 생각된다.
이것이 MVC 디자인 패턴이다.
마지막으로 장점과 단점으로 마무리를 하자면... 일단 먼저 한마디로 표현하면 장점은 쉽다는 것, 단점은 마냥 효율적이진 않다는 점이다.
<장점>
- 직관적으로 알아보기 쉽다. (모델, 뷰, 컨트롤러 모두 한눈에 알아볼 수 있음)
- 구현하기 쉽고 단순해서 역시 기본적인 디자인 패턴으로는 최고다.
- 모델과 뷰가 분리되어 있기때문에 모델 재활용이 가능하다.
<단점>
- 모델과 뷰 사이에 의존성이 아예 없지는 않다. 모델 값이 바뀌면 뷰 업데이트를 개발자가 직접 처리해야 한다.
- 로직이 복잡해지면 유지보수가 힘들어진다.
- 모든 처리가 Controller에서 수행되므로 코드가 이 부분에 집중적으로 쌓여서 나중에 알아보기 힘들 수 있다.
즉, 규모가 큰 프로젝트일수록 적합한 디자인 패턴이 아니다. 규모가 커질수록 MVVM을 더 많이 쓴다고 한다.
Model View ViewModel의 구조로 훨씬 효율적이다.
다음 포스팅으로 MVVM을 공부해서 정리해야겠다.
'Android Studio > Android' 카테고리의 다른 글
Android Compose UI 기초 (0) | 2023.08.22 |
---|---|
Android Studio 팝업창 만들기 (0) | 2020.07.22 |
Android Studio setClipToOutLine() in RecyclerView (0) | 2020.04.10 |
Android Studio Room Database (0) | 2020.04.02 |
Android MVVM Architecture (0) | 2020.03.27 |
댓글