백엔드/[NodeJS] 디자인 패턴2 ESM:(ECMAScript Module) with import, from ESM: ECMAScript 모듈 ECMAScript 2015 명세의 일부분으로 자바스크립트에 서로 다른 환경(브라우저, node등)에서도 적합한 공식 모듈 시스템을 부여하기 위해 도입되었습니다. 특징으로는 간편한 문법, 순환 종속성에 대한 지원과 비동기적으로 모듈을 로드할 수 있게 되었습니다. CommonJS와 큰 차이는 ES 모듈은 static 특성입니다. 즉, 임포트가 모든 모듈의 가장 상위 레벨과 제어 흐름 구문의 바깥쪽에 기술됩니다. 아래 코드를 확인해 봅시다. 아래 코드는 EMS에서는 사용할 수 없습니다. 이유는 import문은 가장 상위에 작성해야 되기 때문입니다. // ❌ An import declaration can only be used at the top level of a modul.. 2024. 1. 3. CommonJS (exports module.exports) 목차 - CommonJS - 직접 만드는 모듈 로더 - 해결(resolving) 알고리즘 - 모듈 캐시 - 순환 종속성 CommonJS CommonJS는 Node.js의 첫 번째 내장 모듈 시스템입니다. require로 모듈을 임포트하게 해 줍니다. exports와 module.exports는 특별한 변수로서 현재 모듈에서 공개될 기능들을 내보내기 위해 사용 이제 모듈 로더를 간단하게 만들어 봅시다. 직접 만드는 모듈 로더 const fs = require('fs'); function loadModule(filename, module, require) { const wrappedSrc = ` (function (module, exports, require){ ${fs.readFileSync(filenam.. 2024. 1. 1. 이전 1 다음