안드로이드 클린아키텍처 에러 핸들링 (부제: 상속을 지양하자)
·
Android
서론다온길 프로젝트를 진행하며 네트워크 에러처리에 대한 부분을 구현하며 상속에 대한 문제점을 알게 되었습니다. 그 과정을 기록하며 상속의 문제점과 상속을 회피할 수 있는 몇 가지 대안을 알아보겠습니다. 이번 글은 이펙티브 코틀린 36장 "상속보다 컴포지션을 사용하라"를 기반하여 작성됩니다.1. 기존 코드를 살펴보자📌 Domain Layersealed class NetworkError : Throwable(){ abstract override val message: String}data object ConnectError : NetworkError() { override val message: String get() = "서버에 연결할 수 없습니다. \n인터넷 연결을 확인한 후 다시 시..
[Android]프로젝트를 클린 아키텍처로 마이그레이션해보자
·
Android
🧑🏻‍💻오늘의 할 일 오늘은 프로젝트를 하면서 설계한 아키텍처와 의존성 주입에 대해 기록해 보겠습니다. 세상엔 저보다 너무나도 정리를 잘 한 글들이 많기 때문에 이 글에선 클린 아키텍처와 힐트에 관한 기본적인 내용은 아마 다루지 않을 것 같습니다. 대신 Hilt를 사용하면서 알게 된 성능 팁에 관한 내용을 다루겠습니다. 아키텍처를 구성하는 각 구성 요소와 비즈니스 로직을 구현하면서 마주했던 많은 고민들을 기록하면서 좀 더 좋은 아키텍처를 설계하기 위한 발판을 만들어 보겠습니다. 1. 모듈을 나누자 프로젝트를 만들고 가장 먼저 할 일은 클린 아키텍처에 기반하여 모듈을 나누는 일입니다. Presentation과 Data, App은 플랫폼의 의존성을 가져야 하기 때문에 Android Library로, D..