본문 바로가기

아키텍처5

[Android] 의존성 주입 - Starting with Koin Annotations (feat. Compose, KMP, Circuit) 최근 Compose Multiplatform을 활용하여 사이드 프로젝트를 진행중입니다.Android, iOS, Flutter를 전부 실무에서 활용해본 경험으로 미루어 봤을때 꽤 좋은 선택지가 될 것이라는 기대 덕분인데요.좋은 아키텍처가 무엇인지 고민하던 찰나, Slack에서 개발한 Circuit 아키텍처가 마음에 들어 사용해보고 있습니다.현재 구글이 KMP를 적극 지원중이고 여러 Jetpack 라이브러리들이 KMP를 지원하도록 업데이트 되고 있으니 가까운 미래에 바뀔지도 모르지만요.아키텍처를 구성한다는 것은 의존성 주입 또한 중요한 문제가 될 텐데요.안드로이드 개발자라면 Jetpack Hilt를 사용하고 있을테지만 안타깝게도 KMP에서는 사용이 어렵습니다.그래서 코틀린으로 작성된 Koin이 좋은 대안이 .. 2025. 2. 14.
[Android] Retrofit Call Adapter를 활용해서 효과적인 에러 핸들링 하기 요즘 앱을 개발하면 API를 사용하지 않는 경우가 거의 없는 듯 합니다.그렇기 때문에 Retrofit은 굉장히 흔하고 유용한 네트워킹 라이브러리이며 오랫동안 사용되어 오고 있습니다.최근엔 Ktor를 사용하는 사례도 종종 보입니다만, 아직까지 Retrofit을 사용하는 것이 대부분 일 것입니다.이와 더불어 앱 권장 아키텍처 또는 MVVM, 클린아키텍처 또한 매우 흔한 기술 스택으로 자리잡고 있습니다.그러다보니 ViewModel에서 Repository, UseCase를 통해 API로부터 오는 데이터를 얻고 있습니다.이러한 아키텍처 구성은 레이어간에 느슨한 결합을 만드는 것이 주된 목적 중 하나이기 때문에 인터페이스로 의존하고 있으며, 서로간에 구체적인 구현은 모르게 되는 상황이 된 것이죠.이러한 상황에서 A.. 2025. 1. 24.
Android - 상태관리, LiveData 대신 StateFlow를 사용하자. 현재 안드로이드 생태계는? 현재 안드로이드 생태계는 MVVM 아키텍처, 클린아키텍처가 대세가 되고, MVI 아키텍처가 점점 핫해지고 있다. 그만큼 개발 기술이 빠르게 발전하고 있고, 더욱 강력한 도구들이 생겨나고 있다는 것이다. Google에서 Android Architecture Compoenent로 여러가지 도구를 제시하고 있고, 그 중에 ViewModel과 LiveData는 정말 핫하고 유용하며, 현재 안드로이드 앱 개발에 있어서 가장 기본적인 도구로 몇년동안 자리잡고 있다. 그러나 시간이 지나면서 이들도 구시대의 기술이 되어가는 것은 당연하다. 영원히 최고의 도구는 없으니까. 오늘은 그 중 하나인 LiveData에 대해, 그리고 이를 대체할 StateFlow에 대해서 얘기해본다. 상태관리, 그리고.. 2023. 8. 3.
[Android] Clean Architecture With Pokedex (feat. Jetpack Compose, Hilt) - 1 이번 포스팅은 Clean Architecture의 구성요소와 개념에 대해 알아보고, 안드로이드 프로젝트를 생성하여 기반작업을 해 볼 것이다. Clean Architecture에 대해 검색해본 사람이라면, 아래 그림을 정말 많이 접했을 것이다. 개인적으로, 위 다이어그램만 이해한다면 Clean architecture는 끝이라고 할 만큼 기본이고 핵심이라고 생각한다. 좌측 원형 다이어그램을 분석해보자. 가장 바깥쪽부터 안쪽으로 화살표가 있는데, 이것은 의존성을 의미한다. 즉, 바깥쪽에서 안쪽으로만 의존하며, 가장 안쪽인 Entities는 의존성을 갖지 않는다. 또한, 안쪽에서 바깥쪽으로의 의존성은 없다. 이것은 Clean architecture의 가장 핵심적인 룰이다. 우리가 알아야 할 요소는 Present.. 2022. 5. 28.
반응형