패스잇
백엔드 개발 · 중급

Python의 메모리 관리와 가비지 컬렉션 동작 방식에 대해 설명해주세요.

힌트 · 레퍼런스 카운팅과 순환 참조 해결을 생각해보세요.

참조 카운팅세대별 가비지 컬렉션순환 참조gc 모듈메모리 풀

모범답안

Python은 자동 메모리 관리를 제공하며, 크게 두 가지 메커니즘을 통해 이루어집니다.

첫째는 참조 카운팅입니다. 모든 객체는 참조 횟수를 가지고 있으며, 이 횟수가 0이 되면 즉시 메모리에서 해제됩니다. 이는 간단하고 효율적이지만, 순환 참조 문제를 해결하지 못합니다.

둘째는 세대별 가비지 컬렉션입니다. 이는 순환 참조를 탐지하고 해결하기 위해 주기적으로 실행됩니다. 객체를 세대별로 분류하여, 오래된 객체일수록 덜 자주 검사합니다. gc 모듈을 통해 가비지 컬렉션 동작을 제어할 수 있습니다. 예를 들어, gc.collect()를 호출하여 명시적으로 가비지 컬렉션을 수행할 수 있습니다.

Python은 또한 작은 객체들을 효율적으로 관리하기 위해 메모리 풀을 사용합니다. 이를 통해 메모리 할당 및 해제의 오버헤드를 줄입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Python 면접 질문

← Python 면접 질문 전체 보기