오늘은 간단하게 안드로이드 권장 아키텍처에 대한 생각을 적어보려합니다.
Now In Android 와 같이 멀티 모듈화를 하는 과정에서 안드로이드 권장 아키텍처!를 다시 보게 되었습니다.
안드로이드 권장 아키텍처에서 보면,
- 레이어 아키텍처 권장: 구글은 안드로이드 앱에 레이어 아키텍처를 권장하고 있으며, 기본적으로 두 개의 레이어(UI 레이어와 데이터 레이어)를 필수로 하고 도메인 레이어는 선택적으로 두도록 권장합니다.
- 도메인 레이어의 선택적 성격: 공식 문서에는 "도메인 레이어는 UI 레이어와 데이터 레이어 사이에 있는 선택적 레이어입니다. 모든 앱에 이러한 요구사항이 있는 것은 아니므로 이 레이어는 선택사항입니다"라고 명시되어 있습니다.
- 실용성 중시: 안드로이드 가이드는 실용적인 접근 방식을 취하면서 "복잡성을 처리하거나 재사용성을 선호하는 등 필요한 경우에만 도메인 레이어를 사용해야 합니다"라고 권장합니다.
- 데이터 레이어의 역할: 데이터 레이어는 "비즈니스 로직을 포함"할 수 있다고 명시되어 있으며, 이는 클린 아키텍처와 달리 비즈니스 로직이 반드시 도메인 레이어에만 있어야 하는 것은 아님을 의미합니다.
이라고 공식 사이트를 참고하여 정리해서 보았습니다.
여기서 제가 생각한건 그럼 그 전에는 클린 아키텍처를 이야기 하기도 했었던것 같은데.. 클린 아키텍처랑 다른 Layer 아키텍처네!
(클린 아키텍처를 언급하는게 제 기억으로 공식 사이트였는지.. 잘 기억이 안나지만요.. 3년전이라..)
아무튼~!
저는 그럼 왜? 레이어 아키텍처가 되었을까? 했을때
레이어 아키텍처의 핵심은 실용성이 아닐까? 라는 생각도 들어서 생각을 정리하고자 글을 작성하게 되었습니다.
가장 먼저 드는 생각은!
모바일 앱은 대부분 단일 사용자 인터페이스 중심!!
서버에 비해 복잡도가 낮기 때문에 불 필요한 코드, 레이어(엔티티, 어댑터, 프레임워크등)들이 생성이 구현될 수 있다고 본것이 아닐까 생각해보았습니다.
그러면서 모바일은 아무래도 서버보단 개발 주기도 빠르기 때문이면서 더더욱 실용성이 필요하다 생각하게 되었습니다.
그러면서 모든 앱이 클린 아키텍처의 모든 요소를 필요하지 않으며, 필요에 따라 아키텍처를 확장할 수 있는 유연성을 제공하여
실용적으로 사용자 경험에 집중되어 할 수 있도록 한것 같다는 생각이 들었습니다.
그럼 짧지만 생각을 정리해보았습니다.
잘못된 부분이 있다면 언제든 말씀해주세요.
감사합니다.
[Clean Architecture] Part 1 - Introduction
시작하기에 앞서 클린 아키텍처에 대해 학습하면서 적는 글이라 미숙한점 많은 양해 부탁 드립니다. 학습하면서 내용은 보충 및 수정할 예정입니다. 📝 Part1 - Introduction • 학습 목표 👉 클린
medium-23-pieces.tistory.com
'기타' 카테고리의 다른 글
[Android] MVVM과 MVI 패턴에 대한 생각 (0) | 2025.03.14 |
---|---|
[GitHub] 개인용 엑세스 토큰 관리 (0) | 2025.02.17 |
[ PHP ] Ubuntu 16.04에 Apache 2.4.29 + MySQL 5.7.20 + PHP 7.1.13 설치하기 (1) | 2021.07.26 |
[ VirtualBox ] Ubuntu 가상머신 이미지 파일 다운로드 및 VirtualBox에 설정 (4) | 2021.07.26 |