목록타닥타닥/용어 정리 (3)
혼자 있고 싶네요. 모두 나가주세요.
이전 포스트 : Dagger1 vs Dagger2Dagger2 조금 더 쉽게 이해하기MainActivity를 구성하려면 다양한 DI가 필요하다. 다양한 DI 인스턴스들을 사용할 때 매번 비슷 비슷한 초기화 코드를 추가하여 주고, 변수를 바꾸기라도 하는 날엔 Ctrl+F로 일일이 찾아다니면서 고쳐야 한다. 이런 보일러플레이트를 없애고, 단위 테스트와 코드 재사용성을 높이는 것이 Dagger2의 주 목표라고 할 수 있겠다. Dagger2 구조 기본적으로 알아야할 annotation들이다.@Inject : DI를 주입당할 대상이다.@Component : @Inject와 @Provides 사이의 연결 다리이다. 인터페이스@Module : DI를 주입하는 메서드를 가지는 클래스에 사용한다.@Provides : D..
Dagger1과 Dagger2 Dagger 완전 static하고 컴파일 시에 DI를 수행하는 프레임 워크다. Square에서 만들었으나 현재는 Google에 의해 관리되고 있다.DI를 간편하게 도와주는 도구이다.Java Standard (JSR-330 - DI for) java annotations을 사용한다. ( @inject, @module etc ) 컴파일 시에 DI를 모두 수행한다. 결국 Build 컴파일이 되었다면 문제가 없다는 뜻. module은 null을 return하지 않기 때문 보장된다. Dagger1 2012년 Square에서 만들어졌다. 당시 Java의 DI에 널리 쓰였던 Guice 의 성능이 마음에 들지 않았고, Guice보다 더욱 유연하고 좋은 성능을 가진 Dagger1을 만들게 ..
Dependency Injection 프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인 패턴 중의 하나이다. - 위키백과 한국어로 직역하면 의존성 주입이다. 살짝 간지 나는 것 같다. 적용 유형 마틴 파울러라는 분이 세 가지의 DI 패턴을 제시하셨다고 한다. 생성자 주입 : 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입한다. Setter를 통한 주입 : 의존성을 입력받는 세터(Setter) 메소드를 만들고 이를 통해 의존성을 주입한다. Interface를 통한 주입 : 의존성을 주입하는 함수를 포함한 인터페이스를 작성하고 이 인터페이스를 구현하도록 함으로써 실행시에 이를 통하여 의존성을 주입한다. 결국 D..