리플렉션을 번역하면 ‘거울에 비친 상, 모습’이란 의미다.
우리가 거울을 통해 내 모습을 확인하는 것처럼 실체가 아닌 거울에 반사, 반영된 이미지를 통해 어떠한 행위를 하는 것
이 리플렉션이라 할 수 있다.
그럼 자바에서 실체와 거울은 무엇을 의미할까?
JVM은 클래스 정보를 Class Loader를 통해 읽어와 JVM 메모리에 저장한다.
실체는 Class(자바 소스코드), 거울은 JVM 메모리 영역!
리플렉션은 클래스를 직접 조작하는 것이 아니라
거울에 반사된 사람을 보고 클래스를 검사하고 조작하는 기술
이라 보면된다.
리플렉션을 사용하면 생성자, 메서드, 필드 등 클래스에 대한 정보를 아주 자세히 알아낼 수
있다.
아니, 내가 직접 코드 작성했으면 클래스 정보를 모를 수가 없지 않나?
왜 굳이 어려운 리플렉션 기능이 있는 건가?