[flutter] pretty_dio_logger를 사용한 캐시 관리 방법

이번 포스트에서는 pretty_dio_logger 라이브러리를 사용하여 캐시를 관리하는 방법에 대해 알아보겠습니다. pretty_dio_logger는 Flutter 앱에서 네트워크 요청 및 응답을 로깅하는 데 도움이 되는 라이브러리입니다. 이를 통해 캐시된 응답을 사용하여 네트워크 요청을 줄일 수 있습니다.

pretty_dio_logger란?

pretty_dio_logger는 Dio라는 HTTP 클라이언트 라이브러리의 로깅을 담당하는 구성 요소입니다. 이를 사용하면 네트워크 요청과 응답을 시각적으로 보기 쉽게 로깅할 수 있으며, 캐시된 응답을 관리할 수도 있습니다.

캐시 관리 방법

pretty_dio_logger를 사용하여 캐시를 관리하려면 다음과 같은 단계를 따르면 됩니다.

  1. pretty_dio_logger 패키지를 설치합니다.

    dependencies:
      pretty_dio_logger: ^2.0.0
    
  2. Dio 클라이언트를 설정하고 pretty_dio_logger를 추가합니다.

    import 'package:dio/dio.dart';
    import 'package:pretty_dio_logger/pretty_dio_logger.dart';
    
    void main() {
      final dio = Dio();
      dio.interceptors.add(PrettyDioLogger(
        requestHeader: true,
        requestBody: true,
        responseBody: true,
        responseHeader: false,
        error: true,
        compact: false,
      ));
    
      // 나머지 코드...
    }
    
  3. 캐시 관리 옵션을 설정합니다.

    final dio = Dio();
    dio.interceptors.add(PrettyDioLogger(
      requestHeader: true,
      requestBody: true,
      responseBody: true,
      responseHeader: false,
      error: true,
      compact: false,
    ));
    dio.interceptors.add(InterceptorsWrapper(
      onRequest: (options, handler) {
        // 캐시된 응답을 사용하도록 설정
        options.extra["cacheOptions"] = CacheOptions(store: MemCacheStore());
        return handler.next(options);
      },
    ));
    
    // 나머지 코드...
    
  4. 캐시된 응답 사용하기

    final response = await dio.get(
      'https://api.example.com/data',
      options: Options(
        extra: {"cacheOptions": CacheOptions(maxStale: const Duration(days: 7))},
      ),
    );
    

이와 같이 설정하면 pretty_dio_logger를 사용하여 네트워크 요청 및 응답을 로깅하고, 캐시된 응답을 관리할 수 있습니다. pretty_dio_logger와 함께 캐시 관리를 하면 네트워크 요청을 줄이고 앱의 성능을 향상시킬 수 있습니다.

마치며

pretty_dio_logger를 사용하여 캐시를 관리하는 방법에 대해 살펴보았습니다. 이를 통해 네트워크 요청과 응답을 시각적으로 확인하고, 캐시된 응답을 효율적으로 관리할 수 있습니다.

참고: pretty_dio_logger GitHub repository