모듈 예제의 var.js를 다음과 같이 바꾼 후 실행
동일하게 동작함
동일한 이유는 module.exports와 exports가 참조 관계이기 때문
exports에 객체의 속성이 아닌 다른 값을 대입하면 참조 관계가 깨짐
module.exports는 한 가지만 리턴할 때 쓰고, exports는 두 개 이상 리턴할 때 쓴다. exports와 module.exports는 같이 쓸 수 없다.

최상위 스코프의 this는 module.exports를 가리킴
그 외에는 브라우저의 자바스크립트와 동일
함수 선언문 내부의 this는 global(전역) 객체를 가리킴

require가 제일 위에 올 필요는 없음
require.cache에 한 번 require한 모듈에 대한 캐쉬(cache) 정보가 들어있음.
require.main은 노드 실행 시 첫 모듈을 가리킴. 어떤 파일을 실행시킨건지 알 수 있다.

main과 cache를 알아두면 됨

무한 반복을 막기 위해 순환 참조 대상이 빈 객체가 됨
