기존 프로젝트에 테스트 코드를 분석하다가 모르는 부분이 있어서 검색해보니 해당 내용이 자바의 Reflection이라는 내용이였다. 전에 인프런 강의를 듣다가 Reflection 이라는 용어가 나왔지만, 그 당시에는 크게 중요하지 않아서 그냥 넘겼는데 테스트 코드를 보니 자바 Reflection을 많이 사용하고 있어서 공부할 겸 한번 내용을 정리해봤다.
우선, 자바의 Reflection 개념에 대해서 알아보자. Reflection(리플렉션)은 힙 영역에 로드된 Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메서드를 접근 제어자와 상관없이 사용할 수 있도록 지원하는 API이다.
여기서 로드된 클래스라고 함은, JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후 해당 클래스의 정보를 담은 Class 타입의 객체를 생성하여 메모리의 힙 영역에 저장해 둔 것을 의미한다. new 키워드를 통해 만드는 객체와는 다른 것임을 유...
#
builder
#
테스트
#
자바
#
리플렉션
#
Type
#
Test
#
setAccessible
#
Reflection
#
Java
#
getDeclaredFields
#
getClass
#
get
#
forName
#
enum
#
Class타입
#
class
#
힙영역
원문 링크 : [Java] Reflection 개념 및 사용방법