가비지 컬렉션 (Garbage Collection)
비유: 자동 청소부 vs 수동 청소
언어별 메모리 관리 방식:
C/C++ (수동) Python/Java (자동 GC)
개발자가 직접 청소 청소부(GC)가 알아서 청소
malloc() → 할당 new Object() → 할당
...사용... ...사용...
free() → 해제 ✋ // 자동으로 해제됨 🤖
↑
잊으면 누수!GC가 있어도 누수가 생기는 경우
python
# Python에서도 누수 가능한 패턴!
cache = [] # 전역 리스트
def 문제있는함수():
data = [0] * (25 * 1024 * 1024) # 25MB
cache.append(data) # 전역에 추가
# GC가 있어도 cache가 참조 중이라 해제 못 함!
# → 참조가 남아있으면 GC도 수거 불가GC의 한계: 참조(Reference)가 남아있으면 수거 불가 → 이 문서에서 "가비지 컬렉션 개선" 권장사항이 나온 이유
출처: Codyssey-B1/B4-2