여기에서는 모듈(module)에 관해 알아볼 것이다.
코드 양이 늘면 관리가 중요해진다. 코드를 관리하는 과정에서 배열, 함수, 객체 등이 있는데, 객체가 많아지면 이 객체를 정리정돈하는 더 큰 개념의 도구가 있어야한다.
그것이 바로 모듈이다. 즉, 모듈을 코드를 정리하는 가장 큰 도구라고 할 수 있다.
mpart.js
라는 파일을 생성해 아래와 같은 코드를 작성해보자
var M = {
v: 'v',
f: function() {
console.log(this.v);
}
}
module.exports = M;
위 코드는 간단하지만 객체가 많아질 경우 코드가 복잡해지기 때문에 이 또한 정리정돈의 대상이 된다. 이처럼 객체나 함수를 정리정돈할 수 있는 개념이 모듈이다. 즉, 모듈을 만들어 객체나 함수를 묶고, 이를 파일로 분리해 외부에서 독립적으로 공유할 수 있게 만드는 것이다.
마지막 줄 module.exports = M;
은 이 파일에 선언한 M 객체를 외부에서 사용할 수 있게하는 자바스크립트 코드이다. 즉, 해당 코드를 적용하면 다른 파일에서도 M 객체를 사용할 수 있다.
이제 muse.js
라는 파일을 만들어 방금 생성한 mpart.js
에서 정의한 M 객체를 사용해 볼 것이다.
var part = require('./muse.js');
console.log(part); // M 객체의 속성이 출력됨 => { v: 'v', f: [Function: f] }
part.f(); // v
위 코드에서 part라는 변수를 선언했는데, 이때 require
기능을 이용해 방금 생성한 mpart.js
파일의 경로를 지정함으로써 mpart.js
에서 선언한 M 객체를 참조하게 만들었다. part 변수 값을 콘솔에 출력하면 M 객체의 속성이 출력되는 것을 볼 수 있을 것이다. 또한 M 객체에 존재하는 데이터나 함수를 사용할 수도 있다.
이러한 방식으로 모듈을 활용해 코드를 좀 더 분리하여 관리해줄 수 있다.