[Python] Garbage Collection

2026. 2. 15. 12:18·Language/Python

Garbage Collection(GC)

Python의 모든 객체는 자신이 얼마나 많이 참조되고 있는지 refcnt 값을 가집니다. Garbage Collector는 데이터를 순회하면서 refcnt=0이 되는 객체를 찾아 garbage collection을 수행합니다.

__del__(소멸자, Destructor)

Python 클래스를 정의할 때 지정할 수 있는 함수입니다. 만약 GC가 시행될 때 해당 객체의 클래스에 __del__이 선언되어 있다면, 이를 실행합니다.

class Garbage():
  def __init__(self):  # 생성자 : 인스턴스 생성시 실행됨
    print("object initialized")
  
  def __del__(self):  # 소멸자 : 인스턴스 삭제시 실행됨
    print("object deleted")

객체가 서로를 순환 참조할 경우, refcnt=0가 되는 일이 없습니다. 이 때는 garbage collector가 이들의 순환 참조 여부를 확인할 때 까지 __del__의 실행이 지연됩니다.

del

del은 __del__과 이름이 비슷하지만, 기능이 다릅니다. del x 실행 시, 변수 이름 x와 그 이름이 가리키던 객체 사이의 연결을 끊습니다. 즉, 해당 객체의 참조 횟수 refcnt를 1 감소시킵니다.

a = [1, 2, 3]  # '1'의 refcnt = 1
b = a[0]  # '1'의 refcnt = 2
del a[0]  # 맨 앞 요소를 삭제 -> '1'의 refcnt = 1

print(int_list)  # [2, 3]

만약 x가 그 객체를 가리키던 마지막 이름표였다면, 참조 횟수가 0이 되어 garbage collector의 삭제 대상이 됩니다. 하지만 다른 변수(y = x)가 여전히 가리키고 있다면, 객체는 메모리에 그대로 남습니다.

728x90

'Language > Python' 카테고리의 다른 글

[Python] Library | 08. asyncio  (0) 2026.02.15
[Python] Closure  (0) 2026.02.15
[Python] 동시성과 GIL(Global Interpreter Lock)  (0) 2026.02.15
[Python] Syntax | 02. List  (0) 2026.02.15
[Python] Syntax | 01. yield  (0) 2026.02.15
'Language/Python' 카테고리의 다른 글
  • [Python] Library | 08. asyncio
  • [Python] Closure
  • [Python] 동시성과 GIL(Global Interpreter Lock)
  • [Python] Syntax | 02. List
Rayi
Rayi
  • Rayi
    아카이브
    Rayi
  • 전체
    오늘
    어제
    • 분류 전체보기 (289) N
      • CS (40) N
        • CV (2)
        • PS (37) N
      • Reveiw (19)
        • Paper (19)
        • Github (0)
      • ML (13)
        • Pytorch (5)
      • Language (68)
        • Python (17)
        • JavaScript (32)
        • TypeScript (16)
        • C++ (3)
      • IDE (12)
      • Git (13)
      • Frontend (77)
        • React (8)
        • ReactNative (6)
        • SolidJS (20)
        • CSS (12)
      • Backend (44)
        • DB (18)
        • Node.js (11)
      • UI (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    modal
    PyTorch
    PRISMA
    python
    ps
    ML
    mongo
    backend
    vscode
    deploy
    CV
    react
    frontend
    review
    GAN
    Git
    CSS
    nodejs
    Three
    CS
    ReactNative
    Express
    API
    figma
    js
    postgresql
    expo
    ts
    SOLID
    DB
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Rayi
[Python] Garbage Collection
상단으로

티스토리툴바