GetIt – 간단하고 강력한 의존성 주입 관리

2025. 3. 13. 10:08·Flutter
728x90

​GetIt은 Flutter에서 의존성 주입(Dependency Injection, DI)을 간편하게 구현할 수 있도록 도와주는 라이브러리입니다. 이를 통해 싱글턴 객체를 효율적으로 관리하고, 애플리케이션 전역에서 동일한 인스턴스를 손쉽게 호출할 수 있습니다.​

왜 GetIt을 사용해야 할까?

  • 전역 객체 관리: Provider 없이도 의존성을 전역적으로 관리할 수 있습니다.​
  • 싱글턴 패턴 지원: 한 번 등록하면 앱 어디서든 동일한 인스턴스에 접근할 수 있습니다.​
  • 직관적인 API: getIt<MyClass>() 한 줄로 객체를 가져올 수 있습니다.​
  • 생성자 주입 지원: 팩토리 패턴을 통해 객체 생성 로직을 유연하게 관리할 수 있습니다.​

GetIt 설치

dependencies:
  get_it: ^7.6.4

 

GetIt 인스턴스 등록

import 'package:get_it/get_it.dart';

final getIt = GetIt.instance;

void setupLocator() {
  getIt.registerSingleton<ApiService>(ApiService());
}

class ApiService {
  void fetchData() {
    print("API 데이터 가져오기");
  }
}

registerSingleton()을 사용하여 ApiService를 전역에서 관리할 수 있습니다.

 
GetIt을 사용하여 객체 호출
void main() {
  setupLocator();
  final apiService = getIt<ApiService>();
  apiService.fetchData();
}
getIt<ApiService>()를 통해 어디서든 동일한 인스턴스를 호출할 수 있습니다.
 

추가 기능

Lazy Singleton (최초 호출 시 객체 생성)

getIt.registerLazySingleton<ApiService>(() => ApiService());

앱 실행 시 즉시 생성되지 않고, 필요할 때 최초 한 번만 생성됩니다.

​

팩토리 패턴 활용 (매번 새로운 객체 생성)

getIt.registerFactory<ApiService>(() => ApiService());
 

호출할 때마다 새로운 인스턴스가 생성됩니다.

​

매개변수가 있는 객체 등록

getIt.registerFactoryParam<UserService, String, void>(
  (username, _) => UserService(username),
);

매개변수를 받아 객체를 동적으로 생성할 수 있습니다.

​

GetIt과 다른 의존성 관리 라이브러리 비교

  • Provider: Flutter에서 권장하는 상태 관리 및 의존성 주입 패턴으로, 간단하고 직관적이지만 규모가 커질수록 관리가 어려울 수 있습니다.
  • Riverpod: Provider의 개선 버전으로, 더 안전하고 강력한 기능을 제공합니다. 그러나 러닝 커브가 있을 수 있습니다.
  • GetIt: 전역적으로 객체를 관리할 수 있으며, 사용이 간편합니다. 하지만 Service Locator 패턴에 대한 이해가 필요합니다.
728x90
LIST

'Flutter' 카테고리의 다른 글

배포 후 카카오 로그인 안될 때 해결 방법  (4) 2025.04.01
Flutter에서 Agora SDK 통합 시 발생하는 aosl.xcframework 충돌 해결하기  (0) 2025.03.20
Flutter Hive  (1) 2025.03.12
Flutter에서 ButtonStyle 마스터하기 – 완벽 가이드  (0) 2025.03.09
Flutter에서 GPU 렌더링 이해하기: Skia에서 Impeller까지  (1) 2025.03.07
'Flutter' 카테고리의 다른 글
  • 배포 후 카카오 로그인 안될 때 해결 방법
  • Flutter에서 Agora SDK 통합 시 발생하는 aosl.xcframework 충돌 해결하기
  • Flutter Hive
  • Flutter에서 ButtonStyle 마스터하기 – 완벽 가이드
Mr. Joo
Mr. Joo
  • Mr. Joo
    삽질의 시작
    Mr. Joo
  • 전체
    오늘
    어제
    • 분류 전체보기 (182) N
      • Flutter (67)
      • Android (9)
      • Swift (4)
      • React (11)
      • 인공지능 (4)
      • CS (10)
      • 개발 뉴스 (74) N
      • IT 기기 (1)
      • 알면 유용한 정보 (2)
  • 인기 글

  • 태그

    오늘의 뉴스
    개발 이슈
    앱 개발
    이슈
    개발
    기술 뉴스
    개발 뉴스
    뉴스 모음
    Dart 기초
    android
    앱
    DART
    앱개발
    뉴스
    기술
    플러터
    react
    오늘의 이슈
    Flutter
    Flutter 기초
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Mr. Joo
GetIt – 간단하고 강력한 의존성 주입 관리
상단으로

티스토리툴바