di 모듈 생성시 class와 object의 차이, usecase
안녕하세요. 좋은 강의 잘 듣고 있습니다.
제가 일단 프로젝트를 분석하면서 천천히 공부하고 있는데
Daager Hilt를 사용할 때 파이어베이스, 네트워크 모듈은 Object인데
나머지 모듈은 클래스로 작성되어 있더라구요.
Daager Hilt 관점에서 오브젝트와 클래스의 어떤 차이점이 있나요?
그리고 메인뷰모델에서 5개의 UseCase를 사용하는데
의존성주입 모듈에는 checkLoveCalculatorUseCase 밖에 없더라구요.
나머지 UseCase는 어떤식으로 주입되는건가요?
回答 1
1
안녕하세요, 침착맨님! 답변이 늦어져 죄송합니다
우선 오브젝트와 클래스로 나눈 점에 대해서 말씀드리자면 싱글톤으로 사용해야 하는 것들은 오브젝트로 그리고 아니면 클래스로 생성했습니다. 예를 들어 NetworkModule은 인스턴스가 여러 개일 필요가 없기 때문에 오브젝트로 만들었습니다.
두 번째 UseCaseModule에 대해서 말씀드리겠습니다, hilt에서 모듈을 만들어주는 이유는 hilt가 어떻게 주입해야 할지 모르는 경우 사용합니다, 예를 들어 외부 라이브러리나 인터페이스 등이 있습니다. 하지만 UseCase는 일반 클래스이기 때문에 모듈이 필요 없습니다.
강의에서 잘못된 내용으로 본의 아니게 혼란을 드려 죄송합니다ㅠㅠ
감사합니다!
0
네 친절한 답변 감사드립니다!!
제가 두번째 UseCase 부분에 대해서는 이해했습니다!
그런데 첫 번째 말씀하신 부분에서 class로 정의된 모듈(RepositoryModule, DataSourceModule) 에 있는 provide 함수들은 결국 Singlton 어노테이션으로 설정되어 이 또한 싱글톤으로 사용되는 것이 아닌가요? 혹시 제가 알고 있는 내용중 틀린점이 있다면 알려주시면 감사하겠습니다!
0
안녕하세요, 침착맨님!
우선 매의 눈으로 잘못된 부분을 찾아주셔서 감사합니다 😎
RepositoryModule, DataSourceModule 이 부분의 @Singleton 또한 침착맨님이 알고 계시는 싱글톤으로 사용하려면 붙이는 어노테이션 입니다! 싱글톤으로 사용할 필요가 없기 때문에 두 모듈 모두 어노테이션을 제거해 주시면 됩니다!
혼란을 드려죄송합니다, 감사합니다!
6강에 비디오가 이상해요
0
27
2
진입 여부 판단 기준 질문
0
77
3
피그마 first draft 기능 질문
0
48
3
upup 질문
0
57
2
data.ai 필터링 검색이 안됩니다!
0
47
1
다양한 관점의 코드 경험을 위해 개선하지 않은 코드
1
47
1
앱 리텐션에 대한 질문
0
49
2
저예산+최대지출 캠페인 유지시간
0
64
2
강의가 검은 화면으로 나옵니다.
0
49
1
histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/
1
44
2
DI시 eager과 lazy
0
37
2
타입스크립트
0
46
1
actuator에서 health 외의 다른 URL은 404 Notfound 에러가 발생합니다.
0
47
2
SettlementTargetRepository Jquery 질문
1
48
2
부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?
1
60
2
주사위앱 소개 및 레이아웃 설정 문제
0
59
2
엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??
1
67
2
API 제공 사이트에서 test 할때 서버에러가 나는데요.
0
198
1
github build.gradle이랑 강의 build.gradle이 다른 것 같네요
0
323
1
이건 어떤 오류인가요?
0
216
0
소리가 안나오는 강의인건가요?
0
531
1
Kotlin DSL, app module의 plugins 'com.google.gms.google-services'
0
456
1
Kotlin DSL강의 2:51 버그..?
0
262
1
관련 첨부 자료는 없나요?
0
420
1

