관리 메뉴

JIHYUN JEONG

[Chapter 6] Node.js 전역객체 (Global Object) console, process 본문

Information Technology/Node.js

[Chapter 6] Node.js 전역객체 (Global Object) console, process

StopHyun 2017. 8. 29. 03:21

이번시간에는 Node.js 전역객체 (Global Object) console, process에 대해서 알아보겠습니다.



017 전역객체 (Global Object)

*학습 내용: 전역 객체에 대해서 배웁니다.

*힌트 내용: 전역객체와 주요 전역객체에 대해서 알아보도록 합니다.

전역 객체란 Node.js에서 객체를 따로 선언 할 필요 없이 자유롭게 사용할 수 있는 객체를 말합니다. , 별도의 모듈 로딩 없이 사용 가능합니다.

 

주요 전역객체는 아래와 같습니다.

process : 현재 동작중인 프로세스의 정보

console : 콘솔 출력

Buffer : 이진 데이터를 다루는 버퍼 클래스

Require() : 모듈 로딩

__filename, __dirname : 언더 스코어(_) 2. 현재 폴더 경로와 파일 경로

module, exports : 로딩된 모듈 정보와 모듈로 타입, 객체 노출시키기

Timeout : 타이머, 반복 함수

 

그 중에서도 우리는 기본적이며 중요한 process, console에 대해서 상세히 알아보도록 하겠습니다. 나머지는 전역객체는 (https://nodejs.org/api/globals.html) 를 참고하여 실습해보시기 바랍니다.

 

1. Console

주요 속성과 메소드

Log() : 콘솔화면에 문자여을 출력하는 메소드

dir() : 객체가 가지고 있는 속성을 그대로 출력

 

console.log()이미 앞에 강좌에서 콘솔에 출력을 위해 이미 많이 사용해 봤을 것이다. 사실상 console.log()가 가장 많이쓰이면 추가적으로 더 많은 속성과 메소드를 알고 싶으면

 (http://www.nodejs.org/api/console.html)를 참고하기를 바란다.

 

 

 

1

2

3

4

5

// Console

console.log('Number: %d + %d = %d', 1, 2, 3+4);

console.log('String: %s''Hello World!');

console.log('JSON: %j', { name'node.js' });

console.log('String1''String2.');

 

결과

Number: 1 + 2 = 7

String: Hello World!

JSON: {"name":"node.js"}

String1 String2.

 

 

2. Process

주요 속성과 메소드

env: 환경 변수 정보

argv : 프로세스를 실행 할 때 전달 되는 파라미터 정보

exit() : 프로세스를 끝내는 메소드

 

프로세스 객체는 프로그램을 실행했을 때 만들어지는 프로세스 정보를 다루는 객체 입니다.

 

1

2

3

4

5

6

7

8

9

10

11

12

// Process

console.log(process.env);           // 컴퓨터 환경과 관련 정보를 가진 객체

console.log('--------------');

console.log(process.arch);          // 프로세서의 아키텍쳐

console.log('--------------');

console.log(process.uptime());      // 현재 프로그램이 실행된 시간

console.log('--------------');

console.log(process.memoryUsage()); // 메모리 사용 정보를 가진 객체

console.log('--------------');

console.log(process.version);       // Node.js 버전

console.log('--------------');

console.log(process.versions);      // Node.js 버전

 

결과

{ ALLUSERSPROFILE: 'C:\\ProgramData',

  APPDATA: 'C:\\Users\\JihyunJeong\\AppData\\Roaming',

  ATOM_HOME: 'C:\\Users\\JihyunJeong\\.atom',

  CommonProgramFiles: 'C:\\Program Files\\Common Files',

  'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',

  CommonProgramW6432: 'C:\\Program Files\\Common Files',

  COMPUTERNAME: 'LAPTOP-K714UL5K',

  ComSpec: 'C:\\WINDOWS\\system32\\cmd.exe',

  configsetroot: 'C:\\WINDOWS\\ConfigSetRoot',

  CYGWIN: 'C:\\cygwin',

  FPS_BROWSER_APP_PROFILE_STRING: 'Internet Explorer',

  FPS_BROWSER_USER_PROFILE_STRING: 'Default',

  GOOGLE_API_KEY: 'AIzaSyAQfxPJiounkhOjODEO5ZieffeBv6yft2Q',

  GYP_MSVS_VERSION: '2015',

  HOMEDRIVE: 'C:',

  HOMEPATH: '\\Users\\JihyunJeong',

  LOCALAPPDATA: 'C:\\Users\\JihyunJeong\\AppData\\Local',

  LOGONSERVER: '\\\\LAPTOP-K714UL5K',

  NODE_ENV: 'production',

  NODE_PATH: 'C:\\Users\\JihyunJeong\\AppData\\Local\\atom\\app-1.19.3\\resources\\app\\exports',

  NUMBER_OF_PROCESSORS: '4',

  OneDrive: 'C:\\Users\\JihyunJeong\\OneDrive',

  OS: 'Windows_NT',

  Path: 'C:\\Python27\\;C:\\Python27\\Scripts;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS Client\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files (x86)\\Brackets\\command;C:\\Program Files\\nodejs\\;C:\\Program Files\\MongoDB\\Server\\3.4\\bin;C:\\Program Files\\OpenVPN\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\IBM\\Bluemix\\bin;C:\\Program Files\\Cloud Foundry;C:\\Users\\JihyunJeong\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\JihyunJeong\\AppData\\Roaming\\npm;C:\\Users\\JihyunJeong\\AppData\\Local\\atom\\bin;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;%USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsApps;',

  PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',

  PROCESSOR_ARCHITECTURE: 'AMD64',

  PROCESSOR_IDENTIFIER: 'Intel64 Family 6 Model 78 Stepping 3, GenuineIntel',

  PROCESSOR_LEVEL: '6',

  PROCESSOR_REVISION: '4e03',

  ProgramData: 'C:\\ProgramData',

  ProgramFiles: 'C:\\Program Files',

  'ProgramFiles(x86)': 'C:\\Program Files (x86)',

  ProgramW6432: 'C:\\Program Files',

  PSModulePath: 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules',

  PUBLIC: 'C:\\Users\\Public',

  SESSIONNAME: 'Console',

  SystemDrive: 'C:',

  SystemRoot: 'C:\\WINDOWS',

  TEMP: 'C:\\Users\\JIHYUN~1\\AppData\\Local\\Temp',

  TMP: 'C:\\Users\\JIHYUN~1\\AppData\\Local\\Temp',

  USERDOMAIN: 'AzureAD',

  USERDOMAIN_ROAMINGPROFILE: 'AzureAD',

  USERNAME: 'JihyunJeong',

  USERPROFILE: 'C:\\Users\\JihyunJeong',

  VBOX_MSI_INSTALL_PATH: 'C:\\Program Files\\Oracle\\VirtualBox\\',

  VS140COMNTOOLS: 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Tools\\',

  windir: 'C:\\WINDOWS' }

--------------

x64

--------------

0.353

--------------

{ rss: 22749184,

  heapTotal: 7376896,

  heapUsed: 3659904,

  external: 8380 }

--------------

v6.10.3

--------------

{ http_parser: '2.7.0',

  node: '6.10.3',

  v8: '5.1.281.101',

  uv: '1.9.1',

  zlib: '1.2.11',

  ares: '1.10.1-DEV',

  icu: '58.2',

  modules: '48',

  openssl: '1.0.2k' }

 

 

위에서 배운 Console Process를 같이 017_GlobalObject.js코드로 작성한 뒤 CMD(명령프롬프트)에 입력하면 아래와 같은 결과가 출력됩니다.

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

// Console 전역객체 & Process

 

 // console객체의 log() 콘솔 화면에 문자열을 출력하는 메소드

 // argv : 프로세스를 실행할때 전달되는 파라미터 정보

console.dir(process.argv);

 

// console객체의 dir() 메소드를 사용하면 객체가 가지고 있는 속성을 그대로 출력

// 실행되는 파일의 수를 나타 

console.dir(process.argv.length);

 

if (process.argv.length > 3){

  console.log('process.argv[3], 4번째 배열안에  : %s', process.argv[3]);

}

 

// argv 있는 모든 값을 하나씩 출력하고 싶다면 forEach() 사용합니다.

// forEach()메소드는 배열 안에 인덱스와 값을 함께 전달함

process.argv.forEach(function(item, index){

  console.log(index + ' : ', item);

});

 

 


결과 값

process.argv[3], 4번째 배열안에 값 : 7001\

0 :  C:\Program Files\nodejs\node.exe

1 :  C:\Users\JihyunJeong\Documents\nodejs_example_200\001to020_level1\017_GlobalObjects.js

2 :  __port

3 :  7001\


이상 Node.js 전역객체 (Global Object) console, process에 대해서 알아보았습니다.


더 많은 전역변수에 대해서 알고 싶으시면 아래의 URL을 참고하시길 바랍니다 ^^


https://nodejs.org/api/globals.html




No pain, No gain.




Comments