Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript의 (function() { } )() 구문이란? 즉시 실행 함수 표현식(IIFE) 쉽게 이해하기

JavaScript에서 (function() { } )() 구문은 즉시 실행 함수 표현식(IIFE, Immediately Invoked Function Expression)이라고 부릅니다. 이름 그대로 함수가 정의(생성)되는 순간 곧바로 실행되는 특수한 형태의 함수입니다.

기본 문법

IIFE의 기본적인 작성 방법은 다음과 같습니다.

(function() {
    // 실행될 코드
})();

동작 원리 이해하기

1. 첫 번째 괄호 쌍: 함수를 표현식으로 변환

함수 선언 전체를 괄호로 감싸면, JavaScript 엔진은 이를 일반적인 함수 선언이 아닌 함수 표현식으로 해석합니다.

function(){...}

즉, 다음과 같은 구조가 되는 것입니다.

(function(){...})

2. 두 번째 괄호 쌍: 함수 호출

그다음에 오는 괄호 쌍, 즉 두 번째 괄호는 앞서 만든 표현식이 반환한 함수를 실제로 호출하는 역할을 합니다. 이 덕분에 별도의 호출 코드 없이도 정의와 동시에 함수가 즉시 실행됩니다.

IIFE를 사용하는 이유

IIFE는 주로 다음과 같은 목적으로 활용됩니다.

  • 전역 스코프 오염 방지: 함수 내부에서 선언된 변수는 외부에서 접근할 수 없으므로, 전역 변수 충돌을 예방할 수 있습니다.
  • 초기화 코드 즉시 실행: 페이지 로드 시 한 번만 실행하면 되는 설정 코드를 깔끔하게 처리할 수 있습니다.
  • 비공개 상태 유지: 클로저와 함께 사용하면 외부에 노출되지 않는 비공개 데이터를 만들 수 있습니다.
(function() {
    var message = '안녕하세요!';
    console.log(message); // 정의되자마자 즉시 출력됨
})();

이처럼 IIFE는 정의와 실행을 하나의 구문으로 처리하는 간결하고 강력한 패턴으로, 모듈 패턴의 기반이 되는 중요한 개념입니다.