본문 바로가기

DI3

Dagger2 기본 #2 - Module '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 Component 에 의존성을 제공하는 역할로 클래스에 @Module 어노테이션을 붙이면된다. 1. @Provides 메소드 Module 클래스에서 선언되는 메소드에는 @Provides 어노테이션을 붙이며, 컴파일 타임에 의존성을 제공하는 바인드된 Provider 를 생성한다 리턴 타입으로 Component 내에서 의존성이 관리되기 때문에 하나의 Component 에는 리턴 타입이 중복되면 안된다 (중복 시 컴파일 타임에 에러 발생) 메소드는 null 을 리턴해야 할 경우 @Nullable 을 추가해야하며, 코틀린.. 2020. 5. 28.
Dagger2 기본 #1 - 시작 '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 1. Dagger2 란? JAVA 와 Android 를 위한 DI 프레임워크 Reflection 을 사용하지 않는다 런타임 시 바이트 코드를 생성하지 않는다 컴파일 타임에 Annotation processor 에 의해 DI 와 관련된 코드를 분석하고 자바 코드를 생성한다 2. Dagger 진입장벽 Annotation 기반 코드 생성이 익숙치 않으면 내부 동작을 유추하기 힘들다 Component, Subcomponent, Module 등 Dagger 에서만 사용하는 용어로 인해 혼란스럽다 3. Dagger 장점 자원.. 2020. 5. 27.
DI : Dependency Injection '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 DI 개념을 훑어보면 간단해보이지만, 변경의 전이/제어의 역전 같은 단어는 정말 머리에 안들어온다,, 아 인터페이스 기반으로 주입하면 되는구나 싶지만 실제로 이미 많이 구현되어있는 프로젝트에 적용하려고 하면 이미 구조가 잘 잡혀있는데 변화를 준다는게 쉽지 않은 것 같다. (오히려 프로젝트 초기 단계부터 시작한다면 구조 잡기가 훨씬 수월할듯) 어쨋든 dagger2 를 사용하기 전 간단하게 DI 개념을 읽고 간다! 1. 의존성 주입 (DI : Dependency Injection) : 하나의 객체에 다른 객체의 의존성.. 2020. 5. 25.