모든 토글을 열고 닫는 단축키
Windows : Ctrl + alt + t
Mac : ⌘ + ⌥ + t
1) Module이란?
💡 모듈(Module)은 **Javascript를 파일 단위로 분리된 코드 덩어리**를 일컫습니다.
여기서 **Javascript 파일은 특정한 기능을 가진 여러 개의 함수와 변수들의 집합체입니다.
1. 모듈(Module)은 하나의 모듈에서 다른 모듈을 호출하여 사용할 수 있습니다.
2. 모듈(Module)은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있습니다.
3. 보통 1개의 파일이 1개의 모듈**이 됩니다.
modularize) 됩니다.CommonJS를 기본으로 사용하게 됩니다. require 함수를 사용하여 다른 모듈을 불러올 수 있습니다. require 함수는 경로 혹은 문자열을 가지고 내부 알고리즘을 통해 모듈을 가져오고 종속성을 처리합니다.Javascript 환경에서 통합적인 인터페이스를 제공하기 위해 시작된 체계입니다. CommonJS와는 다르게 정적(Static)으로 모듈을 가져오며 비동기적 모듈 로딩과 순환 종속을 처리합니다.2) Module은 어떻게 사용할까요?
export 명령어를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다. → 이렇게 하면 하나의 큰 프로그램들을 작게 나누어, 다른 파일에서도 재사용 할 수 있습니다.import, require 명령어를 사용하면 외부 모듈의 기능을 가져올 수 있습니다.import, require는 어떻게 구분해서 사용할까요?import는 이제부터 학습하게 될 ES6(ES2015)로 모듈 시스템을 관리할 때 사용합니다.import 문은 코드의 최상위에 위치해야 합니다.require는 CommonJS로 모듈 시스템을 관리할 때 사용합니다.require 문은 코드의 어디에서든 사용할 수 있습니다.function add(a, b) {
return a + b;
}
그리고 작성한 함수를 다른 모듈로 내보내주기 위해 함수 앞에 코드를 추가합니다.
// modules/math.js
// add 함수를 외부로 노출시킵니다.
export function add(a, b) {
return a + b;
}
run.js 파일에서 불러들인 add함수를 사용하도록 작성합니다.
// modules/run.js
// ./math.js 파일에서 add 함수를 가져옵니다.
import { add } from './math.js'
console.log(add(3, 4)); // import한 add 함수를 실행합니다.
// Print: 7
import { add } from './math.js' 이 코드에서 ./math.js는 파일 경로를 나타내는데, ./으로 시작하는 경로는 ‘상대 경로’ 라는 것을 나타내게됩니다. 여기서, ‘상대 경로’란 현재 파일의 위치에 따라 다르게 해석되는 파일 또는 디렉토리의 위치를 나타내는 방식입니다. 즉, ./math.js는 현재 파일이 위치한 디렉토리에서 math.js 라는 이름의 파일을 찾는 것을 의미하게 됩니다. 이와 달리 ../는 상위 디렉토리를 나타내므로, ../math.js는 현재 파일이 위치한 디렉토리의 상위 디렉토리에서 math.js를 찾는 것을 의미합니다.export// 모듈을 호출했을 때, addArrowFunction 키 값에는 addArrowFunction 변수 함수가 가지고 있는 값이 할당된다.
export const addArrowFunction = (a, b) => {
return a + b;
}
화살표 함수 import
/ 화살표 함수 import /
import { addArrowFunction } from './math.js'
console.log(addArrowFunction(5, 3));
// Print: 8
익명 함수 export
/ 익명 함수 export /
// 모듈을 호출했을 때, addAnonymousFunction 키 값에는 (a,b){return a + b;} 익명 함수가 할당된다.
export const addAnonymousFunction = function (a, b) {
return a + b;
}
익명 함수 import
/ 익명 함수 import /
import { addAnonymousFunction } from './math.js'
console.log(addAnonymousFunction(9, 3));
// Print: 12
export default Object
/ export default Object /
// 모듈을 호출했을 때, add 키 값에는 add 함수가 들어가는 방법이다.
const defaultObject = {
add: add,
}
export default defaultObject;
default Object import
/ import default Object, 모듈 전체 가져오기 /
import * as math from './math.js'
console.log(math.default.add(13, 8));
// Print: 21
/ import default Object, 모듈 전체 가져오기 /
import { default as defaultObject } from './math.js'
console.log(defaultObject.add(17, 2));
// Print: 19
export default Function
/ export default Function /
// 모듈을 호출했을 때, defaultAddFunction 함수가 들어가는 방법이다.
const defaultAddFunction = function (a, b) {
return a + b;
}
export default defaultAddFunction;
default Function import
/ import default Function, 모듈 전체 가져오기 /
import * as math from './math.js'
console.log(math.default(20, 11));
// Print: 31
/ import default Function, default 모듈만 가져오기 /
import { default as defaultAddFunction } from './math.js'
console.log(defaultAddFunction(12, 16));
// Print: 28
export default 익명 함수
/ 익명 함수 export default /
// 모듈을 호출했을 때, 익명 함수가 반환되는 방법이다.
export default function (a, b) {
return a + b;
}
default 익명 함수 import
/ default 익명 함수 import /
import math from './math.js'
console.log(math(2, 1));
// Print: 3