[javascript] 전역 변수와 지역 변수의 메모리 할당 방식

JavaScript에서 변수는 전역 변수와 지역 변수로 나뉩니다. 전역 변수는 어디서든 접근 가능한 변수이고, 지역 변수는 특정한 범위 내에서만 접근 가능한 변수입니다. 전역 변수와 지역 변수는 메모리에 할당되는 방식이 다릅니다. 이번 포스트에서는 전역 변수와 지역 변수의 메모리 할당 방식을 알아보겠습니다.

전역 변수의 메모리 할당

전역 변수는 코드의 모든 부분에서 접근 가능하기 때문에 프로그램이 실행되는 동안 메모리에 계속해서 존재합니다. 이는 전역 변수가 큰 메모리 공간을 차지하며 프로그램의 성능에도 영향을 줄 수 있습니다.

var globalVar = 10;

위의 예시에서 globalVar는 전역 변수로 선언되었습니다. 이 변수는 프로그램 종료 시까지 메모리에 유지됩니다.

지역 변수의 메모리 할당

지역 변수는 특정한 범위 내에서만 접근 가능하므로, 해당 범위를 벗어나면 메모리에서 해제됩니다. 이는 프로그램의 메모리를 효율적으로 사용할 수 있게 해줍니다.

function myFunction() {
    var localVar = 20;
    
    // localVar 사용
}

위의 예시에서 localVarmyFunction 함수 내에서만 접근 가능한 지역 변수입니다. myFunction 함수가 실행되는 동안에만 메모리에 할당되며 함수 실행이 끝나면 메모리에서 해제됩니다.

메모리 해제와 가비지 컬렉션

JavaScript는 가비지 컬렉션(Garbage Collection) 메커니즘을 사용하여 더 이상 필요하지 않은 메모리를 자동으로 해제합니다. 이는 지역 변수가 범위를 벗어나면 해당 변수가 사용하던 메모리가 자동으로 해제된다는 것을 의미합니다. 가비지 컬렉션은 브라우저나 JavaScript 엔진에 따라 다를 수 있으며, 메모리 관리에 중요한 역할을 합니다.

결론

전역 변수와 지역 변수는 JavaScript에서 다른 메모리 할당 방식을 갖습니다. 전역 변수는 프로그램이 실행되는 동안 메모리에 유지되며 성능에 영향을 줄 수 있습니다. 반면에 지역 변수는 특정한 범위 내에서만 메모리에 할당되며, 해당 범위를 벗어나면 메모리에서 해제됩니다. 이러한 메모리 할당 방식과 가비지 컬렉션 메커니즘을 이해하면 JavaScript 프로그램의 메모리 관리에 효율적으로 작업할 수 있습니다.

참고 자료: