면접질문

기술면접 - 가비지 컬렉션이란 무엇인지 설명해주세요.

작성자 정보

  • 마스터 작성
  • 작성일

컨텐츠 정보

본문

Q - 가비지 컬렉션이란 무엇인지 설명해주세요.

A - 가비지 컬렉션은 사용하지 않는 메모리를 자동으로 찾아서 회수하는 메모리관리 프로그램입니다. 

 

[GPT]

가비지 컬렉션(Garbage Collection, GC)은 컴퓨터 프로그래밍에서 자동 메모리 관리의 한 형태로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 더 이상 사용되지 않는 영역, 즉 '가비지'나 '쓰레기'라고 불리는 메모리를 자동으로 찾아서 회수하는 과정을 말합니다. 이 과정을 통해 메모리 누수를 방지하고, 프로그램이 메모리를 보다 효율적으로 관리할 수 있도록 돕습니다.


가비지 컬렉션의 주요 기능

  1. 메모리 누수 방지: 프로그램이 사용 중인 메모리를 제외하고, 더 이상 참조되지 않는 메모리를 자동으로 찾아내어 시스템에 반환합니다. 이를 통해 메모리 누수를 방지할 수 있습니다.
  2. 메모리 관리 자동화: 개발자가 메모리 할당과 해제를 직접 관리할 필요가 없어지므로, 메모리 관리에 드는 수고를 줄일 수 있습니다.
  3. 프로그램의 안정성 향상: 메모리를 효과적으로 관리함으로써, 프로그램의 안정성과 성능을 향상시킬 수 있습니다.

 

가비지 컬렉션의 작동 원리

가비지 컬렉션은 크게 두 단계로 이루어집니다.

  1. 가비지 탐지:가비지 컬렉터는 더 이상 프로그램에서 사용되지 않는 메모리 영역을 탐지합니다. 이를 위해, '도달 가능성(Reachability)' 개념을 사용하여, 프로그램의 루트 집합(root set)에서 출발하여 접근할 수 있는 객체만이 유효한 객체로 간주합니다. 루트 집합은 전역 변수나 활성 스택 프레임 등에서 참조하는 객체들을 말합니다. 이 과정에서 도달할 수 없는 객체들은 가비지로 간주됩니다.
  2. 메모리 회수:탐지된 가비지에 해당하는 메모리 영역을 해제하고, 시스템에 반환합니다. 이렇게 회수된 메모리는 다시 사용할 수 있게 됩니다.

 

가비지 컬렉션의 장단점

장점:

메모리 관리를 자동화하여 개발자의 부담을 줄여줍니다.

메모리 누수를 방지하여 프로그램의 안정성을 향상시킵니다.

 

단점:

가비지 컬렉션 과정이 예측할 수 없는 시점에 실행되어 프로그램의 성능에 영향을 줄 수 있습니다.

모든 가비지를 100% 탐지하지 못할 수도 있으며, 가비지 컬렉션 알고리즘에 따라 오버헤드가 발생할 수 있습니다.

 

가비지 컬렉션은 Java, .NET 언어 등 많은 현대 프로그래밍 언어와 시스템에서 중요한 메모리 관리 기법으로 사용됩니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

최근글


새댓글


알림 0