강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

하규영님의 프로필 이미지
하규영

작성한 질문수

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

세대별 컬렉션 이론

21분 경 Old generation의 GC 설명 질문입니다.

해결된 질문

작성

·

21

0

21분 경에 Old Generation을 설명하시면서 Full GC를 언급하셨는데, 해당 시점에는 Major GC가 발생해서 개체를 회수하게 되고 Major GC로 부터 살아남은 개체가 Metaspace 영역으로 옮겨지는 것 아닌가요??

물론 Full GC를 통해서도 Old Generation의 개체가 회수되기는 하겠지만 해당 부분 설명에선 Major GC로 언급하는 것이 그림과 일치하지 않나해서 질문드립니다

답변 3

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

엄밀이 말하자면 Major GC라고 하는 것이 맞을 수는 있겠습니다. 그러나 맥락상 Full GC라 하더라도 큰 문제는 없지 않나 생각합니다. AI 답변과 더불어 참고하시기 바랍니다. 😄

0

하규영님의 프로필 이미지
하규영
질문자

아 Major GC로부터 살아남는다고 Metaspace 영역으로 옮겨지지 않는 부분은 AI 답변으로 이해했습니다 ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다. 하규영님, 기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM 강의에서 Old Generation과 GC에 대해 질문 주셔서 감사합니다.

먼저, JVM에서의 Garbage Collection에 대해 개념을 정리하겠습니다.

  1. Major GC와 Full GC의 차이:

    • Major GC는 주로 Old Generation에서 객체를 회수하는 역할을 합니다. Major GC가 실행되면 Old Generation에 있는 불필요한 메모리를 회수합니다.
    • Full GC는 Heap 전체를 대상으로 수행되며, 모든 영역(Eden, Survivor, Old Generation)에서 불필요한 객체를 회수합니다. 따라서 Full GC는 수행 시간이 상대적으로 길며, 애플리케이션의 성능에 부정적인 영향을 미칠 수 있습니다.
  2. Metaspace의 역할:

    • Metaspace는 자바 8부터 Permanent Generation(PermGen)을 대체한 네이티브 메모리 영역입니다. 이 영역은 클래스 메타데이터를 저장합니다.
    • Major GC에서 살아남은 객체는 Old Generation에 남아 있으며, Metaspace로 이동하지 않습니다. Metaspace는 클래스 수준의 메타정보를 저장하기 때문에 객체의 이동과는 무관합니다.

하규영님께서 언급해 주신 부분에서, 강의의 설명이 혼란을 줄 수 있었다면, 해당 내용은 Major GC가 Old Generation을 대상로 한다는 점에 주의하여 들어주시면 좋겠습니다. Metaspace는 Heap 외부의 영역으로, Heap 내에서 객체 이동과는 다르게 관리됩니다.

아래 링크에서는 JVM의 GC 메커니즘과 관련된 더 많은 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 유사한 답변 링크를 추천해드렸습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

하규영님의 프로필 이미지
하규영

작성한 질문수

질문하기