hegunhee / NowInJururu

1 stars 0 forks source link

Auth Token을 Interceptor로 처리하는 방법(runBlocking) #55

Open hegunhee opened 9 months ago

hegunhee commented 9 months ago

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을 사용해도 왜 안전한지는 다음 코멘트에서 후술

hegunhee commented 9 months ago

https://youtu.be/PXnVry_emns?si=7Zcuo06IpKojzL4m&t=128 해당 영상을 참고로 왜 intercept함수 내에서 runBlocking을 사용하는지 설명하겠다. OkHttp의 경우 내부적으로 UiThread가 아닌 20개정도 되는 thread를 사용한다. 그러므로 intercept 함수에서 runBlocking을 사용해도 안전하다