LogoCocode Skills

DI Module 등록 체크리스트

**에러**: `GetIt: Object/factory with type IConsoleAnalyticsRepository is not registered inside GetIt`

새로운 Feature 모듈 추가 시 DI 등록 누락 방지를 위한 가이드

문제 사례#

에러: GetIt: Object/factory with type IConsoleAnalyticsRepository is not registered inside GetIt

원인: console_service_locator.dart에 모듈 미등록

해결: ExternalModule(ConsoleAnalyticsPackageModule) 추가

체크리스트#

1. Feature 모듈 DI 파일 생성#

feature/{type}/{feature_name}/lib/src/di/
├── injector.dart              # @microPackageInit
└── injector.module.dart       # build_runner 자동 생성

2. Repository/UseCase/BLoC 어노테이션#

// Repository
@LazySingleton(as: IConsoleAnalyticsRepository)
class ConsoleAnalyticsRepository implements IConsoleAnalyticsRepository { }

// UseCase
@lazySingleton
class GetDashboardMetricsUseCase { }

// BLoC
@injectable
class AnalyticsBloC extends Bloc<...> { }

3. Service Locator 등록#

Console 기능package/core/lib/src/di/console_service_locator.dart

import 'package:console_analytics/console_analytics.dart';  // import 추가

@InjectableInit(
  externalPackageModulesAfter: [
    // 📊 콘솔 기능 모듈들
    ExternalModule(ConsoleAnalyticsPackageModule),  // 등록 추가
    // ...
  ],
)

App 기능package/core/lib/src/di/app_service_locator.dart

4. 빌드 및 검증#

# DI 설정 재생성
melos run build:select --no-select -- --scope=core

# 또는 전체 빌드
melos run build

모듈 그룹 순서#

순서그룹예시
1공통AuthPackageModule, LifePackageModule
2라우터ConsoleRouterPackageModule
3기능ConsoleAnalyticsPackageModule (알파벳순)
4 설정 SettingsPackageModule, SignInWithEmailPackageModule

자주 발생하는 실수#

실수 1: import 누락#

// ❌ ExternalModule만 추가하고 import 누락
ExternalModule(ConsoleAnalyticsPackageModule),  // 컴파일 에러

// ✅ import도 함께 추가
import 'package:console_analytics/console_analytics.dart';
ExternalModule(ConsoleAnalyticsPackageModule),

실수 2: 잘못된 Service Locator#

// ❌ Console 기능을 app_service_locator에 등록
// app_service_locator.dart
ExternalModule(ConsoleAnalyticsPackageModule),  // 콘솔 앱에서 사용 불가

// ✅ 올바른 위치에 등록
// console_service_locator.dart
ExternalModule(ConsoleAnalyticsPackageModule),  // 콘솔 앱에서 사용 가능

관련 커밋#

  • 84d80f359: ConsoleAnalyticsPackageModule DI 등록 누락 수정