리플렉션으로 DI 컨테이너 만들기
2021. 12. 21. 19:40
Java
java 리플렉션 리플렉션이란? 클래스 타입을 알지 못해도, 해당 클래스의 필드, 메서드 등 클래스의 메타 정보에 접근할 수 있도록 도와주는 자바 API이다. 즉, 리플렉션은 클래스나 메서드의 메타정보를 사용해서 동적으로 호출하는 메서드를 변경할 수 있다. 구체적인 클래스 타입을 알지 못한다? 이 의미는 스프링의 DI 컨테이너에서 @Service, @Repository를 생각하면 된다. 해당 애노테이션을 붙이면 new를 해주지 않아도 알아서 주입이 된다. 이걸 가능하게 하는 것이 리플렉션이다. 그럼 클래스 타입을 알지 못한다는 것은 무슨 상관일까? 이 부분은 해당 글이 마지막 DI 프레임워크 만들기에서 더상세하게 설명 하겠지만, 간략히 설명 하겠다. 코드로 예를 들어보자. 아래는 두 개의 클래스가 있다...