자바스크립트 IIFE (Immediately Invoked Function Expression)

자바스크립트에는 IIFE 라고 불리는 흥미로운 패턴이 있습니다. IIFE는 “즉시 호출되는 함수 표현식”을 의미하며, 코드를 조직화하고 모듈화하는 방법으로 널리 사용됩니다. 이는 주로 스코프 문제를 해결하고 전역 네임 스페이스 오염을 방지하기 위해 사용됩니다.

IIFE의 기본 구조는 다음과 같습니다.

(function() {
    // IIFE 내부의 코드
})();

IIFE는 ()로 감싼 익명 함수를 선언하고, 바로 이어지는 ()를 통해 함수를 호출하는 것으로 구성됩니다. 이렇게 함으로써 함수가 즉시 실행되며, 내부의 코드가 실행됩니다.

IIFE의 가장 큰 장점 중 하나는 새로운 스코프를 생성한다는 것입니다. IIFE 내부에 선언된 변수는 주변 스코프에서 접근할 수 없기 때문에 전역 변수와 충돌할 가능성이 크게 줄어듭니다. 이는 코드의 격리와 모듈화를 도모할 수 있습니다.

또한, IIFE는 다양한 패턴과 함께 사용될 수 있습니다. 예를 들어, 즉시 실행되는 함수 표현식은 모듈 패턴의 기반이 되며, 모듈화된 코드를 필요에 따라 공개 및 비공개 API로 구성할 수 있습니다.

아래는 IIFE를 사용한 간단한 예제입니다.

(function() {
    var message = "Hello, IIFE!";
    console.log(message);
})();

// 출력 결과: Hello, IIFE!

이 예제에서는 IIFE 내에서 message라는 변수를 선언하고, 콘솔에 메시지를 출력하는 코드를 작성했습니다. IIFE는 바로 실행되기 때문에, 콘솔에는 “Hello, IIFE!”라는 메시지가 출력됩니다.

IIFE는 자바스크립트에서 모듈화를 구현하는 강력한 도구입니다. 이를 통해 전역 변수의 오염을 피하고, 코드를 보다 관리하기 쉽고 읽기 쉬운 구조로 구성할 수 있습니다.