본문으로 건너뛰기
실습하기

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

가비지 컬렉션(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 # 가비지 컬렉션 대상

이 예제에서 objMyClass의 인스턴스를 참조합니다.

del obj를 호출하여 참조를 제거하면, 가비지 컬렉션이 MyClass 인스턴스를 회수할 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!