리플렉션(Reflection)이란?
자바에서 제공하는 리플렉션(Reflection)은 C, C++과 같은 언어를 비롯한 다른 언어에서는 볼 수 없는 기능입니다. 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩(Dynamic Loading)하여 생성자(Constructor), 멤버 필드(Member Variables) 그리고 멤버 메서드(Member Method) 등을 사용할 수 있도록 합니다.
그러니까, 컴파일 시간(Compile Time)이 아니라 실행 시간(Run Time)에 동적으로 특정 클래스의 정보를 객체화를 통해 분석 및 추출해낼 수 있는 프로그래밍 기법이라고 표현할 수 있습니다.
읽어볼만한 글
- Reflection 간단한 정의 : 리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입, 변수들을 접근할 수 있도록 해주는 자바 API
- Reflection 기법 : 리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다. 투영, 반사 라는 사전적인 의미를 지니고 있다
- Reflection을 사용하는 기술들 : Spring framework, Hibernate, Jacson
- Reflection의 오해와 진실
- Reflection 기능을 사용하는 방법 (class/method/variable/annotation)
- 스프링 컨테이너에서 클래스를 Bean객체로 등록하는 방법https://dublin-java.tistory.com/53
- Guide to Java reflection
- 오라클 레퍼런스 : 자바 리플랙션의 사용