inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)

코인 선택화면 API 데이터 받아와서 확인 (Retrofit / Coroutine)

repository 를 거쳐서 Api 를 가져오는 이유

해결된 질문

441

뿌지징

작성한 질문수 3

0

 SelectViewModel 에서 Api를 바로 호출하지 않고

repository 거쳐서 가는게 관리하기 편해서라고 하셨는데

이해가 잘 가지 않아서요..

바로 호출하면 어떤 불편한 점이 있나요?

kotlin android

답변 1

0

개복치개발자

안녕하세요

좋은 질문이네요! 저도 처음에 의문을 품었던 것입니다.

예를 들어보겠습니다.

코인 데이터를 가져와서 api호출해서 가공하는 coinEditingFunction이 있다고 가정해보겠습니다.

그럼

A-viewModel 에서 coinEditingFunction 를 선언해서 localDB 에 저장하고

B-viewModel 에서 coinEditingFunction 를 선언해서 foreground service에 보여준다고 가정하면

 

이 coinEditingFunction 가 중복으로 선언됩니다.

때문에, 이런 과정을 한곳에 몰아넣기 위해 repository에서 처리하도록 한 것입니다.

 

지금은 A / B ViewModel 2개 밖에 없지만 실무에서는 이런 상황에 너무 복잡하고 어렵게 꼬이기 때문에 한곳에 만들어놓고 관리한는 것입니다.

 

coinEditingFunction 이 변경되어도 어디에서 선언되었는지 모두 변경해줄 필요가 없이 한곳만 변경하면 되니깐요!

 

이와 관련해서 클린아키텍처로 가면 useCase 으로 분류(layer)를 나눠서 사용하기도 합니다.

 

추가적인 질문 있다면 더 문의주세요~

 

0

뿌지징

아 그래서 따로 만들어두고 관리하는 것이군요

이해했습니다 감사합니다!!

빌드가 안 돼요..

0

78

2

압축 폴더 파일이 비어있어요ㅠ

0

1203

2

bottom navigation view 색깔

0

112

1

[룸DB 관련 에러] can't open offline database '/data/data/ ...

0

293

3

강의명: 코인 선택화면 Adapater 세팅 (RecyclerView) 에서

0

194

3

6:50분 즈음부터 recycler view 재활용 관련 말이 나오는데

0

170

1

섹션 4 다 완성하고 실행시켜보니 NumberFormatEx이 뜨네요

0

293

2

Notification을 실행했을때

0

824

1

Database Inspector에서 db가 closed 일때

0

430

1

Fragment 에서 다른 Activity로는 Navigation을 사용하지 않나요??

0

256

1

notification 문의드립니다.

0

222

1

풀 소스 코드는 없나요!?

0

319

2

안드로이드버전에 따라 다른것이있을까요?

0

356

2

HTML 코드

0

238

1

BroadcastReceiver가 안됩니다ㅠㅠ

0

510

1

15, 30, 45분 데이터 및 어댑터 오류

0

286

1

_ 사용하시는 이유가 있으실까요?

0

232

1

15, 30, 45 분 데이터가 쌓이지 않습니다.

0

339

1

SQL문 쓰실 때 글자 색깔이 다른데 어떤걸 사용하시는지 알 수 있을까요?

0

221

1

안드로이드13 알림 권한

0

580

1

인트로 화면 세팅에서 질문있습니다.

0

279

1

datastore 관련 질문있습니다.

0

385

1

typeconverter 오류 문의드립니다.

0

392

2

navigation 관련 질문 있습니다

0

330

2