NaverD2: JavaScript 표준을 위한 움직임: CommonJS와 AMD
모듈화는 아래와 같이 세 부분으로 이루어진다.
scope: 자신만의 독립적인 실행 영역
definition: 모듈 정의는 exports 객체 이용
usage: 모듈 사용은 require 함수 사용
서버사이드 Javascript의 경우에 파일마다 독립적인 파일 스코프가 있기 때문에 파일 하나에 모듈 하나를 작성하면 간단히 해결됨.
브라우저에서는 필요한 모듈을 모두 내려받을 때까지 아무것도 할 수 없는 단점이 있었고 동적으로 <script>태그를 삽입하는 방법으로 가닥을 잡는다.
CommonJS에서는 이 문제를 해결하기 위해 파일을 require.define()으로 감싸 함수 클로저로 전역변수를 통제한다.
필요한 파일이 모두 로컬 디스크에 있어 바로 불러 쓸 수 있는 상황인 서버사이드에서는 CommonJS명세가, 필요한 파일을 네트워크를 통해 내려받아야 하는 브라우저와 같은 환경에서는 AMD가 보다 더 유연한 방법을 제공한다.
(AMD는 requireJS 같은 것이 있음)
'개발 > Javascript' 카테고리의 다른 글
global(전역)으로 설치한 npm package 목록 보기 (0) | 2016.09.18 |
---|---|
jQeury 없이 html 로드 후 자바스크립트 시작 (0) | 2016.08.12 |
[webpack] 읽을만한 자료들 (0) | 2016.07.11 |
자바스크립트 모듈(module) 이해하기 (0) | 2016.07.06 |
Understanding ECMAScript 6 (0) | 2016.02.22 |