[flutter] pretty_dio_logger를 활용한 주변 장소 검색 처리

오늘은 Flutter 앱에서 지리적 위치 및 장소 검색을 처리하는 방법에 대해 알아볼 것입니다. Dio 라이브러리를 사용하여 HTTP 요청을 보내는 동안 디버깅을 좀 더 편리하게 만들어주는 프리티 다이오 로거(pretty_dio_logger) 패키지를 사용하여 HTTP 요청 및 응답을 로깅하고 분석할 것입니다.

pretty_dio_logger란?

프리티 다이오 로거(pretty_dio_logger)는 Dio 라이브러리에서 제공하는 DioInterceptor를 사용하여 HTTP 요청 및 응답을 로깅하고 출력을 포맷하는 패키지입니다. 이를 사용하면 네트워크 요청 및 응답의 상세 정보를 확인할 수 있어 디버깅을 쉽게 할 수 있습니다.

pretty_dio_logger 사용하기

이 패키지를 사용하려면 먼저 dio 패키지와 함께 내용을 보기 원하는 로거를 설정해야 합니다.

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

void main() {
  Dio dio = Dio();
  dio.interceptors.add(PrettyDioLogger());
}

위 코드에서는 PrettyDioLogger를 Dio의 인터셉터로 추가하여 사용하고 있습니다. 이제 Dio를 사용하여 HTTP 요청을 보낼 때마다 요청 및 응답 내용이 로깅되고, 이를 통해 디버깅 정보를 확인할 수 있습니다.

주변 장소 검색 요청

위치 기반 서비스에서 흔히 사용되는 주변 장소 검색의 예시를 살펴보겠습니다. 아래 코드는 Google Places API를 사용하여 주변 음식점을 검색하는 예시입니다.

void searchNearbyRestaurants(double latitude, double longitude) async {
  try {
    Response response = await dio.get(
      'https://maps.googleapis.com/maps/api/place/nearbysearch/json',
      queryParameters: {
        'location': '$latitude,$longitude',
        'radius': '1500',
        'type': 'restaurant',
        'key': 'YOUR_API_KEY',
      },
    );
    print(response.data);
  } catch (e) {
    print('Error occurred: $e');
  }
}

위 코드에서 dio.get을 사용하여 Google Places API로 주변 음식점을 검색하는 HTTP GET 요청을 보내고 있습니다.

결론

프리티 다이오 로거(pretty_dio_logger)를 사용하면 Dio를 사용하여 보낸 모든 네트워크 요청과 응답에 대한 디버깅을 쉽게 할 수 있습니다. 또한, HTTP 요청 및 응답에 대한 세부 정보를 확인하고 로깅하여 네트워크 통신을 효율적으로 분석할 수 있습니다.

이렇게하여 개발자는 네트워크 요청과 응답을 실시간으로 확인하고 디버깅할 수 있기 때문에 앱의 개발 및 유지 보수를 보다 쉽게 수행할 수 있습니다.