728x90
반응형
지금부터 안드로이드에서 주로 사용하는 디자인 패턴에 대해서 알아보도록 하자.
알아보기에 앞서 과연 디자인 패턴이란 것은 과연 무엇일까?
✅ 디자인 패턴(Design Pattern)이란?
- 디자인 패턴이란 소프트웨어의 디자인 과정에서 자주 발생하는 문제들에 대한 일종의 해결책이라고 할 수 있다.
- 디자인 패턴은 코드에서 반복되는 디자인적 문제들을 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙이고, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어 정리한 것이다.
- 알고리즘처럼 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식을 설명해 준다.
✅ Android에서 디자인 패턴이 중요한 이유는 뭘까?
- 위에서 읽은 것처럼 디자인 패턴은 코드에서 나타나는 디자인적 문제들을 해결하는데 도움을 줄 수 있다.
- 안드로이드의 경우 예전에는 간단한 어플만 만들면 되었기 때문에 이러한 패턴이 중요하지 않았을 수 있다.
- 하지만 시대가 발전함에 따라 다양한 어플들이 등장하고, 다양한 기능이 탑재되면서 로직이 복잡해지고, 복잡한 기획이 요구되어진다.
- 이러한 이유로 디자인 패턴 없이 개발을 하게 된다면, 변경이 일어날 때마다 화면을 구성하고 있는 코드와 로직들이 매번 수정해야 할 것이다.
- 이는 결국 유지보수에 대한 어려움으로 이어지기 때문에 상황에 적절한 디자인 패턴을 적용하는 것이 중요하다.
- 안드로이드의 경우 Model과 View 간의 관계를 어떻게 해결해야하는지에 따라 여러 패턴으로 나뉘게 된다.
- 따라서 우리는 지금부터 MVC, MVP, MVVM, MVI 패턴에 대해 알아볼 것이며 먼저 MVC 패턴에 대해 알아보자.
✅ MVC 패턴이란?
- 안드로이드와는 별개로 MVC 패턴은 가장 널리 사용되는 패턴 중 하나이다.
- MVC는 Model, View, Control의 약자로 각각의 기능은 다음과 같다.
- Model
- 데이터를 관리
- 비즈니스 로직 수행
- View
- 유저에게 보일 화면을 표현
- 어떠한 데이터나 로직이 있으면 안됨
- Controller
- Model과 View를 연결
- 앱을 묶어주는 접착제의 역할
- 유저의 입력을 받고 처리
- Model
- MVC 구조에서의 입력은 Controller에서 발생 및 관리하게 된다.
- 이벤트가 발생한 Control에 의해 각 모듈의 정의와 View의 사용 용도가 달라지게 된다.
다음은 MVC 구조를 도식화한 것으로 그림을 통해 전체적인 데이터 흐름 등을 이해할 수 있다.
✅ MVC 패턴의 장/단점
- MVC 패턴의 장점
- 디자인 패턴 중 가장 구현하기 슆고 단순하다.
- 안드로이드의 경우 개발기간이 짧다.
- Model과 View가 분리된다.
- Model의 비종속성으로 재상용이 가능하다.
- 유닛테스트에서 View는 테스트할 부분이 없기 때문에 Model만 쉽게 테스트 가능하다.
- MVC 패턴의 단점
- Controller에 많은 코드가 생긴다.
- 유지보수가 어렵다.
- View와 Model의 결합도가 상승한다.
- 테스트코드 작성이 어렵다.
- 스파게티 코드가 될 가능성이 높다.
- 현재 MVC 패턴은 많이 사용하지는 않지만 규모가 작고 빠르게 어플을 만들어야 하는 경우 사용되고 있으며, MVC 패턴 말고도 자신의 프로젝트에 맞는 디자인 패턴에 맞춰 개발을 진행하면 된다.
이상 훈바~
참고 : https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4
728x90
반응형
'Studying > Android' 카테고리의 다른 글
[Android] 안드로이드 디자인 패턴(2) - MVP 패턴 (0) | 2023.08.02 |
---|---|
[Android] 안드로이드 액티비티 생명주기(Activity Lifecycle) (0) | 2023.05.19 |
[Android] 안드로이드 스튜디오 Room을 사용하여 로컬 데이터베이스에 데이터 저장하기 (0) | 2023.05.18 |
[Android] Android 기본 요소 - 4대 컴포넌트 (0) | 2023.05.15 |