[flutter] get_it를 사용하여 상태 관리 라이브러리와의 의존성을 어떻게 주입하는가?

Flutter 애플리케이션에서 상태 관리 라이브러리를 사용할 때 의존성 주입은 매우 중요합니다. 이를 통해 코드의 재사용성과 테스트 용이성을 향상시킬 수 있습니다. get_it은 Flutter 애플리케이션에서 의존성 주입을 단순하게 처리하는 라이브러리입니다. 이 블로그 포스트에서는 get_it을 사용하여 상태 관리 라이브러리와의 의존성을 주입하는 방법을 알아보겠습니다.

get_it 라이브러리 추가하기

먼저, pubspec.yaml 파일에 get_it 라이브러리를 추가해야 합니다. 아래와 같이 dependencies 섹션에 라이브러리를 추가합니다.

dependencies:
  get_it: ^x.x.x # 사용하고자 하는 get_it 버전

본인이 사용하고자 하는 get_it 버전에 따라 x.x.x 부분을 대체해야 합니다. 설치를 완료했다면, 다음으로 진행할 수 있습니다.

의존성 등록하기

의존성 주입을 위해 먼저 get_it을 초기화해야 합니다. 보통 애플리케이션의 진입점인 main 함수에서 이 작업을 수행합니다. 아래와 같이 main 함수에서 GetIt 인스턴스를 만들고, 주입하려는 의존성을 등록합니다.

import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

void main() {
  GetIt.instance.registerSingleton<MyService>(MyService());
  
  runApp(MyApp());
}

위의 예시에서는 MyService 클래스의 인스턴스를 등록했습니다. registerSingleton 메서드를 사용하여 의존성을 등록할 수 있습니다. 다른 등록 방법도 있으니, get_it의 공식 문서를 참조하세요.

의존성 주입하기

이제 의존성을 주입하여 해당 객체를 사용할 수 있습니다. get_it을 사용하여 등록한 의존성은 어디서든지 가져와서 사용할 수 있습니다. 아래는 의존성을 주입하는 예시입니다.

import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    MyService myService = GetIt.instance.get<MyService>();
    
    // myService를 사용하여 애플리케이션을 구성
    
    return MaterialApp(
      // ...
    );
  }
}

위의 예시에서는 get 메서드를 사용하여 등록한 의존성을 가져왔습니다. 이제 myService 변수를 사용하여 애플리케이션을 구성할 수 있습니다.

결론

get_it을 사용하여 상태 관리 라이브러리와의 의존성을 주입하는 방법에 대해 알아보았습니다. get_it을 사용하면 코드의 재사용성과 테스트 용이성을 향상시킬 수 있으며, 개발 과정을 단순화할 수 있습니다. get_it의 다양한 기능과 사용 방법에 대해서는 공식 문서를 참조하는 것이 좋습니다.

참고 자료