모듈 시스템이란?
Node.js에서 모듈(Module)은 프로그램의 기능을 독립적으로 관리하기 위한 코드의 묶음이다.
즉, 모듈 시스템은 코드를 효율적으로 관리하기 위해 코드를 분리하고, 이를 불러와 사용할 수 있도록 지원하는 시스템을 말한다.
왜 모듈 시스템이 필요할까?
예를 들어 쇼핑몰을 개발한다고 가정해보자.
- 회원 관리 기능
- 장바구니 기능
- 결제 기능
이 모든 기능을 하나의 파일에 작성하면 코드가 지나치게 길어지고 복잡해진다.
이렇게 되면 버그 수정이나 기능 추가가 어려워지고 생산성도 떨어진다.
따라서 기능별로 파일을 분리하여 관리할 필요가 있다.
user.js
cart.js
payment.js
이렇게 분리된 파일들을 효율적으로 관리하고 재사용하기 위한 것이 바로 모듈 시스템이다.
대표적인 자바스크립트 모듈 시스템
자바스크립트에는 여러 모듈 시스템이 존재하며, 대표적으로 다음 두 가지가 있다.
- CommonJS (CJS)
- Node.js의 기본적인 모듈 시스템으로, 주로 서버 환경에서 사용된다.
- 동기적으로 모듈을 불러오며, require()와 module.exports를 사용한다.
// user.js (CJS)
const getUser = () => {
return { name: 'Alice', age: 25 };
};
module.exports = getUser;
// app.js
const getUser = require('./user');
console.log(getUser());
- ES Modules (ESM)
- 최신 JavaScript 표준에서 정의된 모듈 시스템으로, 웹 브라우저와 Node.js 모두에서 사용할 수 있다.
- 비동기적으로 모듈을 불러오며, import와 export 문법을 사용한다.
// user.js (ESM)
export const getUser = () => ({ name: 'Alice', age: 25 });
// app.js
import { getUser } from './user.js';
console.log(getUser());
CJS와 ESM의 주요 차이점
- 불러오는 방식:
- CJS는 동기적으로 모듈을 불러오지만, ESM은 비동기적으로 모듈을 불러온다.
- 문법:
- CJS: const module = require('module')
- ESM: import module from 'module'
Node.js 개발 환경에서는 주로 CJS가 기본적으로 사용되었지만, 최근에는 ESM이 점점 더 널리 사용되는 추세이다.
'Node.js' 카테고리의 다른 글
[Node.js] 라이브러리 사용하기 (0) | 2025.05.04 |
---|---|
[Node.js] Node.js란? (0) | 2025.05.03 |