인도 IT·빅데이터 전문 매체 애널리틱스 인사이트가 파이썬 등 인기 프로그래밍을 이용한 개발 작업에 가비지 컬렉션(Garbage Collection) 작업도 중요하다고 주장했다. 그 이유는 무엇일까?
먼저, 작업을 실행할 때는 텍스트나 숫자, 기본 데이터형 중 하나인 불린(Boolean) 등 프로그램 객체를 이용한다. 리스트나 해시, 클래스 등 더 복잡한 데이터 구조도 포함되었다.
프로그램 객체의 콘텐츠는 쉬운 접근성을 위해 메모리에 유지한다. 컴퓨터 코드의 변수는 단순히 다양한 컴퓨터 언어의 메모리 내 객체 위치를 나타낸다.
보통 프로그래머는 초기 프로그래밍 언어로 애플리케이션에서 모든 메모리 관리에 책임을 진다. 애플리케이션에 적용하는 메모리 관리 방식은 크게 수동 메모리 관리와 자동 메모리 관리가 있다.
프로그래머는 자동 메모리 관리를 활용할 수 있어, 수동으로 메모리를 관리할 필요가 없다. 자동 메모리 관리의 가장 보편적인 방법은 기준계수를 사용하는 것이다. 런타임이 기준계수를 사용하여 모든 개체의 언급을 기록한다. 개체가 기준계수에 아무런 연결이 없을 때, 프로그램코드는 이를 사용하지 못하고 제거된다.
자동 메모리 관리는 수준의 메모리 개체를 걱정하지 않을 때, 프로그램 설계가 더 쉽다는 장점이 있다. 더 나아가 값비싼 메모리 누수나 불안전한 매달림 포인터를 방지하는데 도움이 될 수 있다.
그러나 자동 메모리 관리에도 단점이 존재한다. 모든 연결 상태를 확인하기 위해 소프트웨어의 메모리 사용 및 처리량이 더 많아야 한다. 게다가 자동 메모리 관리를 적용한 다수 프로그래밍 언어는 모든 실행을 중단하는 동시에 가비지 컬렉터를 검색하고 수집 객체를 제거해야 한다.
그러나 보통 자동 메모리 관리가 개발자에게 선사하는 장점이 단점과 함께 안겨주는 불편함보다 더 크다. 실제로 파이썬과 자바, 고(Go) 등 다수 현대 프로그래밍 언어가 자동화 메모리 관리를 채택한다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]