Reflection 개념에 대해 얕게 알고 자동으로 사용해 왔음을 알고 이참에 정리하고자 한다.
1. 정의
- Java 에서 런타임 시 클래스, 메서드, 필드 등의 정보를 동적으로 탐색하고 조작할 수 있는 메커니즘
2. 사용 예시
- 의존성 주입
> @Autowired 어노테이션이 붙은 필드가 메서드에 Reflection 을 사용해 적절한 빈을 주입
- AOP (Aspect-Oriented Programming)
> Reflection 을 사용해 메서드 실행 전후에 추가 로직을 삽입하거나 메서드 호출을 가로챔
- 커스텀 애너테이션 처리
3. 특징
- 유연성 (런타임에 동적으로 객체를 다룰 수 있어 확장성 제공)
- 코드 간소화
- 성능 저하
- 복잡성 증가 (코드가 동적으로 처리되기 때문)
4. 최적화
- Proxy 객체나 동적 프록시를 활용하여 Reflection 호출 최소화
'IT > Spring' 카테고리의 다른 글
[Spring] AOP (0) | 2025.01.06 |
---|---|
[Spring] JDK Proxy vs. CGLIB (0) | 2025.01.05 |
[Spring] Spring Batch 도입기 (1) | 2025.01.02 |
[Spring] WebFlux 테스트 코드 작성 (0) | 2024.11.27 |
[Spring] Spring Framework vs. Spring Boot (2) | 2024.11.14 |