기술면접 - 가비지 컬렉터에 대해 설명해주세요
작성자 정보
- 마스터 작성
- 작성일
본문
Q - 가비지 컬렉터에 대해 설명해주세요
A - 가비지컬렉터란 사용되지 않는 메모리를 자동으로 회수하는 기능입니다. 메모리 누수를 줄여줄 수있는 기능이지만 프로그램이 스스로 판단하여 작동하는 메모리 관리 시스템이어서 개발자가 관리를 할 수 없다는 단점이 있습니다.
[GPT]
가비지 컬렉터(Garbage Collector, GC)는 프로그램에서 더 이상 사용되지 않는 메모리를 자동으로 회수하는 기능을 말합니다. 프로그래밍 언어 중에서는 자바(Java), C#, 파이썬(Python) 등이 가비지 컬렉션을 지원합니다. 가비지 컬렉터의 주요 목표는 메모리 누수(memory leak)를 방지하여 프로그램의 안정성과 효율성을 높이는 것입니다.
가비지 컬렉션의 기본 원리
- 가용성 추적: 가비지 컬렉터는 루트 집합(root set)이라고 하는, 확실히 접근 가능한 객체들(예: 글로벌 변수, 활성 스택 프레임 내의 변수)에서 시작하여 참조를 따라가며 접근 가능한 객체를 찾습니다. 이 과정에서 도달할 수 없는 객체는 가비지로 간주됩니다.
- 메모리 회수: 가비지로 판단된 객체가 사용하던 메모리는 회수되어, 새로운 객체를 위해 다시 사용될 수 있게 됩니다.
가비지 컬렉션의 장점
- 메모리 관리의 자동화: 개발자가 직접 메모리를 관리할 필요가 없어, 메모리 누수와 같은 문제를 줄일 수 있습니다.
- 프로그램의 안정성 증가: 메모리가 자동으로 관리되므로, 메모리 할당 및 해제로 인한 오류가 줄어듭니다.
가비지 컬렉션의 단점
- 성능 오버헤드: 가비지 컬렉터가 작동할 때, 프로그램의 다른 부분의 실행을 잠시 멈출 수 있으므로, 실시간 시스템에서는 성능 문제가 될 수 있습니다.
- 예측 불가능한 작동 시점: 가비지 컬렉터는 개발자가 제어할 수 없으므로, 언제 가비지 컬렉션이 발생할지 예측하기 어렵습니다.
가비지 컬렉션은 메모리 관리를 효율적으로 하기 위한 중요한 기능 중 하나입니다. 그러나 실시간성이 중요한 애플리케이션 개발 시에는 가비지 컬렉션의 특징을 잘 이해하고 적절히 대응하는 것이 중요합니다.
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.