[flutter] get_it를 사용하여 플러터 앱에서 로깅을 어떻게 구현하는가?

로깅은 앱 개발에서 중요한 요소입니다. 플러터 앱에서 로깅을 구현하는 방법이 여러 가지 있지만, 이 문서에서는 get_it 패키지를 사용하여 로깅을 구현하는 방법에 대해 알아보겠습니다.

get_it 패키지란?

get_it 패키지는 의존성 주입(Dependency Injection)을 구현하기 위한 패키지입니다. 이 패키지를 사용하면 서비스(예: 로깅 서비스)를 전역으로 사용할 수 있고, 필요한 곳에서 언제든지 접근할 수 있습니다.

get_it 패키지 설치하기

플러터 프로젝트의 pubspec.yaml 파일에 다음과 같이 get_it 패키지를 추가합니다:

dependencies:
  get_it: ^7.0.0

패키지를 추가한 후, 터미널에서 flutter pub get 명령을 실행하여 패키지를 설치합니다.

로깅 서비스 만들기

먼저, 로깅을 위한 서비스를 구현해야 합니다. 이 예시에서는 간단한 콘솔 로깅을 구현해보겠습니다. 프로젝트의 원하는 위치에 logger_service.dart 파일을 생성한 후, 다음과 같이 코드를 작성합니다:

class LoggerService {
  void log(String message) {
    print('[LOG]: $message');
  }
}

get_it를 사용하여 로깅 서비스 등록하기

이제 get_it 패키지를 사용하여 로깅 서비스를 전역으로 등록해보겠습니다. 프로젝트의 원하는 위치에 locator.dart 파일을 생성한 후, 다음과 같이 코드를 작성합니다:

import 'package:get_it/get_it.dart';
import 'logger_service.dart';

GetIt locator = GetIt.instance;

void setupLocator() {
  locator.registerLazySingleton<LoggerService>(() => LoggerService());
}

위 코드에서 Locator 객체를 전역으로 사용하기 위해 GetIt.instance를 사용하고, setupLocator 메서드를 호출하여 로깅 서비스를 등록합니다.

로깅 서비스 사용하기

이제 다른 파일에서 전역으로 등록한 로깅 서비스를 사용할 수 있습니다. 로깅 서비스를 사용하려는 파일의 상단에 다음과 같이 locator.dart를 import 하고, 로깅 서비스를 사용하고자 하는 위치에서 로깅 서비스에 접근합니다:

import 'locator.dart';
import 'logger_service.dart';

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final logger = locator<LoggerService>();
    logger.log('Hello, logging world!');

    return Container();
  }
}

위 코드에서 locator 객체를 사용하여 로깅 서비스(LoggerService)에 접근한 후, log 메서드를 호출하여 로그를 출력합니다.

결론

이제 get_it를 사용하여 플러터 앱에서 로깅을 구현하는 방법을 알아보았습니다. get_it 패키지를 사용하면 로깅 서비스와 같은 의존성을 전역으로 사용할 수 있고, 필요한 곳에서 언제든지 접근할 수 있습니다. 이를 통해 앱 개발 시 로깅을 더욱 쉽게 구현할 수 있습니다.