본문 바로가기
Android Studio/Android

안드로이드 MVC 패턴 (가장 기본적인 패턴)

by ksb0511 2022. 3. 24.

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

댓글