미래 가젯 연구소
close
프로필 배경
프로필 로고

미래 가젯 연구소

  • 분류 전체보기 (23) N
    • Android (6) N
      • Compose (10)
      • Jetpack (2)
    • Kotlin (2)
    • 외부 활동 (3)
      • 우아한테크코스 8기 (3)
  • 홈
  • 안드로이드
  • 태그
Retrofit Authenticator와 Mutex로 토큰 Race Condition 해결하기

Retrofit Authenticator와 Mutex로 토큰 Race Condition 해결하기

이제는 개발을 하면서 JWT와 REST API가 없는 개발은 보기 힘들게 됐어요.앱에서도 예외는 아닌데요, 끊김 없는 UX를 유지하기 위해 액세스 토큰의 만료 처리는 필수입니다.이 글에서는 프로젝트를 진행하면서 적용했던 Retrofit과 OkHttp의 Authenticator를 활용해 토큰을 자동으로 갱신하는 방법을 다룹니다. 이 과정에서 발생했던 경쟁 상태 문제를 Mutex로 해결한 경험을 공유합니다 😊1. 왜 Authenticator를 사용하나요?보통 API 요청 시 액세스 토큰이 만료되면 서버는 401 Unauthorized 응답을 내려줍니다. 이때 클라이언트는 리프레시 토큰을 사용해 새로운 액세스 토큰을 발급받고, 실패했던 요청을 다시 보내야 합니다.이 과정을 구현하는 방법으로 OkHttp의 A..

  • format_list_bulleted Android
  • · 2025. 11. 25.
  • textsms
[Android Compose] flowWithLifecycle은 언제 쓰면 좋을까?

[Android Compose] flowWithLifecycle은 언제 쓰면 좋을까?

안녕하세요! Compose로 개발하다 보면 Side Effect를 어떻게 처리할지 항상 고민인데요. 저도 ViewModel에서 발생한 이벤트를 LaunchedEffect로 받아서 스낵바를 보여주거나 화면을 전환하는 코드를 자주 작성했어요. 그런데 문득 앱이 백그라운드로 전환됐을 때 flow 수집이 중단되나? 생각이 들어서 테스트 해보니 LaunchedEffect가 계속 동작하는걸 발견했어요.이번 글에서는 제가 겪었던 문제와 flowWithLifecycle API로 해결한 경험, 그리고 이 과정에서 만든 재사용 가능한 확장 함수까지 공유해보려합니다! (해당 작업 PR 입니다)어떤 문제가 있었나요?보통 ViewModel의 단방향 이벤트(Side Effect)를 처리할 때 LaunchedEffect를 많이 사..

  • format_list_bulleted Android/Compose
  • · 2025. 8. 8.
  • textsms
[Kotline Coroutine] OnFailure에 로그적기 귀찮아

[Kotline Coroutine] OnFailure에 로그적기 귀찮아

안녕하세요! 오늘은 Result를 사용할 때 실패 시마다 반복해서 적던 로그 코드를 줄이기 위해 만든 확장 함수를 소개하려고 합니다. 사실 정말 간단해요ㅎㅎ1. 왜 만들었어요?제가 참여중인 Spoony에서는 런캐칭으로 감싸 뷰모델에서 onSuccess와 onFailure로 결과값을 처리하고 있었어요. 그러나 작업자마다 로그를 찍는 게 일관적이지 않았고 매번 실패 시에 Timber.e(e)를 적는 게 귀찮게 다가왔어요. 사용되는 부분이 많다 보니 매번 팀버 코드를 작성해야 했고 확장함수로 만드면 어떻냐는 팀원의 아이디어가 나왔어요.그래서 바로 작업에 들어갔습니다.2. Result 실패 처리 반복현재 ViewModel에서 다음과 같이 runCatching과 Result를 조합해 API 호출의 성공/실패를..

  • format_list_bulleted Kotlin
  • · 2025. 5. 23.
  • textsms
  • navigate_before
  • 1
  • navigate_next
최근 글
인기 글
전체 카테고리
  • 분류 전체보기 (23) N
    • Android (6) N
      • Compose (10)
      • Jetpack (2)
    • Kotlin (2)
    • 외부 활동 (3)
      • 우아한테크코스 8기 (3)
최근 댓글
태그
  • #sideeffect
  • #coroutine
  • #Retrofit
  • #Android
  • #LaunchedEffect
  • #class
  • #runcatching
  • #우테코
  • #jetpack
  • #compose
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바