본문 바로가기

java(자바)

[java(자바)] 리플렉션(Reflection)이란? _디버깅의 눈물

자바의 리플렉션(Reflection)

 

리플렉션이란 실행 중인 자바 프로그램에서 클래스, 메서드, 필드 등의 정보를 접근 제어자와 관계없이 동적으로 가져오고 조작할 수 있는 기능을 말합니다. 리플렉션은 자바의 다른 기능들과 결합하여 다양한 프레임워크나 라이브러리에서 활용됩니다.

 

예를 들어, 스프링 프레임 워크에서는 리플렉션을 사용하여 IoC/DI를 구현합니다. Spring Bean Factory(IoC 컨테이너 구현체 중 하나)가 런타임에 해당 어노테이션이 붙은 클래스를 탐색하고 발견한다면, 리플렉션을 통해 해당 클래스를 Bean 객체로 등록합니다.

 

이외에도 리플렉션은 웹 요청 파라미터를 컨트롤러 메서드의 인자로 자동 데이터 바인딩할 때 사용됩니다. 리플렉션을 이용해 컨트롤러 메서드의 인자 타입을 확인하고, 웹 요청 파라미터를 해당 타입으로 변환하여 인자로 전달합니다.