더북(TheBook)

36.2 가비지 수집기

C#에서 메모리 관리는 닷넷에 내장된 GC라는 가비지 수집기가 관리합니다. 개발자가 따로 코드로 관리하는 것이 아니라 GC가 메모리를 관리하는 구조입니다.

가비지 컬렉션은 큰 호텔의 주차 요원과 역할이 비슷합니다. 우리가 자동차를 타고 호텔 앞에서 내리면, 자동차를 주차하고 시동을 끄는 등의 행위를 운전자가 아닌 주차 요원이 대신해 주는 시스템입니다. 이때 현실 세계에서는 비용이 발생하지만 C#에서는 GC가 알아서 해 줍니다. 특정 클래스의 인스턴스를 생성한 후 해당 인스턴스를 제거하는 코드를 따로 사용하지 않아도 되는 것이 GC 엔진이 하는 역할입니다.

예를 들어 Car 클래스에 소멸자를 만들려면 다음과 같이 표현할 수 있습니다. 물결 기호 ~와 클래스 이름을 함께 사용합니다.

class Car
{
    ~Car()
    {
        //개체가 소멸될 때 필요한 기능 수행
    }
}

소멸자는 정적 호출 및 인스턴스 호출과 상관없이 형태가 동일합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.