메모리 누수
메모리 누수는 프로그램이 시스템 메모리를 천천히 소비하여 결국 메모리가 모두 소진되도록 만드는 일종의 프로그래밍 오류입니다. 메모리 누수는 서서히 발생하므로 컴퓨터 성능이 점차 저하되다가 프로그램이 충돌하거나 전체 운영 체제가 멈춥니다. 누수를 일으킨 프로그램을 종료하면 시스템 메모리가 확보되어 문제가 해결되지만, 해당 프로그램을 다시 실행하면 문제가 재발합니다.
메모리 누수는 프로그램이 더 이상 메모리를 필요로 하지 않는데도 메모리를 해제하지 않을 때 발생합니다. 프로그램이 프로세스를 실행하면 해당 프로세스를 실행하는 데 필요한 메모리 양을 시스템에 요청합니다. 프로세스가 완료되면 프로그램은 다른 프로그램이 사용할 수 있도록 해당 메모리를 시스템에 반환해야 합니다. 프로그램에 메모리를 확보하는 올바른 함수가 포함되어 있지 않거나 이러한 함수를 올바르게 사용하지 않으면, 프로그램은 대신 해당 메모리를 무기한 점유합니다. 나중에 프로그램이 해당 프로세스를 다시 실행하면 이미 할당한 메모리를 사용하는 대신 시스템에 더 많은 메모리를 요청하므로, 시스템에 다른 기능을 위한 메모리가 남지 않을 때까지 사용하는 RAM의 양이 증가합니다.
메모리 누수가 발생하는 프로그램은 오류가 수정될 때까지 실행할 때마다 계속 메모리를 누수합니다. 다행히 소프트웨어 개발 키트에는 프로그램의 소스 코드에서 메모리 누수를 확인할 수 있는 디버거가 포함된 경우가 많습니다. 프로그램의 개발자가 오류를 찾으면 프로그램을 업데이트하고 패치를 배포할 수 있습니다.
NOTE: Java와 Python 같은 일부 프로그래밍 언어는 "가비지 컬렉션"이라는 메모리 관리 기법을 사용합니다. 이 기법은 메모리를 자동으로 회수하며 많은 메모리 누수 오류를 해결할 수 있지만, 모든 오류를 해결할 수 있는 것은 아닙니다.
지식 테스트하기