memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

모듈을 사용하는 이유?

모듈은 쉽게 말하면 '부품'이라고 생각하면 됩니다. 부품처럼 각 기능별로 모듈화하여 파일을 만들고, 필요한 파일만 불러와서 프로그램을 만들 수 있습니다.

 

한 파일로 작성된 코드는 보기에도 복잡하고 유지 보수를 하기도 어려운 단점이 있습니다. 하나의 파일을 기능별로 나눠, 여러 파일로 관리를 하게되면 유지보수하기에 편리하고 복잡성이 낮아집니다.

 

얻을 수 있는 효과?

  • 자주 사용되는 코드를 별도 파일로 모듈화하여, 재활용성을 높일 수 있음
  • 모듈로 나눠서 관리하게되면, 관련된 파일만 수정하면 됨
  • 필요한 로직만 로드하기 때문에 메모리 낭비를 줄일 수 있음

 

모듈 표준

모듈 표준에는 여러가지가 있지만, 본 글에서는 아래 2가지를 소개합니다.

  • CommonJs: Node.js에서 채택한 module 표준 (CJS라고 부르기도 함)
  • ESM: ECMAScript에서 채택한 module 표준

https://twitter.com/Manz/status/1265341200007036929?s=20

 

CommonJs (CJS)

CJS에서는 import를 할때는 require 키워드를, export 할때는 module.exports = {} 를 사용합니다.

 

math.js

const add = (x, y) => x + y;
const mux = (x, y) => x * y;

module.exports = {
  add,
  mux,
};

 

index.js

const { add, mux } = require("./math");

console.log(add(1, 3)); // 4
console.log(mux(2, 3)); // 6

 

위와 같이 작성하고 아래 node 명령어로 index.js 를 실행합니다.

node index.js

 

ESM

ESM에서는 import를 할때는 import ~ from ~, export 할때는 export 를 사용합니다.

 

esm을 사용하려면 node 패키지 중 esm을 설치해야합니다.

npm install esm

 

math.js

const add = (x, y) => x + y;
const mux = (x, y) => x * y;

export { add, mux };

 

index.js

import { add, mux } from "./math";

console.log(add(1, 3));
console.log(mux(2, 3));

 

그리고, 아래 명령어로 실행합니다.

node -r esm index.js

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!