프로그래밍 언어/NODE JS

global

· 코딩마이데이

브라우저의 window와 같은 같은 전역 객체입니다. 전역 객체이므로 모든 파일에 접근할 수 있습니다. 또한, window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략할 수 있습니다. require 함수도 global.require에서 global이 생략된 것입니다. 노드 콘솔에 로그를 기록하는 console 객체도 원래는 global.console입니다.

global 객체 내부에는 매우 많은 속성이 들어 있습니다.

$ node
> global
{
  global: [Circular *1],
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  queueMicrotask: [Function: queueMicrotask],
  structuredClone: [Getter/Setter],
  atob: [Getter/Setter],
  btoa: [Getter/Setter],
  performance: [Getter/Setter],
  fetch: [Function: fetch],
  navigator: [Getter],
  crypto: [Getter]
}
> global.console
{
  log: [Function: log],
  warn: [Function: warn],
  dir: [Function: dir],
  time: [Function: time],
  timeEnd: [Function: timeEnd],
  timeLog: [Function: timeLog],
  trace: [Function: trace],
  assert: [Function: assert],
  clear: [Function: clear],
  count: [Function: count],
  countReset: [Function: countReset],
  group: [Function: group],
  groupEnd: [Function: groupEnd],
  table: [Function: table],
  debug: [Function: debug],
  info: [Function: info],
  dirxml: [Function: dirxml],
  error: [Function: error],
  groupCollapsed: [Function: groupCollapsed],
  Console: [Function: Console],
  profile: [Function: profile],
  profileEnd: [Function: profileEnd],
  timeStamp: [Function: timeStamp],
  context: [Function: context],
  createTask: [Function: createTask]
}

 

노드 버전에 따라 콘솔 내용이 다를 수 있습니다. global 객체 안에는 수십 가지의 속성이 담겨 있습니다.

전역 객체라는 점을 이용하여 파일 간에 간단한 데이터를 공유할 때 사용하기도 합니다.

globalA.js와 globalB.js를 같은 폴더에 생성해봅니다.

 

globalA.js

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


globalB.js

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

globalThis.message = "안녕하세요";
console.log(A());

 

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

$ node globalB
안녕하세요

 

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

타이머  (0) 2025.03.13
console  (0) 2025.03.12
모듈로 만들기  (0) 2025.03.08
JS 파일 실행하기  (0) 2025.03.05
REPL 사용하기  (0) 2025.03.02