IT/Spring

[Spring] Reflection

어린이개발자 2025. 1. 3. 20:07

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