클린 아키텍처는 MVVM MVP 아닌가요?
나는 클린 아키텍처가 MVVM, MVP를 적용한 프로젝트를 뜻한 줄 알았다.
반은 맞고 반은 틀린 말이라는 것을 알게 되었고 그 내용을 정리할려고 한다.
클린 아키텍처와 디자인 패턴(MVVM, MVP, MVI 등)
클린 아키텍처와 디자인 패턴은 모두 유지 관리 및 확장 가능한 시스템을 만드는데 사용되는 개념이다.
클린 아키텍쳐는 외부 프레임워크 및 라이브러리로부터 소프트웨어 시스템의 분리와 독립성을 강조하는 소프트웨어 철학이다.
디자인 패턴은 소프트웨어 개발에서 발생하는 일반적인 문제에 대한 재사용이 가능하도록 만든 솔루션이다.
안드로이드 권장 아키텍처
안드로이드에서 아래와 같은 아키텍처를 권장하고 있다.
내가 알고있던 개념은 디자인 패턴(MVVM, MVP)를 적용하면 그게 아키텍처를 적용한 거 아니야? 라고 생각하고 가이드를 봤는데 잘못 이해한 것을 알게 되었다.
위의 그림은 안드로이드 권장 아키텍처이다.
간단하게 UI Layer에서 요청을 하면 Data Layer에서 비지니스 로직(API 요청, DB 로드 등)을 실행한다.
Domain Layer는 Data Layer에서 얻은 데이터들을 간소화, 재사용성할 수 있도록 해주는 레이어이다. (굳이 안넣어도 됨)
위의 개념을 바탕으로 디자인 패턴(MVVM, MVP, MVI 등등)을 적용해 아키텍처를 설계해나가는 것이다.
결론은?
MVVM, MVP, MVI 등등 이런 개념들은 소프트웨어 개발에서 아키텍처 디자인을 위한 디자인 패턴
아키텍처는 외부 프레임워크 및 라이브러리로부터 소프트웨어 시스템의 분리와 독립성을 강조하는 소프트웨어 철학
디자인 패턴은 소프트웨어 개발에서 발생하는 일반적인 문제에 대한 재사용이 가능하도록 만든 솔루션
'안드로이드 > 잡다한 지식' 카테고리의 다른 글
[안드로이드] Compose Pager에서 swipe시 렉 (0) | 2023.05.06 |
---|---|
MPAndroidChart 너는 뭐니 (1) | 2023.04.11 |
안드로이드 RoomDB 테스트 코드 짜기 (0) | 2023.02.23 |
내가 사용하는 .gitignore 정리 (안드로이드) (0) | 2023.02.13 |
안드로이드 빌드는 성공했지만 에뮬에선 실행이 안되는 경우 (2) | 2023.01.24 |