[flutter] Dio를 사용하여 요청 시간을 측정하여 평균 시간을 계산하는 방법을 알려주세요.
Dio는 Flutter 앱에서 네트워크 요청을 만들고 처리하는 데 사용되는 강력하고 사용하기 쉬운 HTTP 클라이언트 라이브러리입니다. Dio를 사용하여 각 요청에 걸린 시간을 측정하고 평균 시간을 계산하는 방법에 대해 설명드리겠습니다.
Dio 설치
먼저, Dio를 Flutter 프로젝트에 설치해야 합니다. 아래와 같이 pubspec.yaml
파일에 Dio 패키지를 추가합니다.
dependencies:
dio: ^4.0.0
그런 다음, 터미널에서 아래 명령어를 실행하여 패키지를 설치합니다.
flutter pub get
요청 시간 측정
다음으로, 각 네트워크 요청에 대한 시간 측정을 위해 Dio의 Interceptors
를 활용합니다. Interceptors는 Dio가 요청을 보내기 전, 후 또는 오류가 발생했을 때 실행되는 훅입니다.
import 'package:dio/dio.dart';
void main() {
Dio dio = Dio();
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
options.extra['requestStartTime'] = DateTime.now().millisecondsSinceEpoch;
return handler.next(options);
},
onResponse: (response, handler) {
int requestStartTime = response.requestOptions.extra['requestStartTime'];
int requestEndTime = DateTime.now().millisecondsSinceEpoch;
int requestDuration = requestEndTime - requestStartTime;
print('Request Duration: $requestDuration ms');
return handler.next(response);
},
));
}
위 예시에서, onRequest
인터셉터에서는 현재 시간을 저장하고, onResponse
인터셉터에서는 그 시간을 사용하여 요청에 소요된 시간을 계산합니다.
평균 시간 계산
마지막으로, 각 요청에 대한 시간을 저장하고, 이를 통해 평균 시간을 계산할 수 있습니다. 아래는 간단한 예시입니다.
List<int> requestTimes = [];
void main() {
// ...interceptor setup
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
options.extra['requestStartTime'] = DateTime.now().millisecondsSinceEpoch;
return handler.next(options);
},
onResponse: (response, handler) {
int requestStartTime = response.requestOptions.extra['requestStartTime'];
int requestEndTime = DateTime.now().millisecondsSinceEpoch;
int requestDuration = requestEndTime - requestStartTime;
requestTimes.add(requestDuration);
print('Request Duration: $requestDuration ms');
return handler.next(response);
},
));
// ...make API requests
// Calculate average request time
if (requestTimes.isNotEmpty) {
double averageRequestTime = requestTimes.reduce((a, b) => a + b) / requestTimes.length;
print('Average Request Duration: $averageRequestTime ms');
}
}
위 예시에서, requestTimes
리스트에 각 요청에 대한 시간을 저장하고, 이를 사용하여 평균 요청 시간을 계산합니다.
이제, Dio를 사용하여 네트워크 요청 시간을 측정하고 평균 시간을 계산할 수 있는 방법을 익혔습니다.
참고: Dio 공식 문서