그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Java
Java

자바에서 클래스 정보는 어떻게 알아낼 수 있나요?

실무3/5
설계4/5
인간4/5
기초3/5

면접관의 질문 의도

Reflection API 사용법을 외우고 있는지가 아니라, 왜 이 메커니즘이 프레임워크에 필요하고 왜 일반 코드에서는 피해야 하는지를 함께 설명할 수 있는지를 본다. 동적 확장성과 성능·캡슐화·보안 비용을 같이 놓고 적용 기준을 말할 수 있느냐가 답변의 깊이를 가른다.

큐레이션 답변

학습 자료

자바 Reflection API는 런타임에 로딩된 클래스의 필드·메서드·생성자 정보를 조회하고, 컴파일 시점엔 모르는 타입을 동적으로 호출하게 해준다. Class·Method·Field 같은 메타 객체를 통해 어노테이션을 읽거나 private 멤버까지 접근하는 식으로 동작하며, Spring·Jackson·JPA 같은 프레임워크의 마법은 사실상 이 위에 얹혀 있다. 다만 타입 안전성을 우회하고 JIT 인라이닝을 막아 성능을 깎기 때문에, 일반 비즈니스 코드가 아니라 프레임워크 경계에서 제한적으로 쓴다.

좋은 답변 구조

  1. 01Reflection API가 해결하는 문제(컴파일 시점에 모르는 타입 조작)를 먼저 정의한다
  2. 02Class·Method·Field 등 핵심 메타 객체와 가능한 동작을 설명한다
  3. 03DI·ORM·직렬화 같은 프레임워크 활용 사례로 필요성을 든다
  4. 04캡슐화 약화·성능 비용·보안 리스크와 함께 적용 기준을 정리한다

자주 실수하는 포인트

리플렉션을 일반 비즈니스 로직에서 단축키처럼 써 캡슐화를 무너뜨린다
Method.invoke 비용이 일반 호출과 같다고 가정하고 핫패스에 그대로 둔다
setAccessible(true)로 private을 뚫는 행위의 보안·유지보수 영향을 가볍게 본다
프레임워크가 캐시하는 메타 객체를 매 호출마다 재조회해 비용을 부풀린다

실무 맥락

  • DI 컨테이너가 빈을 주입하고 어노테이션을 해석하는 내부 흐름을 추적해야 하는 환경
  • JSON·XML 직렬화 라이브러리가 임의 클래스의 필드를 매핑해야 하는 환경
  • 플러그인·SPI 구조로 런타임에 외부 구현체를 로딩해 갈아끼우는 시스템

본인 경험에 녹이는 힌트

어노테이션 기반 유틸이나 라이브러리를 직접 만들어본 경험을 Reflection 사용 범위 설계로 연결할 수 있다

리플렉션 호출이 있는 코드에서 성능 저하를 겪고 캐시·MethodHandle로 옮겨본 경험을 비용 평가 기준으로 풀 수 있다

Spring·Jackson 디버깅 중 스택 트레이스에서 Reflection 경로를 따라가본 경험을 프레임워크 내부 이해로 이야기할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1Reflection과 MethodHandle·LambdaMetafactory의 차이는 무엇인가요
Q2JIT 관점에서 Method.invoke 호출이 일반 호출보다 불리한 이유는 무엇인가요
Q3Java 9+ 모듈 시스템과 setAccessible은 어떻게 상호작용하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문