C/C++과 같이 프로그래머가 직접 메모리 관리를 하지 않고 레퍼런스 카운트(Reference Counts)와 가비지 컬렉션(Automatic Garbage Collection)에 의해 관리됩니다.
👍 데이터 구조, 힙과 스택에 대해 궁금하다면 아래에 링크를 클릭해주세요.
python은 레퍼런스와 객체를 이용해 메모리를 관리합니다.
- 레퍼런스 : 지역 변수, 매개 변수를 뜻하고 객체의 주소를 의미하고 스택 영역에 할당됩니다.
- 객체: 실제 데이터가 저장된 곳으로 데이터 타입에 맞게 힙 영역에 메모리를 할당합니다. class 같은 객체도 이 곳에 포함됩니다.
레퍼런스 카운트
Last In First Out
)Last In First Out
: 스택 메모리의 특징으로 나중에 할당된 메모리가 먼저 해제됩니다.(후입선출)
파이썬 코드를 예시로 한다면
빨간색 상자
하늘색 상자
파란색 상자
Automatic Garbage Collection
Automatic Garbage Collection은 아직 이해하지 못해서 순환 참조 이슈를 해결한다는 정도만 알고 있습니다 ㅠㅠ
참고자료
파이썬에서 함수 호출 시 레퍼런스와 객체의 메모리 관리 구조에 대해 궁금했는데 객체는 힙에서 관리하고 레퍼런스는 스택에서 관리하는거군요! 덕분에 파이썬 작동 구조가 좀 이해되네요 감사합니다 :)