Roots
항상 접근 가능한 시작점을 모읍니다.
루트에서 참조 그래프를 따라갈 수 있는 객체만 살아 있고, 끊긴 객체는 수거 대상이 됩니다.
항상 접근 가능한 시작점을 모읍니다.
객체가 다른 객체를 참조하는 경로를 따라갑니다.
루트에서 도달하면 메모리에 남깁니다.
경로가 끊기면 가비지 후보가 됩니다.
표시되지 않은 객체의 메모리를 회수합니다.
가비지 컬렉션을 이해하면 메모리 누수는 “객체가 남았다”가 아니라 “도달 가능한 참조가 남았다”는 문제로 보입니다.