require js : AMD 기반 스크립트 로더. 자바스크립트 파일/모듈 로더. *AMD : 비동기적으로 스크립트를 로딩하기 위한 방법을 정의한 API를 의미. 사용목적 : 일반적으로 자바스크립트를 하나의 파일로 작성하는 경우가 많다. 그런데 코드가 점점 방대해지면 나중에 관리가 쉽지않다. 이를위해 기능이나 용도별로 여러 파일로 분할하여 사용한다. ### 모듈 정의와 사용 모듈을 정의하는 기본 형태는 다음과 같다. ```javascript // 모듈 정의의 기본 형태 define([ // 의존 모듈들을 나열한다. 모듈이 한 개라도 배열로 넘겨야 한다. 'js/util', 'js/Ajax', 'js/Event' ], function (util, Ajax, Event) { // 의존 모듈들은 순서대로 매개변수에 담긴다. // 의존 모듈들이 모두 로딩 완료되면 이 함수를 실행한다. // 초기화 영역 var i = 0; function increase() { i++; } function get() { return i; } // 외부에 노출할 함수들만 반환한다. return { increase: increase, get: get }; }); require([ 'js/foo' ], function (foo) { console.log(foo.get()); // 0 foo.increase(); console.log(foo.get()); // 1 }); ``` 로딩 순서가 중요하다면 아래와 같이 require를 중첩해서 사용하는 방법이 있다. ```javascript require(['js/first'], function (first) { require(['js/second'], function (second) { // }); }); ```