inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

냉동코더의 알기 쉬운 Modern Android Development 입문

Dependency Injection 기초

ViewModel이 RepositoryImpl이 아니라 Repository를 생성자로 가지고 있는 것에 대한 질문

804

jminie

작성한 질문수 29

0

제목 그대로 ViewModel이 RepositoryImpl(구현체)이 아니라 Repository(인터페이스)를 생성자로 가지고 있는 것은 SOLID 원칙 중 어느 원칙을 준수하기 위함인지가 궁금합니다.

jetpack architecture kotlin android

답변 3

0

냉동코더

이렇게 구현하면 리포지토리 구현체를 다른 것으로 갈아끼우기가 편해지니까 굳이 따지자면 개방폐쇄원칙을 지킨 것이 되겠네요. 이렇게 작은 앱에서는 딱히 그래야 할 필요는 없지만요 :)

0

jminie

오 네 Repository와 RepositoryImpl을 연결하는 과정에서 Hilt의 동작방식은 알겠습니다!

그런데 제가 궁금한 것은 Hilt에 대한 부분이 아니라 ViweModel에서 생성자로 RepositoryImpl(구현체 클래스) Repository(인터페이스)를 가지는 것이 SOLID에서 무슨 원칙을 준수하기 위함인지가 궁금합니다! :)

0

냉동코더

di 패키지의 RepositoryModule을 보시면 힐트가 주입할 리포지토리 인스턴스는 다음과 같이 정의됩니다.

    @Singleton
    @Binds
    abstract fun bindBookSearchRepository(
        bookSearchRepositoryImpl: BookSearchRepositoryImpl,
    ): BookSearchRepository

인터페이스 형식을 주입하기 위해 @Binds를 사용하긴 하지만, 실제로는 인터페이스의 구현체인 BookSearchRepositoryImpl이 주입되는 것입니다. Hilt 동작방식이 좀 헷갈리게 되어있죠.

Coroutine, Flow 질문

0

384

1

Transformations import 안됨

0

575

1

moshi관련 질문입니다.

0

546

2

searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.

0

359

1

안드로이드에서 아키텍처 패턴

0

408

1

RecyclerView.Adapter vs ListAdpater

0

463

1

Flows 와 Coroutine

1

558

1

[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문

0

360

1

코루틴 메모리 관련해서 질문드립니다!

0

444

1

Java Bill Pugh Solution 에서 INSTANCE

0

461

1

nested json에서 특정 부분만 파싱하는법

0

491

1

Fragment에서의 viewBinding

0

517

3

toolbar 질문드립니다.

0

407

2

EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?

2

564

1

코루틴 관련 질문

0

541

1

오류

1

491

2

강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?

1

742

1

EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?

1

346

1

서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?

1

523

1

GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?

1

1265

1

EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요

1

495

1

ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?

1

436

1

Room DB에 id 항목 추가

0

249

1

안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.

0

402

2