Hello, Freakin world!

[Node.js] 모듈로 만들기 본문

프로그래밍 언어/Javascript

[Node.js] 모듈로 만들기

johnna_endure 2020. 1. 7. 21:00

모듈이란?

특정한 기능을 하는 함수나 변수들의 집합입니다.
모듈로 만들어두면 여러 프로그램에 해당 모듈을 재사용할 수 있습니다.
보통 파일 하나가 모듈 하나가 됩니다. 파일별로 코드를 모듈화할 수 있어 관리하기 편리합니다.


예제

목표

stringUtils.js , main.js 파일을 만들고 main에서 stringUtils의 메서드를 import해서 쓸 수 있도록 해보자.


stringUtils.js

function reverse(str) {
    return str.split("").reverse().join("");
}

function wrapBracket(str) {
    return `{${str}}`;
}

module.exports = {reverse, wrapBracket};

main.js

const stringUtils = require('./stringUtils');

let str = 'hello, world!';
console.log(stringUtils.wrapBracket(str));
console.log(stringUtils.reverse(str));

예제 설명

위의 예제에서 주목할 만한 부분은 module.exports와 require 메서드입니다.
그리고 module 객체는 Node에서 제공하는 내장 객체로 위의 코드는 IDE에서 실행한다면 환경에 Node.js가 설치돼있어야 합니다.

require 메서드 역시 Node에서 제공하는 내장 객체 중 하나인 global의 메서드입니다.

 

exports 프로퍼티에 모듈화할 메서드나 변수등을 포함한 객체를 할당합니다.

require 메서드의 인수로는 모듈화를 선언한 파일명의 경로를 건네줍니다. 그러면 반환받은 객체의 프로퍼티로 export한 변수나 메서드에 접근해 사용할 수 있습니다.

참고: ES2015 모듈

ES2015가 도입되면서 자바스크립트도 자체 모듈 시스템 문법이 생겼습니다. 노드의 모듈 시스템과는 문법이 조금 다릅니다.

hello.mjs <- 임의의 자바스크립트 파일

import { alias, alias } from '모듈 파일 경로명';

...

export default 메서드 or 객체 or 변수등;

노드에서도 9버전부터 ES2015의 모듈 시스템을 사용할 수 있습니다. 하지만 파일의 확장자를 mjs로 지정해야 하는 등의 번거로움이 있습니다. 그냥 module 객체를 이용하는게 더 편할듯 합니다.

 

출처 : Node.js 교과서 - 조현영

 

'프로그래밍 언어 > Javascript' 카테고리의 다른 글

call(), apply(), bind()에 대해서  (0) 2020.01.17
Comments