Java와 C#에서 지원
보통 트레이싱 가비지 컬렉션(Tracing Garbage Collection)을 의미
메모리 누수를 막으려는 시도
주기적으로 컬렉션 실행
충분한 여유 메모리가 없을 때 컬렉션이 실행됨
매 주기마다, GC는 루트를 확인함
힙에 있는 개체에 루트를 통해 접근할 수 있는지 판단
접근할 수 없다면, 가비지로 간주해서 해제
되게 비용이 많이 드는 작업이지만 C#에서 최적화를 했음
가비지 컬렉션처럼, 개체에 대한 참조가 없을 때 개체가 해제됨
언제든 참조 횟수를 활용해서 특정 개체가 몇 번이나 참조되고 있는지 판단 가능
어떤 개체 A를 다른 개체 B가 참조할 때 횟수가 늘어남
B가 참조를 그만둘 때 횟수 줄어듦