자바스크립트는 웹 개발의 핵심 언어 중 하나로, 다양한 브라우저 환경에서 작동하는 클라이언트-사이드 스크립트 언어입니다. 이를 효과적으로 사용하기 위해 이해해야 할 중요한 개념 중 하나가 '네임스페이스'입니다.
'네임스페이스'는 변수와 함수 등의 식별자가 겹치지 않도록 하는 범위를 말합니다. '전역 네임스페이스'는 코드 어디에서나 접근할 수 있는 범위를 의미하며, 이 공간이 '오염'되면, 예상치 못한 버그가 발생할 수 있습니다.
전역 네임스페이스 오염은 두 가지 주요 문제를 일으킵니다. 첫째, 다른 스크립트에서 동일한 이름의 변수나 함수를 정의하면 기존 값이 덮어쓰여질 수 있습니다. 둘째, 의도치 않은 상호작용이 발생할 수 있습니다. 이런 문제를 피하려면 전역 네임스페이스 오염을 방지해야 합니다.
즉시 호출된 함수 표현식(IIFE, Immediately Invoked Function Expression)은 함수를 정의하자마자 즉시 실행하는 자바스크립트 패턴입니다. 이 패턴을 이용하면 전역 네임스페이스 오염을 방지할 수 있습니다.
IIFE는 자신이 속한 변수를 자신만의 스코프에 보관하므로, 전역 네임스페이스를 오염시키지 않습니다. IIFE를 사용하면 코드의 가독성을 높이고, 전역 네임스페이스 오염을 방지할 수 있습니다.
(function() {
var privateVariable = "I'm private";
console.log(privateVariable);
})();
console.log(typeof privateVariable); // "undefined"
위의 예제에서 보듯, IIFE 내부에서 선언된 privateVariable
는 IIFE 외부에서는 접근할 수 없습니다. 이렇게 IIFE를 사용하면 전역 네임스페이스 오염을 피할 수 있습니다.
자바스크립트에서 전역 네임스페이스 오염은 피해야 할 주요 문제 중 하나입니다. IIFE를 통해 이 문제를 효과적으로 피할 수 있습니다. 자바스크립트에서 안전하고 효율적인 코딩을 위해서는 이러한 패턴과 기법을 알고 있어야 합니다.