노드
노드 내장 객체 global, console, 타이머
포칼이
2023. 4. 11. 16:08
require나 export 같은 기능들은 별도로 선언을 하지 않았는데 그냥 원래 있는 기능처럼 사용한다.
애러가 나지 않고 그냥 사용할 수 있는 이유는 노드가 그 기능들을 지원해주기 때문이다.
global
노드의 전역 객체
- 브라우저의 window 같은 역할
- 모든 파일에서 접근 가능
- window처럼 생략도 가능(console, require도 global의 속성)
*우리가 어떤 기능을 쓸 때 global은 생략이 가능했다. global.require라고 굳이 쓰지 않듯이...
global 속성 공유
global 속성에 값을 대입하면 다른 파일에서도 사용 가능하다.
//globalA.js
module.exports = () => global.message;
//globalB.js
const A = require('./globalA');
globalThis.message = '안녕하세요';
console.log(A());
이렇게 된다는 것만 알고 넘어가자. 실제로 저렇게 하는 것은 권장되지 않는다.
console 객체
브라우저의 console 객체와 매우 유사하다.
console.time, console.timeEnd : 시간 로깅
console.error : 에러 로깅
console.log : 평범한 로그
console.dir : 객체 로깅
console.trace : 호출스택 로깅
이런 것들이 있다는 것만 알고 넘어가자. 이런 기능들을 노드에서 지원해 주기 때문에 별도의 선언 없이도 사용이 가능하다.
타이머 메서드
- set 메서드에 clear 메서드가 대응된다.
- set 메서드의 리턴 값(아이디)을 clear 메서드에 넣어 취소
- setTimeout(콜백 함수, 밀리초) : 주어진 밀리초 이후에 콜백 함수를 실행한다.
- setInterval(콜백 함수, 밀리초) : 주어진 밀리초마다 콜백 함수를 반복 실행한다.
- setImmediate(콜백 함수) : 콜백 함수를 즉시 실행한다.
- clearTimeout(아이디) : setTimeout을 취소한다.
- clearInterval(아이디) : setInterval을 취소한다.
- clearImmediate(아이디) : setImmediate를 취소한다.
이런 메서드들을 사용할 수 있다.
이런 메서드들은 너무 외우려 하지 않고 필요할때 찾아서 사용해보고 숙지하는 것이 제일 좋다고 생각한다.