Node.js란?
Node.js는 웹 브라우저가 아닌 환경에서 자바스크립트 코드를 실행할 수 있도록 해주는 자바스크립트 런타임입니다. 쉽게 말해, 자바스크립트가 동작할 수 있는 구동기 또는 실행 환경이라고 할 수 있습니다.
- 탄생 배경: 원래 자바스크립트는 웹 브라우저에서만 작동하도록 만들어진 언어였습니다. 하지만 개발자들이 자바스크립트의 유연성과 편리함에 매료되면서, 웹 브라우저 밖에서도 사용하고 싶어 했습니다. 이러한 요구를 충족시켜준 것이 바로 Node.js입니다.
- 활용 분야: Node.js 덕분에 자바스크립트는 이제 웹 서버, 모바일 앱, 데스크톱 애플리케이션 등 다양한 분야에서 활용되는 강력한 언어가 되었습니다.
Node.js의 프로젝트 구성: 패키지와 모듈
패키지
일반적인 개발에서는 하나의 애플리케이션을 '프로젝트'라고 부르지만, Node.js에서는 이를 '패키지'라는 단위로 관리합니다.
모듈
일반적으로 애플리케이션은 여러 기능들의 조합으로 만들어집니다. 모든 코드를 하나의 파일에 담으면 복잡해지고 유지보수가 어려워집니다. 이 문제를 해결하기 위해 기능별로 코드를 분리한 파일들을 모듈(Module)이라고 부릅니다.
대표적인 자바스크립트 모듈 종류
CommonJS - 기본 모듈
사용법
- 모듈을 내보낼 때: module.exports = { ... };
- 모듈을 가져올 때: require('파일 경로');
// 간단한 math 모듈 (CommonJS 사용 예시)
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
// key-value 형태 단 key와 value의 이름이 같으면 생략 가능
module.exports = {
add,
sub: sub,
};
---------------------------------------------------------------------------------
// CommonJS 사용 예시
const moduleMath = require("./math");
const { add, sub } = require("./math");
console.log(moduleMath);
console.log(moduleMath.add(1, 3));
console.log(sub(1, 3));
ES Module (ESM)
ECMAScript 2015(ES6)에서 공식적으로 채택된 최신 표준 모듈 시스템입니다. 브라우저와 Node.js 모두에서 사용할 수 있습니다.
사용법
- 모듈을 내보낼 때: export, export default
- 모듈을 가져올 때: import
// 간단한 math 모듈 (ES Module 사용 예시)
function add(a, b) {
return a + b;
}
// 1. ES Module 사용 예시
export function sub(a, b) {
return a - b;
}
// 해당 함수는 해당 모듈을 대표하는 함수가 됨
export default function multiply(a, b) {
return a * b;
}
// 2. ES Module 사용 예시
export { add };
// ES Module 사용 예시 - 확장자 명까지 명시해야 됨
import { add, sub } from "./math2.js";
// 기본 값이 되는 함수는 중괄호 없이 불러야 됩니다.
// 함수 이름 마음대로 변경 가능
import mul from "./math2.js";
// import mul, { add, sub } from "./math2.js"; 이렇게 합칠 수 있음
console.log(add(1, 3));
console.log(sub(1, 3));
console.log(mul(1, 3));