ABOUT ME

코딩 테스트 풀어보는 블로그

Today
Yesterday
Total
  • Google AEP 2018 스터디 / Dagger2의 장/단점 토의
    책, 강연, 스터디 2018. 2. 25. 14:11
    728x90

    Google AEP 2018 스터디


    스터디 주제 : Dagger2의 장/단점 토의

    일시 : 2018년 2월 25일


    Dagger2의 장점으로 공식 웹사이트에 기술되어 있는 내용 밝췌

    Dagger is a replacement for these FactoryFactory classes that implements the dependency injection design pattern without the burden of writing the boilerplate. It allows you to focus on the interesting classes. Declare dependencies, specify how to satisfy them, and ship your app.

    출처 : https://google.github.io/dagger/users-guide


    Q. Dagger2의 장점으로, class를 사용할 때 작성해야만 하는 boilerplate코드를 줄여주는 것을, 장점으로 꼽는다.

    이 부분에 대해서, 실제 사용해본 소감을 가지고, 토의한 내용


    - boilerplate코드는 좀 줄어드는 것을 기대할 수 있다.

    하지만, @Provider 코드를 직접 작성해야 하는 것을 가만할 때, 전체 코드양의 관점에서 보면, Dagger2를 사용했을 대, 코드가 크게 줄어든다고 볼 수 는 없다.


    - Unit 테스트 코드를 작성할 때, Dagger2를 사용했다면, 테스트 코드의 양은 많이 줄일 수 있다.

    @Inject를 사용해서, 인스턴스를 만들어 바로 테스트 코드를 작성할 수 있다. 이미 안 드로이드 앱/서비스 코드가 Dagger2를 사용해서, DI방식으로 작성되어 있다면, 테스트 코드를 작성할 때, 코드의 양은 많이 줄일 수 있다.


    Q. 객체의 생성및 소멸주기를 @scope를 통해서 일임하여, 코드를 쉽게 작성할 수 있다.

    - Spring처럼 생성된 인스턴스의 재 사용이 빈번한 경우라면, 도움이 되지만, 일반적으로 안드로이드 앱의 경우에는 그만큼 빈번하지 않아서, 도움이 된다고 하기 어렵다.


    Q, Dagger2는 어떻게 사용하는 것이 바람직 한가?

    아래와 같은 특성을 가진코드를 작성할 때는 Dagger2를 사용하는 것을 추천

    - 다양한 Unit테스트를 작성해야할 필요가 있는 코드

    - Regression이 발생하였을 때, 빨리 대응을 해야 하는 경우


    728x90
Designed by Tistory.