리플렉션

· Java
Reflection Reflect: 1. (거울·유리·물 위에 상을) 비추다 2. (빛·열·음을) 반사하다, 반향을 일으키다 반사체라는 뜻을 지니는 Reflection은 무엇을 반사한다는 것일까? JVM에서 자바 애플리케이션을 실행하기 위해서는 소스 코드가 컴파일러를 통해 바이트 코드로 변환되고, 변환된 바이트 코드는 클래스 로더를 통해 JVM 내부의 메모리 영역에 저장되는 과정을 거친다. 과정을 거치며 Method Area에 클래스의 필드, 메서드, 인터페이스 등의 메타 정보가 저장되게 된다. Reflection은 바로 해당 JVM 내의 메서드 영역의 데이터를 참조하여 클래스를 참조하고 검사하는 기능이다. 컴파일 하기 전에 소스 코드가 클래스라면 컴파일 후에 Method Area에 저장된 해당 클래스의..