[flutter] get_it과 비밀번호 암호화

get_it은 Flutter 애플리케이션에서 의존성 주입을 간편하게 관리할 수 있도록 도와주는 라이브러리입니다. 이를 사용하면 의존성을 전역적으로 관리하고 필요한 클래스 또는 서비스를 인스턴스화한 다음 어디에서든 이를 사용할 수 있습니다. 이번에는 get_it을 사용하여 애플리케이션 전반에 걸쳐 한 번만 암호화 서비스를 생성하고, 필요할 때마다 여러 곳에서 액세스할 수 있도록 하는 방법에 대해 알아보겠습니다.

get_it 설치 및 구성

get_it 라이브러리를 사용하기 위해서는 pubspec.yaml 파일에 라이브러리를 추가해야 합니다.

dependencies:
  get_it: ^7.2.0

그런 다음, 터미널에서 다음 명령어를 사용하여 라이브러리를 가져옵니다.

flutter pub get

get_it을 사용한 의존성 주입

다음은 get_it을 이용하여 의존성 주입을 구현하는 간단한 예제 코드입니다.

import 'package:get_it/get_it.dart';

void main() {
  GetIt locator = GetIt.instance;

  locator.registerLazySingleton<EncryptionService>(() => EncryptionService());
  locator.registerLazySingleton<AuthService>(() => AuthService(locator<EncryptionService>()));

  runApp(MyApp());
}

위 코드에서 GetIt.instance를 사용하여 get_it의 인스턴스를 가져온 다음, registerLazySingleton 메서드를 사용하여 EncryptionServiceAuthService를 등록했습니다. 그러면 이제 이 두 서비스를 애플리케이션의 어느 곳에서든 사용할 수 있게 됩니다.

비밀번호 암호화 및 get_it을 사용한 주입

이제 get_it을 사용하여 한 번만 암호화 서비스를 생성하고, 필요할 때마다 다른 곳에서 암호화 서비스를 사용할 수 있습니다. 아래는 이에 대한 코드 예제입니다.

class AuthService {
  final EncryptionService _encryptionService;
  
  AuthService(this._encryptionService);

  String encryptPassword(String password) {
    return _encryptionService.encrypt(password);
  }
}

위 코드에서 AuthServiceEncryptionService를 생성자를 통해 주입받고, 이를 통해 비밀번호를 암호화합니다.

이러한 방식으로 get_it을 사용하여 의존성을 주입하면, 코드의 가독성과 유지 보수성이 향상되며, 전역적으로 사용해야 하는 인스턴스를 효율적으로 관리할 수 있습니다.

get_it 라이브러리는 관리가 잘 된 의존성 주입을 위한 강력한 도구입니다. 비밀번호와 같은 민감한 정보를 안전하게 암호화하고 관리하는 데 활용할 수 있습니다.

이상으로 get_it을 이용하여 의존성 주입 및 비밀번호 암호화에 대해 알아보았습니다. 부족한 점이 있거나 추가로 궁금한 점이 있다면 언제든지 찾아주세요.