출세한 익룡님의 면접 결과

-30

총점

3

질문 수

0

좋아요

8

조회수

종합 평가

Generational GC의 전체적인 구조(Young/Old 영역 구분, eden·survivor 구성, minor/major GC 개념)를 어느 정도 파악하고 있어 기본 용어에 대한 친숙도가 있습니다. 객체가 Survivor 영역에서 어떻게 나이를 먹고 Old Generation으로 승격되는지, 즉 age 카운터 증가와 승격 임계값(TenuringThreshold) 메커니즘에 대한 이해가 부족합니다. JVM의 Object Header에 저장되는 age bit 구조와 -XX:MaxTenuringThreshold 옵션의 동작 원리를 먼저 정리한 뒤, minor GC 사이클 전체 흐름(eden → survivor → age 증가 → promotion 조건)을 단계별로 직접 그려보며 학습하시길 권장합니다.

질문별 상세 분석

커뮤니티 공개
Q1B

Generational GC란 무엇인가요? Young/Old 영역의 역할은?

응답 내용

GC를 진행할 때 자주 쓰이는 것을 메모리에서 정리하는 것을 방지하기 위해서 GC를 진행할 때마다 세대를 올리는 방식을 의미합니다. Young Generation은 eden, survivor 1, survivor 0로 구성되며 minor gc에서 살아남을 때마다 한 단계씩 격상됩니다. eden 이후에 객체가 살아남았다면 Old Generation으로 이동하며 major GC 실행시에만 GC가 진행이 됩니다.

AI 피드백

Generational GC의 핵심 동기인 "약한 세대 가설(Weak Generational Hypothesis)"—대부분의 객체는 생성 직후 금방 죽는다—을 자신의 언어로 풀어 설명한 점은 좋은 접근입니다. Young Generation의 eden, survivor 0/1 구성과 Minor GC에서 살아남을 때마다 세대가 올라가는 흐름도 대체로 정확합니다. 다만 "eden 이후 살아남으면 바로 Old Generation으로 이동"한다고 하셨는데, 실제로는 survivor 영역을 일정 횟수(Tenuring Threshold, 기본 15회) 이상 통과한 객체가 Old로 승격(Promotion)되는 것이므로 이 부분을 보완하시면 더 정확한 설명이 됩니다. 심화 방향으로는 Minor GC 시 발생하는 Stop-the-World 비용, Card Table을 통한 Old→Young 참조 추적, 그리고 G1 GC처럼 Region 기반으로 세대 개념을 구현하는 방식까지 연결해 설명하실 수 있다면 원리 이해를 훨씬 깊이 있게 보여주실 수 있습니다.

Q2F

Survivor 영역에 있는 객체가 Old Generation으로 승격되는 조건은 무엇인가요?

응답 내용

eden generation에 있는 객체가 minor gc에서 살아남으면 승격됩니다.

AI 피드백

질문의 핵심인 "Old Generation으로 승격되는 조건"에 대해 답변하지 않고, 이전 답변에서 이미 언급한 Eden에서의 생존 내용을 반복하셨습니다. 승격(Promotion)은 Eden이 아닌 Survivor 영역에 있는 객체가 Minor GC를 반복해서 생존하면서 age 카운터가 특정 임계값(기본적으로 15, -XX:MaxTenuringThreshold로 설정)에 도달했을 때 Old Generation으로 이동하는 것입니다. 즉, Eden에서 살아남은 객체는 바로 Old로 가는 것이 아니라 Survivor 0/1 사이를 오가며 age가 증가하고, 임계값을 초과하거나 Survivor 공간이 부족할 때 Old로 승격된다는 점을 함께 설명할 수 있어야 합니다. 예를 들어 "Survivor 영역에서 Minor GC를 거칠 때마다 age가 1씩 증가하고, age가 MaxTenuringThreshold를 초과하면 Old Generation으로 Promotion됩니다"와 같이 답변하시면 훨씬 정확한 설명이 됩니다.

Q3F

Survivor 영역에 있는 객체는 minor GC를 거칠 때마다 age가 어떻게 변하나요?

응답 내용

survivor 0 survivor 1 eden 순으로 변합니다

AI 피드백

질문은 Survivor 영역 객체의 age가 어떻게 변하는지를 물었는데, 답변에서는 survivor 0 → survivor 1 → eden이라는 공간 이동 순서를 말씀하셨습니다. 실제로는 minor GC에서 살아남을 때마다 객체의 age 카운터(age bit)가 1씩 증가하고, 이 값이 임계값(HotSpot JVM 기본값 15)에 도달하면 Old Generation으로 승격(promotion)됩니다. 또한 eden의 이동 순서도 survivor 0/1 이후가 아니라, eden에서 살아남은 객체가 survivor 영역으로 이동하는 구조입니다. 다음에는 "minor GC 생존 시 age가 1 증가하고, MaxTenuringThreshold에 도달하면 Old Generation으로 승격된다"는 흐름으로 답변해 보시길 권장합니다.

커뮤니티 공유 안내

• 이 결과는 AI가 분석한 내용이며, 학습 목적으로 커뮤니티에 공유됩니다.

• 좋아요를 눌러 유용한 답변에 반응을 남겨보세요.

• 개인정보는 포함되지 않으며, 면접 연습 개선을 위한 참고 자료로 활용됩니다.