코딩하는 임초얀

Story 01. 레퍼런스 카운트와 가비지 컬렉션 본문

윤성우의 열혈 파이썬 중급편

Story 01. 레퍼런스 카운트와 가비지 컬렉션

초얀 2022. 7. 27. 22:53

이전 글 >> <윤성우의 열혈 파이썬 중급편(2019)>

다음 글 >> Story 02. 수정 가능한 객체와 수정 불가능한 객체


가비지 컬렉션

>>> s = 'Garbage Collection'

이 코드에 대한 표현은,

  • 변수 s가 문자열 'Garbage Collection'을 참조한다
  • 변수 s가 문자열 'Garbage Collection'을 레퍼런스한다

레퍼런스 카운트가 0이 되면 객체는 메모리에서 없어진다.

바로 없어지는 것은 아니고 시스템에 시간적인 여유가 생길 때 소멸시킨다.


파이썬 인터프리터

우리가 파이썬 코드를(스크립트를) 작성하고 실행하면 이 코드는 먼저 '바이트 코드'라는 것으로 변환되어 저장된다.

이 바이트 코드는 '파이썬 가상 머신(Python Virtual Machine)' 위에서 실행된다.

즉 실제 파이썬 프러그램의 실행 주체는 PVM이라 할 수 있으며 PVM에 의해 가비지 컬렉션도 진행된다.

 

여기서 파이썬 코드 변환기와 가상 머신, 그리고 기본적으로 포함되는 각종 라이브러리들을 묶어서 '파이썬 인터프리터'라 한다.

 

파이썬 인터프리터는 그 종류가 다양한데 기본적으로 PVM의 구현 방식에 따라 나뉜다.

  • CPython
    • PVM이 C언어로 구현되어 있는 가장 일반적이고 널리 사용되는 인터프리터
  • Jython
    • PVM이 자바로 구현되어 있어서 자바에 대한 접근성이 좋은 인터프리터
  • IronPython
    • 마이크로소프트 사의 닷넷 기반으로 만들어지고 또 그 위에서 동작하는 인터프리터
Comments