Día de Ruru
Node.js에서의 모듈시스템 본문
모듈이란 여러 기능들에 관한 코드가 모여있는 하나의 파일을 말한다. 모듈은 코드의 유지보수성, 재사용성 등을 위해서 사용한다. node.js에서 사용하는 모듈 시스템은 대표적으로 CommonJS와 ES6 가 있다.
1. CommonJS
자바스크립트의 공식 스펙이 브라우저만 지원했기 때문에 이를 서버사이드에서 지원하기 위해 CommonJS가 만들어졌으며 자바스크립트가 범용적인 언어로 쓰이기 위한 스펙을 정의하고 있다. 범용적인 언어로 만들기 위해서는 모듈화의 개념이 필요했고 CommonJS만의 모듈 방식을 정의하게 되었다.
CommonJS에서 다른 모듈을 사용할 때는 require을 쓰고 모듈을 해당 스코프 밖으로 보낼때에는 module.exports를 사용한다.
2. ES6
Node.js는 기본적으로 CommonJS 모듈 시스템이 적용되어 있다. ES6 모듈 시스템을 사용하려면 package.json파일에 type : "module"을 추가해서 명시적으로 이를 표시해야 한다.
ES6에서는 import와 export를 사용하는 방식으로 모듈을 사용한다.
export를 할 때에는 named export와 default export 두 가지 방식이 있는데 default export는 모듈내에서 한번만 사용할 수 있으며 import 할 때에도 객체형식이 아니라 그냥 지정된 이름으로 불러올 수 있다.
default export을 사용하면 해당 모듈에는 개체가 하나만 있다는 사실을 명확히 할 수 있다. 또한 내보낼 개체가 하나밖에 없기 때문에 개체의 이름이 없어도 상관없다. 이 경우에는 import 할때 임의로 설정한 이름으로 가져올 수 있다.
'JS' 카테고리의 다른 글
[CS]웹서버와 WAS, 프로그래밍 언어와 스크립트 언어 (0) | 2023.06.08 |
---|---|
[JS]보안과 개발 방법론 (0) | 2023.06.05 |
[JS] 자료구조와 알고리즘, 데이터베이스와 ORM (0) | 2023.06.05 |
[JS]HTTP와 HTTPS, RESTful API (0) | 2023.06.01 |
[JS]동기와 비동기, 스레드와 프로세스 (0) | 2023.05.31 |