DI(3)
-
Hilt & Dagger Annotation 별 정리
종속 항목 삽입 장점 클래스 재사용 가능 및 종속 항목 분리 : 종속 항목 구현을 쉽게 교체할 수 있습니다. 컨트롤 반전으로 인해 코드 재사용이 개선되었으며 클래스가 더 이상 종속 항목 생성 방법을 제어하지 않지만 대신 모든 구성에서 작동합니다. 리팩터링 편의성: 종속 항목은 API 노출 영역의 검증 가능한 요소가 되므로 구현 세부정보로 숨겨지지 않고 객체 생성 시간 또는 컴파일 시간에 확인할 수 있습니다. 테스트 편의성: 클래스는 종속 항목을 관리하지 않으므로 테스트 시 다양한 구현을 전달하여 다양한 모든 사례를 테스트할 수 있습니다. 종속 항목 수동 삽입 Application에 Container Factory 생성 → 메모리를 확보하기 위해 컨테이너를 최적화 및 삭제 작업을 해야 함 잘못 관리할 경우..
2024.01.28 -
DI(Dependency Injection) 정리 (hilt, koin)
의존성 주입 (Dependency Injection) 개념 - 의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 필요한 객체를 받아서 사용하는 것이다. 효과 - 객체간의 결합도를 줄이고 코드의 재활용성을 높여준다 DI 프레임 워크 종류 koin 특징 runtime error 발생 (컴파일 과정을 마친 후 사용자에 의해 실행되어 짐) 컴파일 시 걸러내지 못하고 실행 시점에 오류가 발생 kotlin DSL로 만들어진 안드로이드에서 사용할 수 있는 의존성 주입 라이브러리 AAC ViewModel 사용 시 별도의 라이브러리를 통해 의존성 주입이 가능 Dagger에 비해 복잡하지 않아 러닝 커브가 낮지만 리플렉션을 이용해 의존성을 주입하다 보이 앱 성능이 저하됨 장점 러닝커브가 낮음 Kotlin 개..
2022.06.28 -
[Koin/코인] Koin 시작하기
- Kotlin 개발자를위한 실용적인 경량 DI(dependency injection: 의존성 주입) 프레임 워크 - 프록시, 코드 생성, 리플렉션이없는 기능적 해상도 만 사용하여 순수한 Kotlin으로 작성된 DI 라이브러리 "Koin is a DSL, a light container and a pragmatic API" (여기서 DSL이란 ? Domain-Specific Languages : 도메인 특화 언어 즉, 특정 분야에 최적화된 프로그래밍 언어) * Dagger2 보다 진입장벽이 낮고 kotlin에 특화되어있어 Kotlin 사용자가 사용하기 더욱더 편리하다 1. build.gradle(:project) buildscript { ext{ koin_version = '1.0.2' } //Add J..
2020.04.24