[flutter] Injectable을 사용하여 플러터 앱의 코드 모듈화 방법

안녕하세요! 오늘은 Flutter 프레임워크에서 Injectable 패키지를 활용하여 코드 모듈화를 하는 방법에 대해 알아보겠습니다.

코드 모듈화는 앱 개발을 더욱 효율적으로 만들어주는 중요한 단계입니다. 이를 통해 코드의 재사용성을 높이고, 유지보수성을 향상시킬 수 있습니다.

Injectable 패키지는 의존성 주입(Dependency Injection)을 간편하게 구현할 수 있도록 도와주는 도구입니다. 이를 사용하면 코드를 구조화하고 의존성 관리를 쉽게할 수 있습니다.

1. Injectable 패키지 설치하기

먼저 injectable 패키지를 설치해야합니다. pubspec.yaml 파일에서 다음과 같이 패키지를 추가해주세요.

dependencies:
  injectable: ^1.5.0

변경 내용을 적용하기 위해 패키지를 가져온 다음, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 설치합니다.

2. 의존성 주입 설정하기

Injectable을 사용하여 코드를 모듈화하려면, 먼저 코드의 의존성 주입을 정의해야합니다.

주입할 클래스에 @injectable 어노테이션을 추가해주세요.

@injectable
class MyService {
  // ...
}

@Injected 어노테이션을 사용하여 해당 클래스를 주입받도록 설정할 수도 있습니다.

class MyController {
  final MyService myService;

  MyController(this.myService);
}

이제 의존성 주입을 사용하는 클래스에서 해당 클래스를 생성하려면 @lazySingleton 혹은 @singleton과 같은 어노테이션을 사용해 선언해야합니다.

@lazySingleton
class MyService {
  // ...
}

3. 의존성 주입 사용하기

이제 설정이 완료되었으므로, 의존성 주입을 사용할 수 있습니다.

클래스에서 참조하고자 하는 의존성으로 주입받도록 생성자에 매개변수를 추가해주세요.

class MyController {
  final MyService myService;

  MyController(this.myService);
}

이제 필요한 곳에서 의존성 혹은 서비스를 사용할 수 있습니다.

final myService = GetIt.instance.get<MyService>();

마무리

이제헤 동적으로 의존성 주입을 설정하여 플러터 앱의 코드를 모듈화하는 방법에 대해 알아보았습니다. Injectable 패키지를 사용하면 의존성 주입을 쉽게 구현할 수 있으며, 코드의 유지보수성과 재사용성을 향상시킬 수 있습니다.

더 자세한 내용은 Injectable 패키지 가이드 문서를 참고해주세요.

Happy coding!