오늘의 글 제목을 보시면
요즘 가장 핫하고, 어렵고, 세련되고, 어지럽고, 혁신적이고, 끝이없고, 확장적이고, 아름답고 .....
어떠한 수식어를 붙여도 안아까운 키워드 들입니다. 🔥🔥🔥🔥🔥
Clean Architecture
Multi Module
Coroutine
Hilt
우선 추가적으로 글을 작성하기 앞서
저는 이 모든것의 1/3도 알지 못하는
더 많은것을 습득하고 이해하길 원하는 마음으로
글을 작성하고 있습니다.
오직 저를 위한 글이니 너그럽게 이해 해주시길 바랍니다.
🙏🙏
우선 저의 의식의 흐름을 흘러흘러 찾아가보겠습니다.
시작은 "Now in Android" 였습니다. 🤖🤖
앱 개발자들의 유용한 참고 자료를 제시하는
구글 마켓에 등록되어 있는 앱 입니다.
제가 집중한 문구는 바로
"개발 권장사항을 모델링하며 개발자에게 유용한 참고 자료가 되도록 설계되었습니다."
저를 위한 교보재
하늘의 한줄기 빛
어두운 터널의 출구
와 같이 저를 끌어당겼습니다.
Now in Android 소스를 까보고
당장이라도 머리가 터질거 같고
자괴감이 들어 바로 자리에서 누워버려야 할 정도였습니다.
😵💫😵💫😵💫😵💫😵💫😵💫
우선 지금까지 제가 이해한 내용으로는
이와 같이 관심사를 분리하여 구조를 명확히 하고
협업에 유용하게 하며
어느 부분에서도 확장이 가능하게 하는게 핵심이라고 이해했습니다.
간단하게 보면
App Layer
는 유저에게 데이터를 보여주고 상호작용 합니다.
UI 부분이라고 생각하면 될것 같습니다.
App Layer는 Domain, Data Layer를 대상으로 의존성을 가지고 있습니다.
Domain Layer
는 앱의 비지니스 로직이 위치한 곳이고 가장 중요한 핵심으로 표현되고 있습니다.
자주 변경되면 안되는 핵심이며 다른 Layer을 대상으로 의존성을 갖지 않습니다.
즉 Android플랫폼이 아닌 다른 어느곳에서도 바로 사용가능할 정도여야 합니다.
Domain Layer의 UseCase는 여러가지로 나눠서 관리할 수도 큰 단위로 나눠 관리 할 수도 있는데
해당 프로젝트의 성격과 팀원들의 성향에 따라 달라지게 될 것 같습니다.
Data Layer
는 필요한 Data를 조회, 저장, 수정 등등
Data Layer는 Domain Layer를 대상으로 의존성을 갖습니다.
저는 여기까지 도달하는데도 머리가 깨졌습니다.
자 다음으로 그래서 Multi Module은 무엇이냐
한 프로젝트 안의 소스를 여러개의 Module 단위로 잘라 구성하는것 입니다.
"Now in Android"소스를 확인해 보면
위에서 구분한 Layer를 기준으로 Module이 나눠지는 것 처럼 보였습니다.
여기서 부터는 다른 많은 개발자 분들의 소스를 빌려
저도 하나씩 만들어봤습니다.
이와 같이 보기 좋게 Module를 생성하고
간단하게 프로젝트를 생성해 봤지만
어떻게 잘 사용할 수 있을지는 지금도 계속 연구중에 있습니다.
조금 더 학습하고 연구하여
다시 더 좋은 글 작성해보도록 하겠습니다.
여기까지 저의 긴 글을 읽어주셔서 감사합니다.
제가 습관적으로 코딩을 하는 그날까지 습관적으로 코딩을 하기 위해 글 작성을 꾸준하게 해보겠습니다.
'Android > DI' 카테고리의 다른 글
[Android] Hilt @Qualifier - Retrofit 서로다른 baseUrl 구분하기 (2) | 2023.04.27 |
---|---|
[Kotlin] Koin은 DI가 아니다?! (0) | 2023.01.14 |
Android Hilt 적용하기2 (@Binds, @Provides, @ApplicationContext) (0) | 2022.12.21 |
Android Hilt 적용하기1 - (Koin vs Hilt) (2) | 2022.12.10 |
[Kotlin] Android Koin을 활용하여 DI 적용 (경량화 DI Koin) (0) | 2022.11.25 |
최근댓글