Android Retrofit Interceptor 완벽 가이드

✨ 개요

Retrofit은 기본적으로 OkHttp를 기반으로 동작하기 때문에, OkHttp의 Interceptor 기능을 그대로 사용할 수 있습니다. Interceptor는 네트워크 요청이나 응답을 가로채어 공통 헤더 추가, 로깅, 토큰 처리 등에 활용됩니다.


1. 🧩 Interceptor의 역할


2. ⚙️ Interceptor 구현 예제

class AuthInterceptor : Interceptor {
  override fun intercept(chain: Interceptor.Chain): Response {
    val request = chain.request().newBuilder()
      .addHeader("Authorization", "Bearer token123")
      .build()
    return chain.proceed(request)
  }
}

val okHttpClient = OkHttpClient.Builder()
  .addInterceptor(AuthInterceptor())
  .build()

val retrofit = Retrofit.Builder()
  .baseUrl("https://api.example.com")
  .client(okHttpClient)
  .addConverterFactory(GsonConverterFactory.create())
  .build()

3. 📝 주의사항


4. 🧾 결론

Retrofit의 Interceptor는 네트워크 로직을 중앙에서 통합 관리하고, 코드 중복을 줄이는 데 강력한 도구입니다. 공통 헤더나 로깅, 인증과 같은 단일 책임을 구현할 때 적극적으로 활용하면 유지보수성이 높아집니다.

용도 Interceptor 활용 예
인증 토큰 자동 추가 헤더에 Authorization 삽입
요청 공통 헤더 User-Agent, Locale, App-Version 등 삽입
응답 가공 응답 코드에 따른 처리
로그 기록 HttpLoggingInterceptor 사용
토큰 갱신 401 응답 시 자동 재요청


Related Posts