로딩
요청 처리 중입니다...

[Java] Reflection 개념 및 사용방법

 [Java] Reflection 개념 및 사용방법

기존 프로젝트에 테스트 코드를 분석하다가 모르는 부분이 있어서 검색해보니 해당 내용이 자바의 Reflection이라는 내용이였다. 전에 인프런 강의를 듣다가 Reflection 이라는 용어가 나왔지만, 그 당시에는 크게 중요하지 않아서 그냥 넘겼는데 테스트 코드를 보니 자바 Reflection을 많이 사용하고 있어서 공부할 겸 한번 내용을 정리해봤다.

우선, 자바의 Reflection 개념에 대해서 알아보자. Reflection(리플렉션)은 힙 영역에 로드된 Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메서드를 접근 제어자와 상관없이 사용할 수 있도록 지원하는 API이다.

여기서 로드된 클래스라고 함은, JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후 해당 클래스의 정보를 담은 Class 타입의 객체를 생성하여 메모리의 힙 영역에 저장해 둔 것을 의미한다. new 키워드를 통해 만드는 객체와는 다른 것임을 유...

# builder # 테스트 # 자바 # 리플렉션 # Type # Test # setAccessible # Reflection # Java # getDeclaredFields # getClass # get # forName # enum # Class타입 # class # 힙영역