일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- http 모듈
- short-circuiting
- 명시도
- javascript
- 블록체인
- CSS
- NoSQL
- caverjs
- solidity
- ES6 모듈
- Hybrid Blockchain
- 안정 정렬
- #1인게임개발
- CSS Specificity
- Factory Functions
- 불안정 정렬
- skip ci
- npm
- react
- SQL
- Private Blockchain
- IP
- 3티어 아키텍처
- UTXO
- 텍스트 가운데 정렬
- Factory 함수
- CLI
- #유니티
- Relational Database
- 2티어 아키텍처
- Today
- Total
짹뚜 스튜디오
모듈 본문
해당 글은 모든 자바스크립트 개발자가 알아야 하는 33가지 개념에서 여덟 번째인 IIFE, modules and namespace 항목을 공부하면서 간단하게 작성한 글이다.
모듈이란?
프로그램의 기능을 독립적인 작은 부품들로 나눈 것을 모듈이라고 한다. 모듈을 하나의 파일로 볼 수도 있는데 거기에는 특정한 목적을 가진 함수들 또는 클래스 하나로 구성되어있다. 모듈의 장점은 다음과 같다.
- 유지보수: 프로그램의 기능들이 모듈로 되어있다면, 각 기능들을 손쉽게 수정하고 개선할 수가 있다.
- 네임스페이스: 함수 또는 블록 스코프 외에 다른 곳에 변수를 선언하면 모두 전역 변수가 되는데, 그러면 해당 변수가 필요하지 않은 곳에서도 접근이 가능해지게 된다. 이런 점을 프로그래밍할 때 지양하기 때문에 모듈을 통해서 해당 모듈 내에서만 변수에 접근이 가능해지게 만든다.
- 재사용: 똑같은 기능을 다른 프로그램에서도 사용할 때 같은 코드를 다시 작성할 필요가 없다.
자바스크립트에서 모듈을 사용하기 위해 CommonJS, AMD, UMD와 같은 모듈 시스템을 사용하지만 이 포스팅에서는 ES6 모듈 시스템에 대해서 알아보려고 한다.
ES6 모듈 시스템
다른 곳에서 함수나 변수를 사용할 수 있게 하려면 export를 사용하고 다른 모듈을 가져올 때는 import를 사용한다.
// module.js
export function display(){
console.log("Module");
}
// main.js
import {display} from './module.js';
display(); // 'Module'
export 하는 방식에는 위 코드와 같이 변수, 함수, 클래스를 선언할 때 앞에 export를 추가해주거나 코드 마지막 줄에서 export를 한 번에 할 수 있다.
// module.js
const count = 1;
function display(){
console.log("Module");
}
function inc(){
count++;
}
export {count, display, inc};
import를 해서 여러 개를 가져오고 싶다면 Objecct Destructuring을 이용하면 된다.
// main.js
import {count, display, inc} from './module.js';
//또는
import * as module from './module.js';
module.display(); // 'Module'
as
export 하거나 import 할 때 이름을 바꿔서 모듈을 사용하고 싶다면 as 키워드를 사용하면 된다.
// module.js
export {count as cnt, display as dis, inc as i};
// main.js
import * as module from './module.js';
module.dis(); // 'Module'
// module.js
export {count, display, inc};
// main.js
import {display as dis} from './module.js';
module.dis(); // 'Module'
export default
하나의 자바스크립트 파일에서 단일 객체를 내보내고 싶을 때는 export default를 사용하면 된다. export default는 모듈 내에 하나만 존재할 수 있고 해당 모듈을 import 할 때 이름을 아무거나 쓰면 export default 모듈이 import 된다. 그리고 import 할 때는 중괄호 없이 사용한다.
// module.js
export default function display(){
console.log("Module");
}
export function inc(){
count++;
}
// main.js
import hello from './module.js';
hello(); // 'Module'
'개발 공부 > javascript' 카테고리의 다른 글
setTimeout, setInterval and requestAnimationFrame (0) | 2021.12.28 |
---|---|
Event Loop (이벤트 루프) (0) | 2021.12.24 |
IIFE (Immediately Invoked Function Expression) (0) | 2021.12.22 |
Expression vs Statement (0) | 2021.12.21 |
Scope (스코프) (0) | 2021.12.20 |