1. INTRO

2. IIFE

즉시 실행 함수 표현(IIFE, Immediately invoked Function Expression) 은 정의되자마자 즉시 실행되는 JavaScript Function 를 말한다.

(function() {
  statements
})()
// IIFE 내부에서 정의된 변수는 외부 범위에서 접근이 불가능하다.
(function() {
  var aName = "Mary"
})()

aName // Uncaught ReferenceError: aName is not defined
// IIFE를 변수에 할당하면 IIFE 자체는 저장되지 않고, 함수가 실행된 결과만 저장된다.
var result = (function() {
  var name = "Mary"
  return name
})()

// 즉시 결과를 생성
result // "Mary"

IIFE는 스코프 문제를 해결했지만 바로 실행한다는 점에서 모듈화의 해결책은 아니다.

이렇게 모듈기능은 반드시 해결해야할 과제였다. 그래서 제안된 것이 바로 AMD 와 CommonJS이다.

3. CommonJS & AMD