- 이번 퀘스트에서는 node.js의 기본적인 구조와 개념에 대해 알아 보겠습니다.
- node.js
- npm
- CommonJS와 ES Modules
- About node.js
- Node.js의 아키텍쳐
- npm
- npm CLI commands
- npm - package.json
- How NodeJS Require works!
- MDN - JavaScript Modules
- ES modules: A cartoon deep-dive
- require vs import
- node.js는 무엇인가요? node.js의 내부는 어떻게 구성되어 있을까요?
- npm이 무엇인가요?
package.json
파일은 어떤 필드들로 구성되어 있나요? - npx는 어떤 명령인가요? npm 패키지를
-g
옵션을 통해 글로벌로 저장하는 것과 그렇지 않은 것은 어떻게 다른가요? - 자바스크립트 코드에서 다른 파일의 코드를 부르는 시도들은 지금까지 어떤 것이 있었을까요? CommonJS 대신 ES Modules가 등장한 이유는 무엇일까요?
- ES Modules는 기존의
require()
와 동작상에 어떤 차이가 있을까요? CommonJS는 할 수 있으나 ES Modules가 할 수 없는 일에는 어떤 것이 있을까요? - node.js에서 ES Modules를 사용하려면 어떻게 해야 할까요? ES Modules 기반의 코드에서 CommonJS 기반의 패키지를 불러오려면 어떻게 해야 할까요? 그 반대는 어떻게 될까요?
- 스켈레톤 코드에는 다음과 같은 네 개의 패키지가 있으며, 용도는 다음과 같습니다:
cjs-package
: CommonJS 기반의 패키지입니다. 다른 코드가 이 패키지의 함수와 내용을 참조하게 됩니다.esm-package
: ES Modules 기반의 패키지입니다. 다른 코드가 이 패키지의 함수와 내용을 참조하게 됩니다.cjs-my-project
:cjs-package
와esm-package
에 모두 의존하는, CommonJS 기반의 프로젝트입니다.esm-my-project
:cjs-package
와esm-package
에 모두 의존하는, ES Modules 기반의 프로젝트입니다.
- 각각의 패키지의
package.json
과index.js
또는index.mjs
파일을 수정하여, 각각의*-my-project
들이*-package
에 노출된 함수와 클래스를 활용할 수 있도록 만들어 보세요.
- node.js 외의 자바스크립트 런타임에는 어떤 것이 있을까요?