본문 바로가기
코딩 테스트/[Node] Node.js 교과서

[Node] 내장 객체 | 3.4 노드 내장 객체 알아보기 | console, timer

by M개발자 2021. 8. 12.
반응형

1. global

전역 객체로, 모든 파일에서 접근 가능


2. console

console.time(lable) 같은 레이블을 가진 time과 timeEnd 사이의 시간을 측정함

 

console.log( 내용 ) 평범한 로그를 콘솔에 표시

 

console.error( 에러 내용 ) 에러 콘솔에 표시

 

console.table( 배열 ) 객체의 속성들이 테이블 형식으로 표현됨

 

console.dir( 객체, 옵션 ) 객체를 콘솔에 표시할 때 사용

첫 번째 인수 : 표시할 객체, 두 번째 인수 : 옵션

옵션의 colors를 true로 하면 콘솔에 색이 추가되어 보임.

depth는 객체 안의 객체를 몇 단계까지 보여줄지 결정 (기본값 2)

 

console.trace( 레이블 ) 에러가 어디에서 발생했는지 추적할 수 있게 함

일반적으로 에러가 발생하면 에러 위치를 알려주지만, 위치가 나오지 않을 때 사용할만 함.

 

console.js

const string = 'bac';
const num = 1;
const bool = true;
const obj = {
    outside: {
        inside:{
            key : 'value',
        },
    },
};

console.time('전체 시간');
console.log('평범한 로그. 쉼표로 구분해 여러 값을 찍을 수 있음.');
console.log(string, num, bool);
console.error('에러 메시지는 console.error에');

console.table([{ name : 'Joohoney', birth: 1994}, {name : 'I.M', birth : 1996}]);

console.dir(obj, {colors: false, depth: 2});
console.dir(obj, {colors: true, depthL: 1});

console.time('시간 측정');
for(let i = 0; i < 100000; i++){}
console.timeEnd('시간 측정');

function b(){
    console.trace('에러 위치 추적');
}
function a(){
    b();
}
a();

console.timeEnd('전체 시간');

terminal

 

PS ch 3\3.4 Node embedded object> node console
평범한 로그. 쉼표로 구분해 여러 값을 찍을 수 있음.
bac 1 true
에러 메시지는 console.error에
┌─────────┬────────────┬───────┐
│ (index) │    name    │ birth │
├─────────┼────────────┼───────┤
│    0    │ 'Joohoney' │ 1994  │
│    1    │    'IM'    │ 1996  │
└─────────┴────────────┴───────┘
{ outside: { inside: { key: 'value' } } }
{ outside: { inside: { key: 'value' } } }
시간 측정: 2.65ms
Trace: 에러 위치 추적
    at b (ch 3\3.4 Node embedded object\console.js:27:13)
    at a (ch 3\3.4 Node embedded object\console.js:30:5)
    at Object.<anonymous> (ch 3\3.4 Node embedded object\console.js:32:1)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47
전체 시간: 19.404ms

3. timer

setTimeout(콜백 함수, 밀리초) 주어진 밀리초( 1 / 1,000 ) 이후에 콜백함수 실행

setInterval(콜백 함수, 밀리초) 주어진 밀리초마다 콜백함수 반복 실행

setImmediate(콜백 함수) 콜백 함수를 즉시 실행

 

clearTimeout(아이디) setTimeout을 취소

clearInterval(아이디) setInterval을 취소

clearImmediate(아이디) setImmediate를 취소

 

timer.js

// 3 (1.5초 후)
const timeout = setTimeout(() => {
    console.log('1.5초 후 실행');
}, 1500);

// 2 (1초 후), 4
const interval = setInterval(() => {
    console.log('1초마다 실행');
}, 1000);

// clearTimeout에 의해 실행되지 않음
const timeout2 = setTimeout(() => {
    console.log('실행되지 않습니다.');
}, 3000);

setTimeout(() => {
    clearTimeout(timeout2);
    clearInterval(interval);
}, 2500);

// 1
const immediate = setImmediate(() => {
    console.log('즉시 실행');
});

// clearImmediate에 의해 실행되지 않음
const immediate2 = setImmediate(() => {
    console.log('실행되지 않습니다.');
});

clearImmediate(immediate2);

terminal

PS ch 3\3.4 Node embedded object> node timer
즉시 실행
1초마다 실행
1.5초 후 실행
1초마다 실행

 

실행 콘솔
0 immediate
immediate2
즉시 실행

1 interval 1초마다 실행
1.5 timeout 1.5초마다 실행
2 interval 1초마다 실행
2.5 timeout2
interval
 


출처 | Node.js 교과서 개정 2판 

My GitHub

 

 

반응형

댓글