Android/프로젝트 6

헤더에 다른 토큰을 넣는 동작에 따라 API, Interceptor 분리

이전 글 https://sh1mj1-log.tistory.com/164 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 지난 4개월 전쯤 친구를 통해서 여러 다른 분들과 플레이스토어에 바바-BABA 라는 앱을 출시했습니다. 작성했던 코드들을 천천히 보면서 리팩토링 및 버그 픽스를 하며 공부를 더 해보려고 합니 sh1mj1-log.tistory.com 이전 글 '안드로이드 레트로핏 api ... 인터페이스에서 @Header 제거하기' 글에서 이어집니다. 이전 글에서는 api 중에서 헤더에 access token을 넣는 api call 인터페이스와 헤더에 엑세스 토큰을 넣지 않는 인터페이스가 있었습니다. 그런데 이제는 헤더에 sign token 을 넣는 api call 이 추..

안드로이드 통신에 자주 사용하는 Retrofit 알아보기 (2) - create 뜯어보기

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/167 안드로이드 통신에 자주 사용하는 Retrofit 알아보기 (1) - HttpURLConnection, OkHttp, Retrofit 장점을 중심 Jwt 토큰 관련해서 프로젝트의 버그 픽스, 간단한 리팩토링(리팩토링이라고 하기도 뭐하지만) 을 진행하면서 이 김에 Retrofit 클래스의 내부 구조에 대해서 조금 이해를 해야 할 필요가 있을 것 같 sh1mj1-log.tistory.com 이번에는 Retrofit 을 사용해서 서버와 통신을 할 때 Retrofit 클래스 내부가 어떻게 구현이 되어 있는지에 대해 조금 더 자세히 알아보겠습니다. Retrofit 클래스 이전 글(안드로이드 통신에 ... Retrofit 장점을 ..

안드로이드 통신에 자주 사용하는 Retrofit 알아보기 (1) - HttpURLConnection, OkHttp, Retrofit 장점을 중심으로

Jwt 토큰 관련해서 프로젝트의 버그 픽스, 간단한 리팩토링(리팩토링이라고 하기도 뭐하지만) 을 진행하면서 이 김에 Retrofit 클래스의 내부 구조에 대해서 조금 이해를 해야 할 필요가 있을 것 같아 정리해보려고 합니다. 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 지난 4개월 전쯤 친구를 통해서 여러 다른 분들과 플레이스토어에 바바-BABA 라는 앱을 출시했습니다. 작성했던 코드들을 천천히 보면서 리팩토링 및 버그 픽스를 하며 공부를 더 해보려고 합니 sh1mj1-log.tistory.com APi 요청 시 Access Token 을 갱신해야 할 때 Refresh Token 으로 토큰..

Api 요청 시 Access Token 을 갱신해야 할 때 Refresh Token 으로 토큰 갱신 후 같은 api 재요청

이전 글 [안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기] 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 지난 4개월 전쯤 친구를 통해서 여러 다른 분들과 플레이스토어에 바바-BABA 라는 앱을 출시했습니다. 작성했던 코드들을 천천히 보면서 리팩토링 및 버그 픽스를 하며 공부를 더 해보려고 합니 sh1mj1-log.tistory.com 에서 리팩토링/버그 픽스를 하며 작성했던 글의 연장선입니다. 추가로 이 글도 보면 도움이 되겠네요 [그래서 jwt, Access, Refresh Token 이 뭔데?] 그래서 jwt, Access, Refresh Token 이 뭔데? 이전 글 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header..

그래서 jwt, Access, Refresh Token 이 뭔데?

이전 글 안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기 에서 Access token 을 @Header 에 넣는 부분에 대해서 다뤘습니다. 그렇다면 Access Token 이 대체 무엇일까요? Access Token 이전에 Jwt 토큰을 알아야 합니다. 하나 하나 차근차근 알아봅시다. JWT 토큰이 뭔데? JWT(Json Web Token) 은 웹에서 사용되는 JSON 형식의 토큰에 대한 표준 규격입니다. 유저의 권한을 결정하는 정보를 담는 데이터 조각으로 유저의 인증(Authentication), 인가(Authorization) 정보를 담습니다. Jwt 토큰을 사용해서 클라이언트와 서버는 안전하게 통신할 수 있습니다. 클라이언트에서 jwt 토큰을 담아서 서버에 정보를 보..

안드로이드 레트로핏 api 호출하는 인터페이스에서 @Header 중복을 제거하기

지난 4개월 전쯤 친구를 통해서 여러 다른 분들과 플레이스토어에 바바-BABA 라는 앱을 출시했습니다. 작성했던 코드들을 천천히 보면서 리팩토링 및 버그 픽스를 하며 공부를 더 해보려고 합니다. 일단 오늘 볼 부분은 서버와 api 통신을 하는 부분인데요. 이 프로젝트에서는 Retrofit 을 사용했고, Di 는 Hilt 를 사용하였습니다. 서버와 api 통신을 하는 전체 구조 먼저 간단한 UML 을 통해 기존에 어떻게 서버 통신을 진행하고 있는지를 간단히 표현하자면 아래와 같습니다. 클라이언트에서 AlbumApi 를 호출할 때 Retrofit 객체를 만들어 주고, 또 OkHttpClient 객체를 만들어 주는 부분은 Hilt 로 구현되어 있습니다. 화살표가 UML 의 표준으로 그린 것도 아니고 실제로 H..