ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 노드 내장 객체 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를 취소한다. 

    이런 메서드들을 사용할 수 있다.

     

    이런 메서드들은 너무 외우려 하지 않고 필요할때 찾아서 사용해보고 숙지하는 것이 제일 좋다고 생각한다.

    '노드' 카테고리의 다른 글

    노드 os와 path  (0) 2023.04.11
    노드 process  (0) 2023.04.11
    노드 ECMAScript 모듈, 다이나믹 임포트, top level await  (0) 2023.04.11
    노드 exports, this, require, 순환참조  (0) 2023.04.11
    노드 CommonJS 모듈 시스템  (0) 2023.04.11
Designed by Tistory.