
JVM 가비지 컬렉터(GC) 기초
·
JAVA/JVM
GC이란C/C++ 같은 OS 의존도 높은 Native 언어와 Java 언어의 차이C/C++ 같이 프로그램 한 언어가 직접 OS가 실행하는 언어들은 Memory Leak 문제를 많이 겪는다. Memory Leak 란? “동적으로 할당한 메모리가 free(할당 해제)될 수 없는 상태가 된 것.” 이다. 즉, C/C++ 같은 Native 언어들은 heap을 할당하고 해제하는 해동을 오로지 개발자들의 코드로 이루어진다. 따라서 이러한 heap 메모리 관리를 잘못하여 동적으로 할당한 메모리가 더이상 free 할 수 없어서 사용하지도 않는 데이터가 메모리를 차지하여 성능 저하 및 심하면 프로그램 강제 종료가 되는 상황을 말한다. Java 언어에서는 메모리 해제한 적 없는데? 위 문제를 보고 이런 생각이 들 것이다...