반응형

 

 

즉시 실행 함수 (IIFE, Immediately Invoked Function Expression)란?

 

한 번만 실행하고 다시는 실행할 필요가 없는 함수들이 있습니다. 이럴 때 꼭 알맞은 기법이 있는데 바로 즉시 실행 함수를 만들어서 사용하는 것입니다.

 

즉시 실행 함수는 함수를 정의하자마자 실행하게 만들어진 함수입니다. 뿐만 아니라 딱 1회만 실행되고 다시는 호출할 수 없도록 만들어졌습니다.

 

 

 

즉시 실행 함수의 특징

 

    1. 정의되자마자 바로 실행된다.

    2. 익명 함수를 사용한다.

    3. 딱 1회만 실행되고 다시는 실행하지 않는다.

    4. 초기화코드나 모듈화 패턴을 만들 때 유용하게 사용된다.

 

1. 즉시 실행 함수는 정의되자마자 바로 실행하도록 만들어져 있습니다. 그러므로 명백한 의도를 가지고 의도한 스코프, 의도한 코드 라인에 정확하게 선언 및 실행해야 합니다.

 

2. 즉시 실행 함수는 익명 함수를 이용해 만드는 것이 보통입니다. 정의하자마자 실행하고 휘발시킬 것이기 때문에 즉시 실행 함수에 함수명을 지어줄 필요가 없습니다.

 

3. 즉시 실행 함수는 단 한 번만 실행하는 함수입니다. 일단 1회 실행되고 나면 해당 즉시 실행 함수에는 더 이상 볼일이 없어야 합니다.

 

4. 3번과 같은 특성 때문에 즉시 실행 함수는 초기화를 하는 모듈을 만들 때 자주 사용됩니다. 초기화를 위해 1회만 실행하면 역할을 다하는 함수의 경우입니다. 모듈은 결합도를 낮춰서 외부 코드와 떼어놓고 독자적으로 여기저기서 사용하기 쉽도록 만드는 것이 핵심입니다. 즉시 실행 함수 안에 있는 변수들은 함수 외부에서 접근할 수 없기 때문에 전역 네임스페이스를 더럽히지 않습니다. 그래서 즉시 실행 함수는 라이브러리나 프레임워크 소스들에서 많이 사용됩니다. jQuery 같은 유명한 라이브러리도 즉시 실행 함수로 코드 전체를 감싸버린 형태로 만들어져 있습니다.

 

 

 

즉시 실행 함수 사용법

 

즉시 실행 함수 코드는 다음과 같이 만들 수 있습니다.

 

(function (params){
    // 실행코드
})(args);

 

그리고 이것을 응용한 모듈 패턴은 다음과 같습니다.

 

var module = (function (){
  // private code
  return {
  	// public property or method
  }
})();

 

클로저와 즉시 실행 함수를 이용한 모듈 패턴입니다. 리턴 값을 변수에 저장하여 private code로 만든 프로퍼티나 메소드를 외부에서 사용할 수 있습니다.

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기