[flutter] get_it를 사용하여 플러터 앱에서 데이터베이스와 연동하는 방법은?

get_it은 Flutter 애플리케이션에서 의존성 주입을 다루는 라이브러리입니다. 이 라이브러리를 사용하면 앱에서 사용하는 데이터베이스와 같은 의존성을 쉽게 관리할 수 있습니다.

get_it 설치하기

get_it를 설치하기 위해서는 pubspec.yaml 파일의 dependencies 섹션에 다음과 같이 추가해야 합니다:

dependencies:
  get_it: ^7.2.0

그리고 터미널에서 flutter packages get 명령어를 실행하여 get_it 패키지를 다운로드 받아야 합니다.

데이터베이스 클래스 작성하기

먼저, 데이터베이스와 연동하기 위한 클래스를 작성해야 합니다. 이 클래스는 데이터베이스에 액세스하는 모든 기능을 구현합니다. 예를 들어, SQLite 데이터베이스를 사용하는 경우 다음과 같이 클래스를 작성할 수 있습니다:

class DatabaseService {
  // 데이터베이스 연결 설정 및 기능 구현
}

get_it으로 의존성 등록하기

이제 get_it을 사용하여 데이터베이스 의존성을 등록할 수 있습니다. 이를 위해 앱 초기화 단계에서 setupLocator라는 메서드를 호출하여 데이터베이스 인스턴스를 등록합니다. 다음은 예시입니다:

import 'package:get_it/get_it.dart';

GetIt locator = GetIt.instance;

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

위의 코드에서 DatabaseService()는 앞에서 작성한 데이터베이스 클래스를 가리킵니다. 이를 registerLazySingleton 메서드를 사용하여 등록하였습니다. 이 메서드를 사용하면 데이터베이스 인스턴스가 한 번만 생성되며, 다른 부분에서는 동일한 인스턴스를 공유하여 사용할 수 있습니다.

데이터베이스 사용하기

이제 데이터베이스를 사용하는 곳에서 get_it을 통해 데이터베이스 인스턴스를 가져와서 사용할 수 있습니다. 다음은 예제 코드입니다:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final db = locator<DatabaseService>();
    
    // 데이터베이스 인스턴스를 사용하여 데이터를 가져오거나 업데이트
    
    return MaterialApp(
      // 앱 내용
    );
  }
}

위의 코드에서 locator<DatabaseService>()를 통해 데이터베이스 인스턴스를 가져올 수 있습니다. 이를 활용하여 데이터를 가져오거나 업데이트하는 작업을 수행할 수 있습니다.

이제 get_it를 통해 플러터 앱에서 데이터베이스와의 연동을 쉽게 구현할 수 있습니다. get_it을 사용하면 의존성 주입을 효율적으로 관리할 수 있으며, 앱의 유지보수와 테스트에도 유리한 장점을 가집니다.

참고 자료