본문/내용
1. Python의 가비지 컬렉션 방식을 설명하세요.
Python의 가비지 컬렉션 방식은 주로 참조 카운트(reference counting)를 기반으로 하며, 주기적 순환 참조(사이클링)를 해결하기 위해 세대별 가비지 컬렉션을 함께 사용합니다. 참조 카운트는 각 객체별로 참조하는 변수의 수를 기록하여, 참조 수가 0이 되면 즉시 메모리를 해제합니다. 이는 대다수의 경우 빠르게 객체를 수거 가능하게 만듭니다. 그러나 순환 참조 문제들이 발생하는 경우에는 참조 카운트만으로 해결이 어려워, Python은 `gc` 모듈을 통해 순환 참조하는 객체들을 별도로 탐지하며 수거할 수 있습니다. Python의 가비지 컬렉션은 일반적으로 0. 01초 내에 수백만 개의 객체를 처리할 수 있으며, 2022년 기준 CPython의 메모리 누수율은 동일 크기의 애플리케이션에서 0. 02% 이하로 유지되고 있습니다. 세대별 가비지 컬렉션은 세대를 0, 1, 2로 나누어 0세대는 새로 생성된 객체, 1세대는 일정 기간 지나 참조가 유지된 객체, 2세대는 오랜 시간 동안 사용된 객체를 의미하며, 주기적 수집은 전체 시스템의 성능 향상과 메모리 효율성 개선에 크게 기여합니다. 이 방식은 특히 서버 애플리케이션에서…