Computer Science/Web

NodeJS의 내장 객체 내용 간단 정리

TwinParadox 2019. 1. 8. 22:48
728x90

console

보통 디버깅을 위해 사용함. 변수 값 체크나, 에러 확인, 실행 경과 시간을 확인할 대 사용.


console.time(레이블), console.timeEnd(레이블)

같은 레이블을 가진 time과 timeEnd 사이에서 시간 측정.


console.log(내용)

로그를 콘솔에 표시.


console.error(에러 메세지)

에러를 콘솔에 표시.


console.dir(객체, 옵션)

객체를 콘솔에 표시할 때 사용. 첫 번째 인자로 표시할 객체를 넣고 두 번째 인자로 옵션을 넣음. depth는 객체 안의 객체를 몇 단계까지 보여줄 지 결정하며, 기본값 2.


console.trace(레이블)

에러 추적할 수 있게 해줌. 에러 발생 시점에 에러 위치가 나와서 흔히 사용하지는 않으나, 위치가 나오지 않을 때 사용.




타이머

setTimeout, setInterval, setImmediate

노드에서는 window 대신 global에 있음. setInterbal, setTimeout은 브라우저에서도 흔히 사용.


setTimeout(콜백 함수, ms)

일정 시간 이후에 콜백 함수 실행


setInterval(콜백 함수, ms)

일정 시간마다 콜백 함수를 반복


setImmediate(콜백 함수)

콜백 함수를 즉시 실행



setTimeout(함수, 0)과 setImmediate(함수)의 차이

setImmediate는 setTimeout(함수, 0)보다 먼저 실행되는 경우가 있음. 파일 시스템 접근, 네트워킹 같은 I/O작업의 함수 안에서 타이머를 호출하는 경우가 이에 해당하며 그런 경우가 있다는 뜻이지 반드시 그런 것은 아님. 헷갈릴 수 있어서, 즉시 실행이 필요한 경우에는 setTimeout(함수, 0)의 방식은 피할 것.




__filename, __dirname

파일 사이 모듈 관계가 있는 경우가 많기 떄문에, 현재 경로 및 파일명을 알아야할 때 이 키워드를 사용함.




module, exports

module 객체 외에도 exports 객체로 모듈을 생성할 수 있음. module.exports와 exports는 같은 객체를 참조함. exports를 사용할 때는 module.exports와의 참조 관계가 깨지지 않게 주의해야 하고 되도록이면 둘 중 하나만 선택해서 사용할 것. exports는 객체만 사용 가능하며, module.exports에 삽입한 경우에 exports로의 변경은 불가능함. 




process

process 객체는 실행되고 있는 노드 프로세스에 대한 정보를 담음. 실행 환경 별 차이에 맞춰 동작하게끔 할 때 사용.


- process.env

서비스의 중요 키를 저장하는 공간으로도 사용하며 서버나 DB의 비밀번호와 각종 API 키를 여기서 process.env 속성으로 대체함. 


- process.nextTick(콜백)

이벤트 루프가 다른 콜백 함수들보다 이것을 먼저 처리. 이것과 Promise를 마이크로태스크(microtask)로 따로 칭함.


- process.exit(코드)

실행 중인 노드 프로세스 종료. 서버에서 사용하면, 서버가 멈춤. 독립 프로그램에서 노드를 멈추가 할 때 사용. 인자가 없거나 0이면 정상 종료, 1인 경우 비정상 종료.



728x90
728x90