본문 바로가기
반응형

Retrofit22

[Android/Kotlin] Retrofit2은 어떻게 Interface의 구현 없이 사용할 수 있을까? 제가 가진 의문과 생각을 정리한 글입니다~! 틀린 내용이 있다면 알려주세요 :) TL;DR - 프로그래머는 Interface에 추상적인 API 함수들을 Retrofit Annotaion과 함께 정의해둔다. - Retrofit.create(Class) 함수에 정의한 Interface의 Java Class 타입을 넘긴다. 반환 값은 해당 Interface의 구현체이다. - 우리는 Interface의 구현체 내용을 작성하지 않았다. 이는 Retrofit이 담당한다. - Java의 Reflection API에서 제공하는 newProxyInstance() 메서드를 이용해 동적으로 Proxy 인스턴스를 만든다.(Dynamic Proxy) - 이 Proxy Instance는 우리가 정의한 Interface의 구현체이.. 2022. 12. 11.
[Android/Kotlin] Retrofit2(+Coroutine)은 왜 Main Thread에서 사용해도 될까? 제가 가진 의문과 생각을 정리한 글입니다~! 틀린 내용이 있다면 알려주세요 :) 💁‍♂️??? Retrofit2과 Coroutine은 Android 프로젝트에 빠지지 않는 조합이다. 그런데 혹시, ViewModel에서 Retrofit의 API 함수를 호출할 때 Thread를 바꾸고 있진 않은가? 처음 예제를 짜 볼 땐 당연히 Networking 작업이니까 IO Dispatcher로 바꾸어주고 뿌듯해했다. 당연히 Room이나 Retrofit2같은 무거운 작업은 Main-Safety하게 해야 하지 않나? Main Thread에서 호출했다가 화면 버벅거리면 어떡해?? 뭐 코루틴이야 일반적으로 호출자 스레드를 블락하지 않지만, Room이나 Retrofit2 같은 무거운 작업은 다른 Thread에서 작업하는 게 .. 2022. 8. 10.
반응형