Clean Architecture + MVVM 패턴

이성민·2024년 10월 15일
0

안드로이드

목록 보기
3/19

이번에 회사에서 MVP 으로 짜여진 코드를 MVVM 으로 리팩토링해야하는 일이 생겨 제대로 개념을 잡고 가고자 한다

클린 아키텍쳐란?

Clean Architecture

『클린 코드(Clean Code)』 를 저술한 로버트 마틴 (Robert C. Martin) 이 제안한 시스템 아키텍처로, 기존의 계층형 아키텍처가 가지던 의존성에서 벗어나도록 하는 설계를 제공합니다. 계층을 나누어 관심사를 분리하는 것에 초점을 두고, 각 분리된 계층마다 한 가지 역할만 하도록 구현하는 방식입니다.

개발을 하다보면 앱을 확장하고 앱의 유지보수 및 테스트를 위해 아키텍처를 정의하는 것이 중요하다는 것을 알 수 있다. 처음부터 아키텍처 구조를 정리하지않고 작업을 하면 유지보수에 많은 에로사항이 생긴다. (나중에는 쳐다보기도 싫어진다...)

그렇다면 Clean Architecture 는 이를 어떻게 구성하는지 알아보자.

프리젠테이션 계층 (Presentation Layer)

  1. 뷰(View) : 직접적으로 플랫폼 의존적인 구현, 즉 UI와 사용자 입력을 담당
  2. 프레젠터(Presenter) : MVVM 의 ViewModel 과 같이, 사용자 입력이 왔을 때 어떤 반응을 해야 하는지에 대한 판단을 하는 영역

도메인 계층(Domain Layer)

  1. 유즈 케이스(Use Case): 비즈니스 로직이 들어 있는 영역
  2. 모델(Entity): 앱의 실질적인 데이터

데이터 계층(Data Layer)

  1. 리포지터리(Repository): 유즈 케이스가 필요로 하는 데이터의 저장 및 수정 등의 기능을 제공하는 영역. 데이터 소스를 인터페이스로 참조하여, 로컬 DB와 네트워크 통신을 자유롭게 할 수 있음
  2. 데이터 소스(Data Source): 실제 데이터의 입출력이 여기서 실행됨
profile
Android Developer 이성민입니다

0개의 댓글