정리

언리얼 엔진의 자동 메모리 관리

C++의 메모리 관리 문제점

C++은 저수준 언어로 메모리 주소에 직접 접근하는 포인터를 활용하여 오브젝트를 관리한다.

그래서 프로그래머가 직접 new를 통해 메모리를 할당하고, delete를 통해 해지해야 하는데, 이를 잘 지키지 못할 경우 여러 문제가 생길 수 있다.

포인터로 인하여 생기는 메모리 관리의 문제점들은, 한 번의 실수라도 프로그램을 종료 시킬 수 있는 치명적인 이슈이다.

Java / C# 같은 고수준 언어들은 이러한 문제 해결을 위해 포인터를 버리고, 가비지 컬렉션 시스템을 도입했다.

가비지 컬렉션이란?

Garbage Collection : 프로그램에서 더 이상 사용하지 않는 오브젝트를 자동으로 감지해 메모리를 회수하는 시스템

가비지 컬렉션은 보통 동적으로 생성된 모든 오브젝트 정보를 모아둔 저장소를 사용해 사용되지 않는 메모리를 추적한다.

가장 흔하게 사용되는 방식은 Mark-Sweep 방식의 가비지 컬렉션이다.