개발을 하다보면 한번쯤은 들어보는 개념입니다.
MVVM, MVP, MVC 등의 디자인 패턴은 들어봤고, 코드를 잘 정리해야 하는건 알겠는데 클린아키텍처는 또 뭐고 이건 왜 써야하는가? 에 대해서 한번 간단하게 보고 가겠습니다.
그냥 쉽게말하면 프로젝트 구조를 분리해서 서로 의존하지 않고 테스트와 유지보수를 쉽도록 한다라는 뜻인데 그림을 보면서 한번 살펴보겠습니다.
클린아키텍처라고 하면 위와 같은 그림이 나오는데, 안드로이드에서는 아래의 그림이 더 직관적이기 때문에 아래의 그림을 참고하시는게 더 좋을 듯 합니다.
여기 보면
Presentation Layer
Domain Layer
Data Layer
라고 3개의 Layer로 분리가 되어 있습니다.
일단은 하나하나씩 살펴보겠습니다.
Data Layer
말 그대로 데이터들이 들어가는 곳입니다.
엔티티(데이터를 정의한 모델)과 데이터소스(실제 데이터의 입출력이 실행되는 부분), 리포지토리(API호출, 데이터 저장 읽기) 등을 정의하는 계층입니다.
Presentation Layer
UI관련 처리해주는 영역입니다. ViewModel등으로 핸들링하는 작업입니다. Presenter라는게 MVVM의 ViewModel이 아니라, 좀 더 넓은 의미로 View와 관련된 부분을 모두 핸들링하는 부분이라고 생각하면 됩니다.
Domain Layer
UseCase는 비즈니스 로직이 구현되고, 나머지는 받아온 데이터 모델을 변경해주는 부분입니다.
꼭 해야하나요?
사실 꼭 해야하지 않아도 되는 것 같기도 합니다. 다만, 큰 프로젝트를 할 때 유지보수 차원에서 해놓은게 훨씬 좋아 보입니다. 사실 View와 Logic의 분리만 해놔도 훨씬 더 간편해지긴 하니깐요.
- 참조
https://youngest-programming.tistory.com/484
https://jungwoon.github.io/android/2021/04/12/Android-CleanArchitecture.html
'Android(Kotlin)' 카테고리의 다른 글
Sealed class vs Enum (0) | 2021.08.27 |
---|---|
Android MVC MVVM MVP (0) | 2021.08.24 |
코루틴(Coroutine) (0) | 2021.08.23 |
Android Workmanager (0) | 2021.08.22 |
Android Room Google Ex (0) | 2021.08.22 |