[Node.js]내장 객체
2022. 4. 10. 21:06ㆍProgramming language/Node.js
- 목차
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다.
서론
예전에 취미 삼아 Node.js를 잠깐 공부한 적이 있습니다. 지금은 관련 업무나 특별히 공부하지는 않지만, 그때 정리한 기초 내용을 아카이빙용으로 정리해 보려 합니다. Node.js에서 기초가 되는 모듈이나, require 등에 관해서는 별도의 개념은 따로 다루지 않겠습니다.
내장 객체
말 그대로, Node.js에 기본적으로 내장된 객체들을 말합니다. 별도의 모듈을 require함수가 필요하거나 모듈을 필요로 하지 않습니다. C/C++ 등에서 별도로 선언해서 사용하거나, include 해야 사용하는 구조체, 클래스와 다르게 사용할 수 있는 int, char 등 원시 자료형과 비슷하다 생각하면 될 것 같습니다.
global 객체
- message, __filename, __dirname, console, error 등 전역 정보를 담고 있는 객체
- 일반적으로 생략
- 속성, 함수 등을 전 영역에서 이용할 수 있게 해주는 객체
- 되도록이면 속성 등은 수정하지 않고 사용하는 게 좋을 거 같다… 전역 메모리 이슈
- 모듈 내부에 선언된 변수는 해당 모듈 내부에서만 사용 가능
- 모듈 사이에 공유하기 위해서는 해당 객체 이용
- 사용 예시
console.log(__filename); // global.console.log(global.__filename); 와 동일
global.console / console 객체
- stdout (표준 출력)
- 디버깅 콘솔에 데이터를 표시해주는 객체, 함수에 따라 표시해주는 데이터는 다름
- log(str) : str(내용)을 콘솔에 표시. placeholders 사용 가능.
- time(label) / timeEnd(label) : label을 공유하는 time ~ timeEnd 사이의 측정된 시간 출력
- error(e) : e(내용)을 에러로 콘솔에(stderr에) 표시
- dir(obj, option) : obj에 전달받은 객체를 option에 전달받은 설정으로 표시
- 사용 예시
var person = {name:'홍길동', birthday:'2000.01.20'};
console.dir(person);
// output : {name:'홍길동', birthday:'2000.01.20'}
// option 부분은 생략가능
- trace() : 호출 됐을 때까지의 Stack을 추적
function c() { console.log(‘c’); console.trace(); }
function b() { console.log(‘b’); c(); }
function a() { console.log(‘a’); b(); }
a();
Trace at c (repl:3:9) at b (repl:3:1) at a (repl:3:1) at repl:1:1
// <– For now feel free to ignore anything below this point,
these are Node’s internals at realRunInThisContextScript (vm.js:22:35)
at sigintHandlersWrap (vm.js:98:12) at ContextifyScript.Script.runInThisContext
(vm.js:24:12) at REPLServer.defaultEval (repl.js:313:29) at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12) —
Timer
- setTimeout(callback, ms) : millisecond 후에 callback 실행
- setInterval(callback, ms) : millisecond을 주기로 callback 실행
- setImmediate(callback) : 즉시 callback 실행
- clear~ : set~ 함수를 취소
// 1000ms(1초) 마다 콘솔에 call 이라는 내용 표시
const interval = setInterval(() => { console.log(‘call’)}, 1000)
// interval 이라는 Timer 취소
clearInterval(interval);
global.process / process 객체
- 현재 실행되는 노드 프로세스의 설치 버전, 아키텍처 정보, 프로세스 ID, 프로세스 경로 등의 정보를 담고 있음
- process.env : 환경변수 정보
- process.argv : 프로세스를 실행할 때 전달받은 매계 인자 정보
- process.nextTick(callback) : 이벤트 루프 중 callback을 가장 먼저 실행하도록 함
- process.exit() : 프로세스 종료
exports / module.exports 객체
- 직접 만든 모듈을 사용하기 위한 전역 객체
- 만든 모듈은 require()를 이용하여 불러옴
- module.exports에 객체를 할당하는 순간 전역 변수가 아니게 됨
- module.exports = obj; // module.exports에 속성 추가 불가
- exports(obj)에 속성을 모두 추가한 뒤 최종적으로 module.exports = obj;
// calcmodule.js var obj = {};
obj.sum = function(a, b){ return a + b; }
obj.multiply = function(a, b){ return a * b; }
module.exports = obj;
// calcmodule 사용
var calc = require(‘./calcmodule’);
console.log(‘1+1=%d’, calc.sum(1, 1));
반응형
LIST
'Programming language > Node.js' 카테고리의 다른 글
[Node.js]내장 모듈 (0) | 2022.04.10 |
---|