[Node.js] 모듈(Module)이란?

곽태민·2023년 4월 21일
0

TIL

목록 보기
14/65
post-custom-banner

모듈(Module)


Node.js에서 Module필요한 함수들의 집합 을 의미한다. Module은 크게 2가지로 분류를 할 수 있는데, 다음과 같다.

  1. core module (built-in module)
  2. local module

사용하고자 하는 Modle을 불러오는 방법은 아래와 같다.

첫번째는 기존 CommonJS를 사용하여 불러오는 방법이다.

const moment = require('moment');

두번째는 파일 단위로 ES 모듈을 적용하여 불러오는 방법이다.

import moment from 'moment';

ES 모듈을 사용하여 불러오게되면 파일 확장자를 js대신 mjs를 사용하는 것이다. 프로젝트 부분적으로 ES 모듈을 사용할 때 가장 쉽고 빠르게 적용할 수 있는 방법이다.

core module

core module(built-in module) 은 Node.js에서 기본적이로 제공하는 모듈을 의미한다. Node.js에서 기본적으로 제공하는 모듈은 http, os등 다양하다.

local module

Node.js에서 제공하는 Core module 외에 자신이 직접 모듈을 만들어서 애플리케이션에 포함시킬 수 있다. 모듈을 직접 생성할 땐 export 키워드를 사용한다.

export function myDate() {
	return Date();
}

위 코드를 파일에 저장하면 require() 함수를 사용해서 local module을 불러와 사용할 수 있다.

cosnt { myDate } = require('myModule');

require와 import의 차이


require / exports는 Node.js에서 기존에 사용됐던 CommonJs 모듈 방식으로, module.exports객체에 모듈 전체를 치황해서 내보내고, require을 통해서 해당 모듈을 불러오는 방식이다.

따라서 CommonJs 모듈 방식으로는 전체 모듈을 다 불러오게 되며, 불필요한 모듈이 로드되기도 하고 모듈 내에 어떤 부분을 사용했는지 확인할 수 없다.

그래서 ES6(ECMA2015) 부터는 import / export 방식으로 모듈을 불러오고 내보낸다. ES 모듈 importrequire와는 다르게

import { name } from 'module_name';

위와 같이 모듈내에 정의된 특정한 부분만을 불러올 수 있다.

profile
Node.js 백엔드 개발자입니다!
post-custom-banner

0개의 댓글