[flutter] get_it를 사용하여 플러터 앱에서 디버깅과 오류 추적을 어떻게 하는가?

플러터 앱을 개발할 때, 디버깅과 오류 추적은 매우 중요한 부분입니다. 이러한 작업을 수행하려면 제대로 구성된 의존성 주입(Dependency Injection) 시스템이 필요합니다. Flutter에서는 get_it 패키지를 사용하여 의존성 주입을 구현할 수 있습니다. get_it를 이용하면 앱에서 발생한 오류를 추적하고 디버깅하는 것이 훨씬 쉬워집니다.

get_it 설치하기

먼저, get_it 패키지를 설치해야 합니다. pubspec.yaml 파일을 열고 dependencies 섹션에 다음 코드를 추가하세요:

dependencies:
  flutter:
    sdk: flutter
  get_it: ^7.0.0

그 후, 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드합니다.

get_it 사용하기

get_it를 사용하려면 다음과 같은 단계를 따르면 됩니다:

  1. get_it을 import 합니다:
import 'package:get_it/get_it.dart';
  1. GetIt 인스턴스를 생성합니다. 보통 앱 전체에서 싱글톤으로 사용하기 때문에 글로벌 다트 변수로 선언하는 것이 일반적입니다:
GetIt locator = GetIt.instance;
  1. 의존성을 등록합니다. 예를 들어, MyService라는 클래스의 인스턴스를 등록하고 싶다면 다음과 같이 합니다:
locator.registerSingleton<MyService>(MyService());
  1. 의존성을 사용하는 곳에서는 locator를 통해 해당 의존성을 가져올 수 있습니다:
MyService myService = locator<MyService>();

디버깅과 오류 추적

get_it를 사용하면 앱에서 발생한 모든 의존성 관련 오류를 한 곳에서 추적할 수 있습니다. 앱의 진입점(main 함수)에서 디버그 모드로 setupLocator 함수를 호출하여 get_it을 구성합니다:

void main() {
  setupLocator();
  runApp(MyApp());
}

void setupLocator() {
  if (kDebugMode) {
    locator.allowReassignment = true;
  }
  // 의존성 등록
  // ...
}

위의 코드에서 kDebugMode는 현재 앱이 디버그 모드인지 확인하는 Flutter의 상수입니다. 디버그 모드에서만 allowReassignment 속성을 true로 설정하여 중복 등록 시 경고 없이 의존성을 다시 할당할 수 있습니다.

또한, get_it을 사용하면 ! 기호를 사용하여 의존성이 정상적으로 등록되어 있는지 확인할 수 있습니다. 등록되지 않은 의존성을 사용하려고 시도하면 예외가 발생하고 호출 스택을 통해 오류를 추적할 수 있습니다.

마치며

get_it를 사용하면 Flutter 앱에서 디버깅과 오류 추적에 대한 편리성을 제공할 수 있습니다. 의존성 주입을 통해 코드를 모듈화하고 테스트 가능한 앱을 작성할 수 있습니다. get_it의 강력한 기능을 활용하여 효과적인 앱 개발을 진행해보세요!

참고 자료