
전역 객체의 종류에는 console, exports, process 등이 있습니다.
console.log(): 콘솔 화면에 출력하는 메서드console.time(label): 시간 측정을 시작하는 메서드console.timeEnd(label): 시간 측정을 종료하는 메서드하나의 작업에 대한 시간을 측정할 때, console.time()과 console.timeEnd() 에 들어가는 label은 동일해야 합니다.
process.env: 환경변수 정보process.version: node.js의 버전 정보process.versions: 종속된 프로그램의 버전 정보들process.arch: 프로세서의 아키텍처 정보 (ex: x64)process.argv: 매개변수 출력. 예를 들어서 node bangul.js arg1 arg2 로 프로세스를 시작하면, 뒤에 있는 인자값인 arg1과 arg2에 접근할 수 있습니다.process.stdout: process.stdout.write() 메서드가 있으며, console.log 메서드와 거의 동일합니다.process.exit(): 프로그램을 종료하는 메서드process.memoryUsage(): 메모리 사용 정보를 리턴하는 메서드process.uptime(): 프로그램 실행 시간을 리턴하는 메서드Node.js는 모듈을 사용하여 기능을 확장합니다. 모듈이란 메서드와 속성을 모아둔 것이라 할 수 있으며, 별도의 자바스크립트(js) 파일로 생성하고 exports로 내보내 사용합니다.
// mymodule.js
const abs= function(number){
return (number>0)? number: -number;
}
module.exports.abs= abs;
// exporttest.js
let num= -55;
const myutil= require('./mymodule'); // mymodule.js 모듈을 불러와 사용할 수 있습니다.
console.log(myutil.abs(num));
Node.js는 매우 많은 모듈을 사용할 수 있으며, 모듈은 기본 내장 모듈과 외부 모듈로 구분됩니다.
기본 내장 모듈의 대표적인 예로는 os, url, query string, util, crypto, file system 등이 있으며 외부 모듈은 npm, yarn 등으로 설치하여 사용합니다.
file 기반 방식으로 모듈을 사용할 때는 require() 로 상대경로를 지정하여 모듈을 import합니다.
require(‘./module_name’)
require(‘module_name’) 식으로 상대경로를 지정하지 않고 모듈을 import 할 경우, 프로젝트 폴더의 node_module 폴더에서 모듈을 검색하고, 없으면 전역 node_module 폴더에서 모듈을 찾습니다.(npm install -g 등으로 설치했을 때)
운영 체제(os)와 관련된 모듈으로, const os = require(‘os’) 식으로 import 해 와서 사용합니다.
os.hostname(): 호스트 이름을 리턴합니다.os.type(): 운영체제의 이름을 리턴합니다.os.totalmem(): 시스템의 전체 메모리 크기를 리턴합니다.os.freemem(): 사용 가능한 메모리 크기를 리턴합니다.보조 기능을 담당하는 모듈으로, const util = require(‘util’) 로 불러와 사용합니다.
util.format(): console.log()와 비슷하게 출력해주는 역할을 하지만 인자를 넣어 포맷화된 문자열을 리턴해 줍니다. 첫번째 인자의 문자열에 다음 문자들을 넣으면, 그 다음 인자들로 치환해 줍니다.%s - String
%d - Number(integer, float)
%i - parseInt
%f - parseFloat
%j - JSON
%% - % sign
var data = util.format('%d + %d = %d', 1, 1, 1+1); // 1 + 1 = 2
util.isDate(): 매개변수로 전달된 객체가 날짜인지 판별하는 메서드util.isFunction(): 매개변수가 함수인지를 판별하는 메서드util.isNumber(): 매개변수가 숫자인지를 판별하는 메서드해시 생성과 암호화를 수행하며, const crypto= require(‘crypto’) 로 불러와 사용합니다.
// 모듈 참조
const crypto= require('crypto’);
let key= 'only my key’;
let password= 'haha';
// 해시 생성 테스트
const temp= crypto.createHash('sha1');
temp.update(password);
const result= temp.digest('hex');
console.log(result);
console.log(result==crypto.createHash('sha1').update('haha').digest('hex'));
// 키를 이용해 암호화
const cipher= crypto.createCipher('aes192', key);
cipher.update(password, 'utf-8', 'base64’);
const cipheredPassword= cipher.final('base64’);
// 복호화
const decipher= crypto.createDecipher('aes192', key);
decipher.update(cipheredPassword, 'base64','utf-8’);
const decipheredPassword= decipher.final('utf-8');
console.log(cipheredPassword);
console.log(decipheredPassword);
파일 시스템과의 상호작용 및 입출력을 담당하는 모듈로, const fs = require(‘fs’) 로 불러와 사용합니다.
fs.readFile(): 파일을 비동기 방식으로 불러오는 메서드fs.readFileSync(): 파일을 동기 방식으로 불러오는 메서드fs.writeFile(): 파일을 비동기 방식으로 저장, 혹은 쓰는 메서드fs.writeFileSync(): 파일을 동기 방식으로 저장, 혹은 쓰는 메서드const fs= require('fs');
fs.readFile('myfs.js', 'utf-8', function(err, data){
console.log(data);
});