가비지 컬렉션으로 메모리를 관리하는 방법
가비지 컬렉션(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
인스턴스를 회수할 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!