모듈 시스템
2025. 3. 30. 23:14ㆍWeb Development/JavaScript
모듈 시스템
ES6 모듈 개념
모듈은 JavaScript 코드를 재사용 가능한 독립적인 파일로 분리하는 방법입니다. 복잡한 애플리케이션을 더 작고 관리하기 쉬운 조각으로 나누어 개발할 수 있게 해줍니다.
모듈의 장점:
- 코드 재사용성 향상
- 이름 충돌 방지 (각 모듈은 자체 스코프를 가짐)
- 코드 구조화 및 유지보수 용이
- 의존성 관리 개선
import와 export
ES6에서는 import와 export 키워드를 사용해 모듈 간에 기능을 공유할 수 있습니다.
export
모듈에서 다른 파일로 내보내고 싶은 변수, 함수, 클래스 등을 지정합니다.
방법 1: 개별 내보내기
// math.js
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
방법 2: 한꺼번에 내보내기
// math.js
const PI = 3.14159;
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
export { PI, add, multiply };
방법 3: 기본 내보내기 (default export)
// person.js
export default class Person {
constructor(name) {
this.name = name;
}
sayHello() {
return `안녕하세요, ${this.name}입니다.`;
}
}
import
다른 모듈에서 내보낸 기능을 가져와 사용합니다.
방법 1: 개별 가져오기
// app.js
import { PI, add } from './math.js';
console.log(PI); // 3.14159
console.log(add(5, 3)); // 8
방법 2: 모든 기능 한번에 가져오기
// app.js
import * as Math from './math.js';
console.log(Math.PI); // 3.14159
console.log(Math.multiply(4, 2)); // 8
방법 3: 기본 내보내기 가져오기
// app.js
import Person from './person.js';
const person = new Person('김철수');
console.log(person.sayHello()); // 안녕하세요, 김철수입니다.
방법 4: 기본 내보내기와 일반 내보내기 함께 가져오기
// module.js
export default function main() { console.log('기본 함수'); }
export function helper() { console.log('도우미 함수'); }
// app.js
import mainFunction, { helper } from './module.js';
mainFunction(); // 기본 함수
helper(); // 도우미 함수
모듈 사용 시 주의사항
- HTML에서 모듈 스크립트 사용 시 type="module" 속성을 지정해야 합니다:
<script type="module" src="app.js"></script> - 모듈은 항상 엄격 모드('use strict')로 실행됩니다.
- 모듈은 자체 스코프를 가지므로, 전역 변수를 선언해도 다른 모듈에서 접근할 수 없습니다.
- 모듈은 한 번만 평가됩니다(여러 곳에서 import해도 코드는 한 번만 실행).
'Web Development > JavaScript' 카테고리의 다른 글
| 최신 JavaScript 문법 (0) | 2025.03.30 |
|---|---|
| 실전 비동기 프로그래밍 패턴 (0) | 2025.03.30 |
| async/await (0) | 2025.03.30 |
| Promise (0) | 2025.03.30 |
| 콜백 함수 (0) | 2025.03.30 |