오늘 뭐했냐/개발에 대한 주저리

23.10.18 CommonJS와 ES6

스스로에게 2023. 10. 18. 19:31

 JavaScript 모듈을 정의하고 사용하는 두 가지 주요 방식이다. 

 

CommonJS

 module.exports 객체를 이용하여 자신의 데이터를 외부로 내보낼 수 있고, require() 함수를 이용하여 외부 모듈의 데이터를 불러올 수 있다. 

 

// 내보내기

...
module.exports = CustomError;
// 가져오기

const CustomError = require("../error.js");

 

  내보낸 객체는 복사본으로 처리된다. 즉, 모듈을 가져올 때 모듈의 복사본이 생성되며, 원본 모듈에 대한 변경이 가져온 모듈에 영향을 미치지 않는다.

 

ES6 Modules

ES6 Modules은 ECMAScript 2015(ES6)에 도입된 공식 JavaScript 모듈 시스템이다.

 

// 내보내기

...
export class BoardsModule { }
// 가져오기 

import { BoardsModule } from './boards/boards.module'; 

 내보낸 객체는 라이브 바인딩 된다. 즉, 모듈을 가져올 때 원본 모듈에 대한 참조가 생성되고, 원본 모듈의 변경이 가져온 모듈에도 실시간으로 반영되는 것이다.

 

위에는 express를 사용했을 때였고 밑에는 nestJS를 사용했을 때로 이해할 수 있었다. 

 

참고 및 자세한 설명

'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글

23.10.20 (JS에서의)this  (0) 2023.10.20
23.10.19 가비지 컬렉션  (0) 2023.10.19
23.10.14 프로토타입  (0) 2023.10.16
23.10.13 태스크 큐  (0) 2023.10.16
23.10.12 이벤트 루프  (0) 2023.10.15