Node Global object (console)

node 환경에서의 글로벌 객체

브라우저 환경에서는 window가 글로벌 객체, node 에서는 global 이 글로벌 객체이다.

console.log(global.console); // 브라우저 환경에서는 window가 글로벌 객체, node 에서는 global이 글로벌 객체

/* 글로벌 객체에 함수 선언 */
global.hello = ()=>{
    console.log('hello');
}

global.hello();
hello(); // hello

/* console 도 글로벌 객체에 속함 */
global.console.log('test') // test

Console log 에 대하여

브라우저 콘솔에서 확인하면 로그 레벨별로 색깔이 다름을 알 수 있다.

warn이나 error와 같은 심각한 에러가 있을때 에러를 찾기 쉽고, 배포시에도 서버의 심각성을 빠르게 알아차릴 수 있다.

에러인데도 계속 console.log 만 사용하면 정말 심각한지 아닌지 걸러내는게 힘들다 🙂 ..

또, 개발할때는 로그를 이용하지만 배포할때는 로그를 출력하지않도록 레벨별로 출력할건지 파일에 저장할건지 컨트롤이 가능하기때문에, 개발 할때부터 로그 레벨 별로 다르게 사용하는 것이 좋다.

console.log('loggingggggg');
console.clear();

//log level
console.log('log'); // 개발 용도
console.info('info'); // 정보 전달 용도
console.warn('warn'); // 경보 단계
console.error('error'); // 심각한 에러, 사용자 에러, 시스템 에러

// assert (첫번째 전달한 인자 값이 true가 아닐때만 실행)
console.assert(2 === 3, 'not same!');
console.assert(2 === 2, 'same!');

// print object
const student = {name:'dylan', age:20, company: {name: 'AC'}};
console.log(student);
console.table(student); // 테이블 형식으로 이쁘게 출력됨
console.dir(student,{showHidden:true, colors: false, depth:0});


// measuring time (성능 측정시 유용)
console.time('for loop')
for (let i = 0; i < 10; i++){
    i++;
}
console.timeEnd('for loop'); // for loop: 0.083ms

//counting
function a(){
    console.count('a function');
}
a();
console.countReset('a function'); // count reset
a();


//trace (어디서 호출했는지 파악가능 : 디버깅시 유용)
function f1(){
    f2();
}
function f2(){
    f3();
}
function f3(){
    console.log('f3');
    console.trace();
}
f1();