더북(TheBook)

노드 버전에 따라 콘솔 내용이 다를 수 있습니다. 내용이 너무 많아 줄였지만 global 객체 안에는 수십 가지의 속성이 담겨 있습니다. 그 속성 모두를 알 필요는 없고, 자주 사용하는 속성들만 이 절에서 알아봅니다.

전역 객체라는 점을 이용해 파일 간에 간단한 데이터를 공유할 때 사용하기도 합니다. globalA.js와 globalB.js를 같은 폴더에 생성해봅시다.

globalA.js

module.exports = () => global.message;

globalB.js

const A = require('./globalA');

global.message = '안녕하세요';
console.log(A());

globalA 모듈의 함수는 global.message 값을 반환합니다. globalB.js에서는 global 객체에 속성명이 message인 값을 대입하고 globalA 모듈의 함수를 호출합니다. 콘솔 결과를 보면, globalB에서 넣은 global.message 값을 globalA에서도 접근할 수 있음을 알 수 있습니다.

콘솔

$ node globalB
안녕하세요

Warning global 객체의 남용

global 객체의 속성에 값을 대입해 파일 간에 데이터를 공유할 수 있지만, 이를 남용하지는 마세요. 프로그램의 규모가 커질수록 어떤 파일에서 global 객체에 값을 대입했는지 찾기 힘들어 유지 보수에 어려움을 겪게 되기 때문입니다. 다른 파일의 값을 사용하고 싶다면 모듈 형식으로 만든 후 명시적으로 값을 불러와서 사용하는 것이 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.