본문으로 건너뛰기

가비지 컬렉션으로 메모리를 관리하는 방법

가비지 컬렉션으로 메모리를 관리하는 방법

가비지 컬렉션(Garbage Collection)은 프로그램에서 더 이상 사용되지 않는 메모리(컴퓨터 내 임시 저장장소로 객체를 저장)를 자동으로 찾아내어 회수하는 것을 뜻합니다. 가비지 컬렉션은 메모리 누수(Leak)를 방지하고 프로그램의 효율성을 높입니다.


클래스에서 변수를 저장하는 경우

클래스에서 변수를 저장하면 해당 변수가 참조하는 객체는 메모리에 계속 유지됩니다. 이 객체는 해당 변수가 가비지 컬렉션 대상이 될 때까지 메모리에서 제거되지 않습니다.

변수를 저장하는 클래스 예시
class MyClass:
def __init__(self, data):
self.data = data

# 객체 생성 및 참조
obj = MyClass([1, 2, 3])

이 예제에서 obj 객체는 MyClass의 인스턴스를 참조하고,[1, 2, 3]이라는 리스트를 data 변수에 저장합니다.

여기서 obj가 존재하는 한, 가비지 컬렉션은 이 객체를 회수하지 않습니다.


클래스에서 변수를 저장하지 않는 경우

클래스에서 변수를 저장하지 않으면, 가비지 컬렉션은 해당 객체에 대한 참조가 없어질 때 인스턴스를 자동으로 메모리에서 회수됩니다.


변수를 저장하지 않는 클래스 예시
class MyClass:
pass

obj = MyClass() # 객체 생성 및 참조

del obj # 참조 제거, 가비지 컬렉션 대상

이 예제에서 obj 객체는 MyClass의 인스턴스를 참조합니다. 하지만 del obj를 통해 이 참조를 제거하면, 가비지 컬렉션은 MyClass 인스턴스를 회수할 수 있습니다.