Guidelines

가비지 μ»¬λ ‰μ…˜μœΌλ‘œ λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜λŠ” 방법

가비지 μ»¬λ ‰μ…˜(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 μΈμŠ€ν„΄μŠ€λ₯Ό νšŒμˆ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result