CommonJS에서는 모든 모듈은 자신만의 독립적인 실행 영역이 있어야 한다. 모듈 정의는 전역객체인 exports 객체를 이용한다.(가져올 모듈을 전역객체 exports의 property로 집어넣기 때문에 모듈이 전역변수를 참조하더라도 클로저로 참조하기 때문에 다른 곳에서 영향을 미치지 않는다.) 모듈 사용은 require 함수를 이용한다. exports는 require함수를 사용해 반환받는 객체이다. 이 둘을 이용하면 다른 js 파일에 있는 변수나 함수를 사용할 수 있다. 즉, exports.x = 30이라면 exports = {x : 30}가 된다. require은 이 {x : 30}을 가져오는 것. 단, 불러올 파일이 딱히 변수나 함수 참조 없이 단순하다면 exports가 필요 없는 경우도 있다...