자바스크립트 ES6 모듈화 import export 사용법
자바스크립트 ES6 모듈화: Import와 Export의 활용
현대 웹 개발에서 자바스크립트는 필수적인 역할을 하고 있습니다. 그 중에서도 ES6에서 도입된 모듈화는 코드의 조직화 및 재사용성을 높이는 데 큰 기여를 하고 있습니다. 이번 글에서는 자바스크립트 ES6 모듈 시스템의 기본 개념과 함께 import와 export 키워드를 활용하는 방법에 대해 살펴보겠습니다.

자바스크립트 모듈이란?
모듈이란 특정 기능을 수행하는 코드의 집합을 말합니다. 자바스크립트에서 모듈은 일반적으로 파일 단위로 구성되며, 각 모듈은 독립적인 스코프를 가지게 됩니다. 즉, 한 모듈 내에서 정의된 변수나 함수는 다른 모듈로부터 접근할 수 없으므로, 전역 스코프에 대한 오염을 방지할 수 있습니다. 이와 같은 모듈화의 가장 큰 장점은 다음과 같습니다:
- 코드를 파일 단위로 나누어 관리할 수 있어 유지보수가 용이합니다.
- 특정 기능의 코드를 여러 프로젝트에서 재사용할 수 있습니다.
- 모듈 별로 로드되기 때문에, 필요할 때만 해당 코드가 메모리에 로드됩니다.
ES6에서의 Import와 Export
ES6 모듈 시스템의 핵심은 바로 import
와 export
입니다. 이 두 키워드를 통해 모듈 간의 의존성을 관리하고, 필요한 코드만 가져와 사용할 수 있습니다. 먼저, export 키워드를 사용하여 외부로 내보낼 기능을 정의하는 방법을 살펴보겠습니다.
Export 사용법
모듈 내에서 export 키워드를 통해 변수를 내보낼 수 있습니다. 예를 들어, 다음과 같이 constants.js 파일을 만들어 보겠습니다:
// constants.js
export const API_URL = 'https://api.example.com';
export const TIMEOUT = 5000;
여기서 API_URL과 TIMEOUT 상수를 다른 파일에서 사용할 수 있도록 내보냈습니다. 이제 이 상수들을 다른 모듈에서 불러와 사용할 수 있습니다.
Import 사용법
다음으로 import 키워드를 사용하여 외부 모듈에서 내보낸 변수를 가져오는 방법을 알아보겠습니다. 예를 들어, app.js 파일에서 constants.js의 변수를 사용하고 싶다면 다음과 같이 작성할 수 있습니다:
// app.js
import { API_URL, TIMEOUT } from './constants.js';
console.log(API_URL);
console.log(TIMEOUT);
위와 같이 import 문을 통해 constants.js에서 export된 변수를 불러올 수 있습니다. 이처럼 import와 export를 통해 모듈 간의 관계를 쉽게 설정할 수 있습니다.
모듈 구조의 중요성
모듈화를 통해 코드를 깔끔하게 유지할 수 있으며, 코드를 이해하는 데 도움을 줄 수 있습니다. 그러나 복잡한 애플리케이션의 경우, 모듈 간의 의존성이 증가하면서 코드의 구조를 파악하기 어려워질 수 있습니다. 따라서, 모듈 구조를 잘 설계하고 문서화하는 것이 중요합니다.
일반적으로 다음과 같은 원칙을 따르시면 도움이 됩니다:
- 모듈의 기능이 명확하게 정의되도록 합니다.
- 모듈 간 의존성을 최소화합니다.
- 주석이나 문서화를 통해 각 모듈의 역할을 명시합니다.
Node.js에서의 모듈화
Node.js 환경에서는 ES6 모듈뿐만 아니라 CommonJS 모듈 시스템도 존재합니다. Node.js에서는 require
와 module.exports
를 사용하여 모듈을 불러오고 내보낼 수 있습니다. 예를 들어, 다음과 같이 module.js 파일을 정의할 수 있습니다:
// module.js
const pi = 3.14;
function area(radius) {
return pi * radius * radius;
}
module.exports = { area };
그런 다음 다른 파일에서 이 모듈을 가져와 사용할 수 있습니다:
// app.js
const { area } = require('./module');
console.log(area(5)); // 78.5
이와 같이 Node.js에서는 모듈화된 코드를 쉽게 관리하고 사용할 수 있습니다. 그러나 ES6 모듈도 Node.js에서 사용할 수 있으며, 이때는 패키지.json 파일에 type
을 module
로 설정해야 합니다.

결론
자바스크립트의 ES6 모듈 시스템은 대규모 애플리케이션의 코드 관리에 큰 이점을 제공합니다. import와 export 키워드를 통해 모듈 간의 의존성을 명확히 하고, 각 모듈의 역할을 잘 정의하면 코드의 가독성과 유지보수성이 크게 향상됩니다. 이러한 모듈화의 원리를 이해하고 적용하는 것은 현대 웹 개발의 필수 요소임을 잊지 마시기 바랍니다.
모듈화는 단순히 코드 관리의 편리함을 넘어서, 협업과 팀워크에서도 중요한 역할을 합니다. 각자의 모듈을 작성한 후, 이를 통합하여 하나의 프로젝트로 진행할 수 있는 기반이 되기 때문입니다. 이제 여러분도 자바스크립트 모듈화를 통해 더 나은 코드를 작성해 보세요!
자주 묻는 질문과 답변
자바스크립트 모듈화란 무엇인가요?
모듈화는 자바스크립트 코드를 특정 기능 단위로 나누어 관리하는 방법으로, 코드의 가독성과 재사용성을 높여줍니다.
ES6 모듈화에서 Export와 Import의 차이는 무엇인가요?
Export는 모듈에서 다른 파일로 특정 변수나 함수를 내보내는 역할을 하며, Import는 외부 모듈에서 내보낸 기능을 가져오는 것입니다.
모듈화의 장점은 무엇인가요?
주요 장점으로는 코드의 재사용이 가능하고, 유지보수가 쉬워지며, 서로 다른 기능을 명확하게 분리할 수 있다는 점이 있습니다.
Node.js에서 모듈화는 어떻게 이루어지나요?
Node.js에서는 CommonJS 형식의 모듈 시스템을 사용하여 require와 module.exports를 통해 모듈을 불러오고 내보낼 수 있습니다.
모듈 간 의존성을 관리하는 방법은?
모듈 간의 의존성을 최소화하고, 각 모듈의 역할을 명확히 하여 문서화하는 것이 효과적인 관리 방법입니다.