Reflection API 사용법을 외우고 있는지가 아니라, 왜 이 메커니즘이 프레임워크에 필요하고 왜 일반 코드에서는 피해야 하는지를 함께 설명할 수 있는지를 본다. 동적 확장성과 성능·캡슐화·보안 비용을 같이 놓고 적용 기준을 말할 수 있느냐가 답변의 깊이를 가른다.
자바 Reflection API는 런타임에 로딩된 클래스의 필드·메서드·생성자 정보를 조회하고, 컴파일 시점엔 모르는 타입을 동적으로 호출하게 해준다. Class·Method·Field 같은 메타 객체를 통해 어노테이션을 읽거나 private 멤버까지 접근하는 식으로 동작하며, Spring·Jackson·JPA 같은 프레임워크의 마법은 사실상 이 위에 얹혀 있다. 다만 타입 안전성을 우회하고 JIT 인라이닝을 막아 성능을 깎기 때문에, 일반 비즈니스 코드가 아니라 프레임워크 경계에서 제한적으로 쓴다.
어노테이션 기반 유틸이나 라이브러리를 직접 만들어본 경험을 Reflection 사용 범위 설계로 연결할 수 있다
리플렉션 호출이 있는 코드에서 성능 저하를 겪고 캐시·MethodHandle로 옮겨본 경험을 비용 평가 기준으로 풀 수 있다
Spring·Jackson 디버깅 중 스택 트레이스에서 Reflection 경로를 따라가본 경험을 프레임워크 내부 이해로 이야기할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.