♻️ 가비지 컬렉터(Garbage Collector)란?


자바는 개발자가 메모리를 직접 해제하지 않아도 되는 자동 메모리 관리 시스템을 가지고 있습니다.

이 시스템의 핵심이 바로 **가비지 컬렉터(Garbage Collector, GC)**입니다.

즉, 사용하지 않는 객체를 자동으로 정리해주는 청소부 역할을 합니다.


🧠 왜 GC가 필요할까요?

이유 설명
✅ 메모리 누수 방지 사용이 끝난 객체를 자동으로 제거하여 불필요한 메모리 점유를 막습니다.
✅ 안정성 향상 개발자가 실수로 메모리를 잘못 해제하는 것을 방지합니다.
✅ 개발 편의성 메모리 해제 코드를 직접 작성하지 않아도 됩니다.

📌 비유하자면, 자바는 자동 청소 로봇이 있는 집처럼, 쓰레기(더 이상 쓰이지 않는 객체)를 스스로 치웁니다. 우리는 청소 걱정 없이 생활에만 집중하면 됩니다.


🔄 GC의 동작 과정 (3단계)


1️⃣ Mark (마킹)

예시:
[✓] A → B → C   // 참조되어 있음 (살아있음)
[x] D           // 참조 없음 (GC 대상)
[x] E           // 참조 없음 (GC 대상)


2️⃣ Sweep (제거)

Before: [✓A][✓B][✓C][xD][xE]
After:  [✓A][✓B][✓C][  ][  ]