인프런 커뮤니티 질문&답변

뿌지징님의 프로필 이미지

작성한 질문수

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

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

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

해결된 질문

23.02.17 00:02 작성

·

365

0

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

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

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

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

답변 1

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

2023. 02. 17. 22:47

안녕하세요

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

예를 들어보겠습니다.

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

그럼

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

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

 

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

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

 

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

 

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

 

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

 

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

 

뿌지징님의 프로필 이미지
뿌지징
질문자

2023. 02. 17. 22:58

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

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