자바 Reflection , 스프링 DI
Reflection은 구체적인 클래스를 몰라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있는 자바 API JVM이 실행되면 사용자가 작성한 자바코드가 컴파일러를 거쳐 바이트 코드로 변환되어 static 영역에 저장되는데, Reflection API는 해당영역에서 값을 가져옴. 정확히는 JVM의 메모리 영역에서 가져온다. 어플리케이션을 실행하면 작성한 자바 코드는 컴파일러에 의해 .class 형태의 바이트 코드로 변환되고, 이 정보들은 클래스 로더를 통해 JVM 메모리 영역에 저장된다. 그리고 클래스 정보를 통해 객체가 생성된다면 이는 JVM 힙 영역에 저장된다. 즉, JVM의 메모리영역에서 클래스의 정보를 가져올 수 있다. 다시! 리플렉션이란, 어플리케이션이 실행되어 JVM 메모리 영역에 클래스 ..