LinkedIn

Java Reflection과 DI(Dependency Injection)

2020. 11. 7. 13:46 | 자바 개발자되기

Reflection

  • 자바의 리플릭션은 특정 클래스의 타입을 모르더라도 해당 클래스의 정보(변수, 메소드)를 조회하거나 수정할 수 있는 기능으로 Java에서는 다양한 Reflection API를 제공
  • Reflection을 활용하여 다양한 기능을 개발할 수 있지만 무턱대로 사용하다가는 성능 이슈를 발생시킬 수 있음

DI(Dependency Injection)

  • 의존성 주입
    • 의존성 : A 클래스는 B 클래스를 멤버변수로 갖고 있다면 A는 B에대한 의존성 존재
    • 주입 : 내부에서 객체를 생성하여 주입하는 것이 아닌 외부에서 생성하여 주입

외부에서 의존성을 주입해주려면 어떤 정보들이 필요할까?

  1. A 클래스의 정보 확인(변수, 메소드)
  2. 멤버 변수 중 의존성 주입 대상을 확인(어노테이션 확인)
  3. Class 객체를 통하여 주입이 필요한 대상의 생성자를 통하여 인스턴스 생성
  4. 3번에서 생성한 인스턴스를 A에 주입

→ 위 절차를 진행할 때 Reflection API 사용