Skip to Content
Suffering builds character

2.리플렉션 API

런타임 시점에 프록시 객체를 동적으로 생성하기 위해서는 java.lang.reflect에서 제공하는 Reflection API를 통해 동적으로 프록시 객체(Dynamic Proxy)를 생성하여 활용할 수 있음

1.Reflection

Reflection의 사전적 의미는 다음과 같음

“거울 등에 비친 모습, (상태 속성 등의) 반영”

Java에서 Reflection이란 Java에 내장된 built-in API로,

컴파일 시점이 아닌, 런타임 시점에 동적으로 특정 클래스의 메타 정보를 확인하거나 조작하는 기능을 제공함

2. Reflection이 활용되는 사례

1-1. 동적 바인딩

컴파일 시점에 초기화가 되지 않았다고 하더라도, 동적으로 클래스들을 로딩할 수 있음

1-2. IDE의 추천 옵션 기능

IDE에서는 개발자에게 메서드 이름과 같은 자동 추천 기능을 제공해주기 위해 Reflection 기능을 활용

1-3. Spring F/W

JUnit을 포함하여 Spring에서는 Annotation을 분석하거나, 메서드를 호출(invoking)하고 설정 파일 기반으로 빈 객체를 생성할 때도 Reflection이 활용됨

Last updated on