노드 내장 객체

시아·2022년 10월 20일

nodejs

목록 보기
3/3
post-thumbnail

노드라는 놈 아직도 생소하다
이번에는 노드에서 기본적으로 제공하는 내장 객체들을 정리해보려 한다

global

브라우저의 window와 같은 전역 객체!
전역 객체이므로 모든 파일에서 접근 가능.
노드 콘솔에 로그를 기록하는 colsole 객체도 원래는 global.console인데 global이 생략된 것

console

console 객체는 보통 디버깅을 위해 사용
개발 중 변수에 제대로 된 값이 들어 있는지 확인하기 위해 사용
에러 발생 시 에러 내용을 콘솔에 표시
코드 실행시간을 알아보기 위해서도 사용
대표적으로 console.log 메서드가 있다.

const string = 'abc';
const number = 1;
const boolean = true;
const obj = {
	outside: {
    	inside: {
        	key:'value',
        },
    },
};
console.time('전체 시간');
console.log('로그 출력하기');
console.log(string, number, boolean);
console.error('에러 메시지 출력하기');

console.table([{name: '세아', birth: '1996'}, {name: '짱구', birth: '1994'}]);

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

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

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

console.timeEnd('전체 시간');
  • console.time(레이블) : console.timeEnd 와 대응되어 같은 레이블을 가진 time과 timeEnd 간의 시간을 측정
  • console.log(내용) : 로그를 콘솔에 표시. 쉼표로 여러 내용을 동시에 출력할수도 있음
  • console.error(에러 내용) : 에러를 콘솔에 표시
  • console.table(배열) : 배열의 요소로 객체 리터럴을 넣으면, 객체의 속성들이 테이블 형식으로 표현됨
  • console.dir(객체, 옵션) : 객체를 콘솔에 표시할 때 사용. 옵션의 color를 true로 하면 콘솔에 색이 추가됨. depth는 객체 안의 객체를 몇 단계까지 보여줄지를 결정. 기본값은 2
  • console.trace(레이블) : 에러가 어디서 발생했는지 추적할 수 있음. 일반적으로는 에러 발생 시 위치를 알려주므로 자주 사용하지 않는 편...

실행 결과

타이머

  • setTimeout(콜백 함수, 밀리초) : 주어진 밀리초(1000분의 1초) 이후에 콜백 함수를 실행
  • setInterval(콜백 함수, 밀리초) : 주어진 밀리초마다 콜백 함수 반복 실행
  • setImmediate(콜백 함수) : 콜백 함수를 즉시 실행

이 타이머 함수들은 모두 아이디를 반환합니다. 아이디를 사용하여 타이머를 취소할 수 있습니다.

  • clearTimeout(아이디) : setTimeout을 취소함
  • clearInterval(아이디) : setInterval을 취소함
  • clearImmediate(아이디) : setImmediate 취소
timer.js _________________________________________________________________

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

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

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

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

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

const immediate2 = setImmediate(() => {
	console.log('실행되지 않습니다');
});

clearImmediate(immediate2);
__________________________________________________________________________

filename, dirname

console.log(__filename);
console.log(__dirname);

현재 파일의 이름과 경로가 표시됨

module, exports, require

console.log(this);
console.log(this === module.exports);
console.log(this === exports)
function whatIsThis() {
    console.log('function', this === exports, this === global);
}
whatIsThis();

최상위 스코프에 존재하는 this는 module.exports (또는 다른 exports 객체) 를 가리킴. 함수 선언문 내의 this는 global 객체를 가리킴.

profile
Sia Lim

0개의 댓글