본문 바로가기
IT 기술/Android

[Android] AAC (Android Architecture Component)

by Geunny 2020. 7. 28.
반응형

 

AAC - Android Architecture Component

 

안드로이드의 구조는 컴포넌트기반으로 되어있다.

 

CBD 방법론(Component Based Dev) : 컴포넌트 여러 개를 조합하여 하나의 앱을 개발.

 

안드로이드의 대표적인 디자인 패턴으로 크게 3가지를 볼 수 있다.

출처 - https://dundun-dev.tistory.com/15

 

1. MVC 패턴

MVC 패턴은 Model - View - Controlle 3단어의 앞 글자를 따서 만든 패턴으로

어플리케이션의 역할을 데이터 - Model, 논리(연산) - Controller, 화면 - View

3가지로 구성하여 개발하는 것을 말한다.

 

MVC 패턴은 웹 개발에서도 대표적으로 사용하는 디자인 패턴이며, 

안드로이드 초기에도 클라이언트 사이드에서 사용했다고 한다.

 

안드로이드에서 MVC 패턴을 적용해 보면

DB에 접근 하는 VO (Model)

출력과 이벤트를 담당하는 Activity or Fragment (View & Controller)

역할을 하게 된다고 볼 수 있다.

 

순서

 

1. Controller를 통해 입력을 함

2. Controller가 Model과 View에게 입력을 보냄

3. Model은 해당 데이터를 View에게 보내주어 출력

 

출처 - https://blog.dramancompany.com/2016/08/

2.MVP 패턴

MVC 패턴의 경우 기존의 웹과 달리 안드로이드는

Activity 가 View 와 Controller 의 역할을 하게 되어

Activity 의 코드의 길이기 엄청나게 길게 작성하게 된다.

 

그러한 Activity 의 복잡성을 완화시켜(?) 주기 위한 패턴이 MVP 패턴이다.

 

MVP 패턴에서는 Model은 변하지 않는 그대로이다.

이제 View + Controller = Acitivity가 분해되어 View + Presenter로 나뉘었다

Presenter는 쉽게 발해 View와 Model 사이의 매개체? 역할이 되었다.

 

MVC 에서는 Activity가 Controller View역할을 모두 하기 때문에

입력을 Controller 단에서 하는 것과 같지만

MVP 에서는 둘을 분리시켜 View에서만 입력을 받게 한다.

 

MVP 는 View 와 Model 은 Presenter를 거쳐서 동작하게 된다.

대표적인 예로는 Adapter와 RecyclerView를 이용한 List 구현이 있다.

 

실행순서

 

1. View로 사용자의 입력이 들어옴

2. View는 Presenter에게 작업을 요청

3. Presenter에서 필요한 데이터를 Model에게 요청

4. Model은 Presenter에게 데이터를 반환

5. Presenter는 View에게 데이터를 넘겨줌

6. View는 Presenter로부터 받은 데이터를 출력

 

출처 - https://blog.dramancompany.com/2016/08/

MVVM 패턴

MVVM 패턴에서 가장 중요한 것은 바로 ViewModel 의 역할이다.

MVVM 에서 사용되는 디자인패턴은 바로

Observer 디자인 패턴이다.(요번 기사실기 나왔는데 틀렸음..)

 

View 가 ViewModel이 가진 데이터를 옵저빙 하고 있다가

ViewModel의 데이터가 변경되면 자동으로 View도 갱신되는 방식이다. (옵져버 패턴)

따라서 ViewModel은 View에 대한 참조를 갖지 않는다.

ViewModel 입장에서는 자기것만 바꾸고 다른건 신경 쓰지 않아도 된다.

 

여기서 이 옵저빙 과정에서 발생하는

View -> ViewModel의 의존성을 줄이기 위해

안드로이드 데이터 바인딩을 사용한다.

필자도 구글링을 하면서 순간 데이터 바인딩을 사용하는 것이

MVVM 패턴인가 생각 했었는데

정확이 말하면 MVVM패턴에

안드로이드의 데이터 바인딩을 이용하는 것이다.

 

https://ko.wikipedia.org/wiki/

 

 

다음 시간에는 MVVM에서 사용한 Android Data Binding에 대해 정리해 볼까 한다.

 

출처 - https://dundun-dev.tistory.com/15

 

Android Architecture Component가 뭐야?

먼저 안드로이드를 이야기하면 안드로이드는 컴포넌트 기반이다. CBD 방법론 ( Component Based Dev ) : 컴포넌트 여러 개를 조합하여 하나의 앱을 개발 우리가 흔히 보는 디자인 패턴에 대해서 한번 이

dundun-dev.tistory.com

https://umbum.dev/915

 

MVVM과 Android DataBinding

MVVM에서의 가장 큰 특징은 옵저빙 이다. 리액티브 프로그래밍에서 말하는 옵저버 패턴과 같은 의미. View가 ViewModel이 가진 데이터를 옵저빙 하고 있다가 ViewModel의 데이터가 변경되면 자동으로 Vi

umbum.dev

 

'IT 기술 > Android' 카테고리의 다른 글

[Android] SDK 버전 정리.  (0) 2020.08.05
[Android] 레이아웃 인플레이션 (Layout Inflation)  (0) 2020.08.05
[Android] Room Database 기초  (0) 2020.08.05
[Android] Activity Lifecycle  (0) 2020.07.27

댓글