[flutter] Dio_logger를 사용하여 플러터 앱의 API 통신 속도를 측정하는 방법

플러터는 Dart 언어를 기반으로 한 모바일 애플리케이션 개발 프레임워크입니다. Dio는 플러터에서 API 통신을 위한 강력한 패키지입니다. Dio_logger는 Dio 패키지의 로깅 기능을 확장하여 API 통신 속도를 측정할 수 있는 도구입니다.

이번 포스트에서는 Dio_logger를 사용하여 플러터 앱의 API 통신 속도를 측정하는 방법에 대해 알아보겠습니다.

1. Dio_logger 패키지 추가하기

먼저, pubspec.yaml 파일에 Dio_logger 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 Dio_logger 패키지를 추가하세요.

dependencies:
  dio: ^4.0.0
  dio_logger: ^4.0.0

변경 사항을 적용하기 위해 터미널에서 flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

2. Dio_logger 설정하기

Dio_logger를 사용하기 위해 Dio 인스턴스를 생성하고 Dio_logger를 추가해야 합니다. 아래 코드는 Dio_logger를 사용하여 API 통신을 로깅하는 예제입니다.

import 'package:dio/dio.dart';
import 'package:dio_logger/dio_logger.dart';

void main() {
  final dio = Dio();
  
  dio.interceptors.add(
    DioLogger(
      requestHeader: true,
      responseHeader: true,
      responseBody: true,
      request: true,
      error: true,
    ),
  );
  
  // API 통신 코드 작성
}

위 코드에서 DioLogger 생성자의 매개변수로 로깅 옵션을 설정할 수 있습니다. 예를 들어, requestHeader: true는 요청 헤더를 로깅하도록 설정하는 것입니다.

3. API 통신 속도 측정하기

이제 Dio_logger를 사용하여 API 통신 속도를 측정하는 방법을 알아보겠습니다. Dio_logger는 각 API 통신에 대한 로깅 정보를 출력하므로, 로깅 정보에서 응답 시간을 추출할 수 있습니다.

아래 코드는 Dio_logger와 함께 API 통신 속도를 측정하는 예제입니다.

final dio = Dio();

dio.interceptors.add(
  DioLogger(
    requestHeader: true,
    responseHeader: true,
    responseBody: true,
    request: true,
    error: true,
    logPrint: (log) {
      // 에러가 발생하지 않은 경우 응답 시간을 추출하여 출력합니다.
      if (log.error.isEmpty) {
        final responseTime =
            log.endTime.difference(log.startTime).inMilliseconds;
        print('API 통신 속도: $responseTime ms');
      }
    },
  ),
);

// API 통신 코드 작성

위 코드에서는 logPrint 콜백 함수를 사용하여 로그 정보를 처리합니다. 에러가 발생하지 않은 경우 log.endTimelog.startTime을 사용하여 응답 시간을 계산하고 출력합니다.

이제 위 방법을 사용하여 Dio_logger를 활용하여 플러터 앱의 API 통신 속도를 측정할 수 있습니다.

참고 자료