일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Fragment
- 막내의막무가내 플러터 flutter
- 막내의막무가내 코틀린
- 막내의막무가내 안드로이드 에러 해결
- flutter network call
- 막내의막무가내
- 막내의막무가내 SQL
- 부스트코스
- 프래그먼트
- 막내의막무가내 프로그래밍
- 막내의 막무가내
- 안드로이드 sunflower
- 막내의막무가내 코틀린 안드로이드
- 주엽역 생활맥주
- 부스트코스에이스
- 막무가내
- 안드로이드
- 막내의막무가내 목표 및 회고
- 막내의막무가내 rxjava
- 막내의 막무가내 알고리즘
- 주택가 잠실새내
- 안드로이드 Sunflower 스터디
- 2022년 6월 일상
- 막내의막무가내 일상
- 막내의막무가내 알고리즘
- 막내의막무가내 안드로이드
- 막내의막무가내 안드로이드 코틀린
- 프로그래머스 알고리즘
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 플러터
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] DI Dagger2 @Singleton vs @Resuable 차이점 정리 본문
[안드로이드] DI Dagger2 @Singleton vs @Resuable 차이점 정리
막무가내막내 2020. 8. 8. 17:35
[2021-04-14 업데이트]
[참고]
https://proandroiddev.com/dagger-2-check-singlecheck-doublecheck-scopes-4ee48fc31736
https://stackoverflow.com/questions/39136042/dagger-reusable-scope-vs-singleton
https://brunch.co.kr/@oemilk/72
https://www.charlezz.com/?p=1289
https://stackoverflow.com/questions/47742002/what-is-the-use-of-reusable-scope-in-dagger-2?rq=1
안녕하세요 ㅎㅎ
대거에 @Singleton 을 사용하던 도중 @Reusable 이라는 스코프를 사용해보는게 어떻냐는 조언을 받았는데요.
둘의 차이점에 대해 간략히 정리해보겠습니다. 위 사이트는 제가 참고한 사이트들을 모아봤습니다.
@Singleton
아시는대로 항상 동일한 인스턴스를 재사용합니다. 그리고 @Component 와 관련이 있으며 Application scope 이기 때문에 애플리케이션이 죽을때가지 메모리에 살아있을 수 있습니다.
@Reusable
이미 생성한 인스턴스 존재하면 싱글톤처럼 재사용하고 없으면 인스턴스를 생성해서 사용합니다. @Componet와 관련이 없으며(즉 scope - non scope 차이 X ) 단순 인스턴스기 때문에 가비지 컬렉터(GC)에 의해 관리되어 메모리에서 해제될 수 있습니다. 그래서 메모리 관리 측면에서 더 효율적일 수도 있는 장점이 있는 반면 @Singleton 처럼 항상 같은 인스턴스를 제공한다는 보장이 없습니다. (있다면 재사용 가비지 컬렉터에 의해 정리됬다면 새로 생성!)
따라서 항상 같은 인스턴스 제공을 보장받아야하는 경우는 Singleton 을, 상관이 없다면 메모리 관리 효율에 좀 더 좋은 Reusable을 사용하면 될 것 같습니다. 그리고 Singleton 이 좀 더 빠르다고도 합니다.
댓글과 공감은 큰 힘이 됩니다. 감사합니다!!