AS_IS
Twitch Token의 경우 api call을 통해 auth token을 불러와야
트위치 Api 값(검색, 스트리머)들을 받아올 수 있기 때문에
매번 Api Call을 하는곳마다 token을 불러오는 코드를 작성했다.
TO_BE
인터셉터에서 처리해주기 때문에
인터셉터 함수 안에서 Header를 작성해줬다.
장점
Twitch 정보를 불러오는 DataSource 함수마다 Auth Token을 불러오는 코드를 작성했지만
인터셉터를 통해 Auth Token을 불러오는 코드를 한곳만 작성해서 보일러 플레이트 코드를 줄였다.
회고
runBlocking은 테스트 코드에서만 사용하는줄알았지만
OkHttp와 같이 내부적으로 UiThread가 아닌 많은 양의 스레드를 사용하는곳에서도
runBlocking을 안전하게 사용하는것을 처음 알았다
AS_IS Twitch Token의 경우 api call을 통해 auth token을 불러와야 트위치 Api 값(검색, 스트리머)들을 받아올 수 있기 때문에 매번 Api Call을 하는곳마다 token을 불러오는 코드를 작성했다. TO_BE 인터셉터에서 처리해주기 때문에 인터셉터 함수 안에서 Header를 작성해줬다. 장점 Twitch 정보를 불러오는 DataSource 함수마다 Auth Token을 불러오는 코드를 작성했지만 인터셉터를 통해 Auth Token을 불러오는 코드를 한곳만 작성해서 보일러 플레이트 코드를 줄였다. 회고 runBlocking은 테스트 코드에서만 사용하는줄알았지만 OkHttp와 같이 내부적으로 UiThread가 아닌 많은 양의 스레드를 사용하는곳에서도 runBlocking을 안전하게 사용하는것을 처음 알았다
runBlocking을 사용해도 왜 안전한지는 다음 코멘트에서 후술