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

Service

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

My

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

Policy

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

© 2026 그알것 · What Still Matters

질문 목록Java
Java

JVM에서 GC 대상 객체를 판단하는 기준은 무엇인가요?

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

면접관의 질문 의도

GC를 "안 쓰는 객체를 알아서 치워주는 무엇" 정도로 외웠는지, Root Set 기반 도달 가능성 모델로 설명할 수 있는지를 가르려는 질문이다. 답에 따라 참조 타입 선택·누수 진단·튜닝 영역의 후속 질문이 갈린다.

큐레이션 답변

학습 자료

JVM의 GC는 "누군가 아직 쓰고 있나"를 Root Set에서 출발하는 참조 사슬로 판정한다. 루트는 활성 스레드의 스택 변수, 클래스의 정적 필드, JNI 핸들, 모니터를 잡고 있는 객체 등으로 구성되며, 여기서 참조로 도달 가능한 객체는 살리고 도달 불가능한 객체는 회수 후보로 둔다. SoftReference·WeakReference·PhantomReference는 같은 "참조"라도 GC가 다른 강도로 보고, 메모리 압박 정도와 참조 타입에 따라 회수 시점이 갈린다. 즉 "참조가 끊겼다"는 사실 자체가 아니라 루트에서 그 객체까지 닿는 경로가 끊겼느냐가 기준이다.

좋은 답변 구조

  1. 01GC가 회수 대상을 판정하는 기준이 "참조 끊김"이 아니라 "루트에서의 도달 가능성"임을 정의한다
  2. 02Root Set이 무엇으로 구성되는지(스택 변수·정적 필드·JNI·모니터 등) 구체적으로 나열한다
  3. 03강·소프트·위크·팬텀 참조가 같은 도달 모델 위에서 어떻게 다른 회수 강도를 갖는지 정리한다
  4. 04이 모델이 메모리 누수 진단·캐시 설계 같은 실무 결정에 어떻게 연결되는지 한 줄로 묶는다

자주 실수하는 포인트

참조 변수에 null을 대입하면 곧바로 메모리가 회수된다고 단정한다
Soft·Weak·Phantom의 회수 강도 차이를 못 가르고 모두 "약한 참조"로 묶어 설명한다
정적 필드나 ThreadLocal에 들어간 객체가 사실상 루트라는 점을 놓치고 누수를 못 짚는다
도달 가능성과 실제 회수 시점을 같은 것으로 봐서 GC 알고리즘에 따른 지연을 무시한다

실무 맥락

  • 장시간 운영 후 OOM이 떨어져 힙 덤프를 떠 retained size를 분석하는 상황
  • 사내 캐시 라이브러리에서 만료 정책과 참조 타입을 결정해야 하는 환경
  • ThreadLocal·정적 컬렉션을 쓰는 프레임워크 코드에서 누수 의심이 잡힌 환경
  • GC 로그·JFR로 Young·Old 영역 회수 패턴을 보며 튜닝 중인 JVM 서비스

본인 경험에 녹이는 힌트

힙 덤프에서 GC root까지 경로를 따라 누수를 좁혀 본 경험이 있다면 Reachability 모델을 실제로 적용한 사례로 풀 수 있다

캐시를 WeakHashMap·SoftReference로 바꿔 본 경험이 있다면 참조 타입 선택의 트레이드오프 사례로 연결할 수 있다

ThreadLocal·정적 컬렉션 누수를 잡았던 경험이 있다면 "숨은 루트"의 구체적 예로 이어 쓸 수 있다

이벤트 리스너·콜백 등록 후 해제 누락으로 누수가 났던 경험이 있다면 도달 가능성이 어디서 유지됐는지 설명하기 좋다

커뮤니티 인기 답변

전체 0개

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

관련 꼬리 질문

Q1SoftReference와 WeakReference는 어떤 기준으로 골라 쓰나요
Q2도달 불가능 판정 이후 실제 회수까지의 지연은 어떤 요인에 영향을 받나요
Q3ThreadLocal이 누수의 단골 원인이 되는 이유는 무엇인가요
Q4G1·ZGC·Shenandoah는 같은 Reachability 모델 위에서 무엇이 달라지나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문