[java] Guice의 모듈 관리
Guice는 Java를 위한 경량 의존성 주입(Dependency Injection) 프레임워크로써, 응용 프로그램의 객체간 의존성을 관리하는데 도움을 줍니다. Guice를 사용하면 모듈(Module)을 통해 의존성을 설정하고 주입할 수 있습니다.
모듈(Module)이란?
Guice는 모듈이라는 단위로 의존성을 관리합니다. 모듈은 Guice의 AbstractModule
을 상속받아 구현하며, 주입할 객체를 바인딩하는 역할을 수행합니다. 모듈은 다양한 기능을 가지고 있으며, 응용 프로그램에 필요한 의존성을 정의하고 구성할 수 있습니다.
예를 들어, 다음과 같은 모듈이 있다고 가정해봅시다:
public class MyAppModule extends AbstractModule {
@Override
protected void configure() {
bind(Service.class).to(ServiceImpl.class);
bind(Repository.class).to(RepositoryImpl.class);
}
}
위의 예제에서는 Service
인터페이스를 ServiceImpl
클래스와, Repository
인터페이스를 RepositoryImpl
클래스와 바인딩(bind)하도록 설정하였습니다.
모듈 등록하기
Guice를 사용하기 위해서는 응용 프로그램의 진입점(main 메소드 등)에서 모듈을 등록해야 합니다. 모듈은 Injector
를 생성할 때 사용됩니다.
public class MyApp {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyAppModule());
// 필요한 객체 주입 받아 사용
Service service = injector.getInstance(Service.class);
service.doSomething();
}
}
위의 예제에서 MyAppModule
모듈을 생성자에 전달하여 Injector
를 생성합니다. 그리고 getInstance()
메소드를 이용하여 필요한 객체(여기서는 Service
)를 주입받아 사용할 수 있습니다.
Guice를 사용하면 모듈을 등록하고 의존성을 주입받는 것이 간편해집니다. 의존성 변경이나 확장에 유연하게 대응할 수 있으며, 코드의 가독성과 재사용성을 높일 수 있습니다.
더 자세한 내용은 Guice 공식 문서를 참고하시기 바랍니다.