Garbage Collecter(GC) 은 더 이상 사용되지 않는 메모리(쓰레기)를 자동으로 탐지하고 회수하는 메커니즘이다. 프로그래머가 일일이 free()나 delete를 호출하지 않아도, 런타임 중 자동으로 메모리 누수를 방지해준다.
| 즉, 가비지 컬렉터는 "더 이상 참조되지 않는 객체"를 찾아서 메모리에서 제거하는 시스템이다.
메모리 누수 방지: 수동 해제를 깜빡하면 발생하는 치명적인 누수를 막아준다.
생산성 향상: 개발자가 직접 메모리 해제를 신경쓰지 않아도 되므로 코드 작성이 간단해진다.
안정성 확보: dangling pointer나 double free와 같은 메모리 오류를 줄인다.
1. 참조 카운팅(Reference Counting)
객체가 몇 개의 변수에 참조되고 있는지 계산
참조 수가 0이 되면 삭제
2. 도달 가능성(Root Reachability)
루트(전역 변수, 스택 변수 등)에서 연결된 객체만 ‘살아있는 것’으로 간주
도달할 수 없는 객체는 "쓰레기"로 간주되어 제거


GC는 개발자의 메모리 해제 부담을 줄여주는 시스템
자동으로 메모리를 회수하므로 편리하지만, 때로는 성능 이슈 발생
C/ C++은 GC가 없으므로 메모리 해제를 직접 관리해야 함
Python, Java은 GC를 통해 안정성을 확보