[3강~5강] node.js 전역 객체, 기본 모듈, 이벤트

3강 node.js 전역 객체

  • node.js에는 최상위 객체로 window 객체가 아닌 다른 전역 객체들을 가지고 있음(윈도우 어플리케이션 상에서 돌아가지 않으므로)

  • 전역 객체는 말그대로 프로그램 전역에서 사용할 수 있는 객체를 의미함

  • 이와 함께 전역 변수도 존재함

  • 전역 변수

    • __filename
      • 해당 파일의 경로 + 파일 이름을 저장
    • __dirname
      • 해당 파일의 경로를 저장
    • 사용법
      • node.basic.js
        1
        2
        console.log("filename: ", __filename);
        console.log("dirname: ", __dirname);
      • result
        1
        2
        3
        $ node node.basic.js
        > /usr/bin/node_ex/node.basic.js
        > /usr/bin/node_ex
  • 전역 객체

    • console
      • node.js console 화면을 다루는 객체
      • 관련 메소드에는 log(), time(), timeEnd() 가 있음
        • log(): 출력 함수, 문법은 C 언어와 동일
        • time(): 시간 측정 시작
        • timeEnd(): 시간 측정 종료
    • 사용 예제
      • node.basic.js
        1
        2
        3
        4
        5
        console.time("alpha");
        console.log("%d + %d = %d", 67, 123, 190);
        console.log("hihi");
        console.log("My JSON: %j", { name: "David" });
        console.timeEnd("alpha");
      • result
        1
        2
        3
        4
        5
        $ node node.basic.js
        > 67 + 123 = 190
        > hihi
        > { 'name': 'David' }
        > alpha: 2.7ms (depends on your PC)
    • process
      • 프로그램의 정보를 나타내는 객체, nodejs만이 가진 특징
      • 객체의 각 속성들과 메소드들은 다음과 같음
        • argv: 실행 매개변수를 나타냄
        • env: 컴퓨터 환경 정보를 나타냄
        • version: nodejs 버젼을 나타냄
        • versions: nodejs에 종속된 프로그램의 버젼을 나타냄
        • arch: 프로세서의 아키텍쳐를 나타냄
        • platform: 플랫폼을 나타냄
        • exit(0): 프로그램을 종료시키는 메소드
        • memoryUsage(): 메모리 사용 정보 객체를 리턴하는 메소드
        • uptime(): 현 프로그램이 실행된 시간을 리턴하는 메소드
    • 사용 예제(argv, exit())
      • node.process.js
        1
        2
        3
        4
        5
        6
        7
        8
        9
        process.argv.forEach(function(item, index) {
        console.log(index + ":" + typeof item + ":", item);
        if (item === "--exit") {
        var exitTime = Number(process.argv[index + 1]);
        setTimeout(function() {
        process.exit();
        }, exitTime);
        }
        });
      • result
        1
        2
        3
        4
        0:string: /usr/local/bin/node
        1:string: /Users/taebbong/Desktop/node_ex/node.process.js
        2:string: --exit
        3:string: 10000
      • 결과 분석
        • 프로그램이 실행되면 해당 프로세스의 메타데이터(argv) 정보가 존재하게 되는데, 이를 하나하나 파싱한 것
        • 그렇게 하나하나 출력하다가 –exit이라는 string을 발견하면 일정시간을 기다렸다가 종료되도록 만든 것
    • export
      • 모듈 만들어서 불러오기
    • 사용 예제
      • module.js
        1
        2
        3
        4
        5
        export.abs = function(number){
        if(number > 0)
        return number;
        return -number;
        };
      • main.js
        1
        2
        var module = require("./module.js");
        console.log("abs(-273) = %d", module.abs(-273));
      • result
        1
        2
        $ node main.js
        > abs(-273) = 273

4강 node.js 기본 모듈

  • 기본 내장 모듈을 공부하려면 node.js API 문서를 보는 것이 좋을 것

  • node.js API Doc

  • 이제 각 기본 내장 모듈에 대해 알아보자

  • os

    • os에 관한 메소드, 객체가 존재
    • 개념보다는 문서를 보고 활용함에 집중
  • 사용 예제

    • node.os.js
      1
      2
      3
      4
      var os = require("os");
      console.log(os.hostname());
      console.log(os.type());
      console.log(os.networkInterfaces());
    • result
      1
      2
      3
      4
      5
      6
      7
      8
      USERNAME.local
      Darwin
      lo0:
      [ { address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      } ... ]
  • url

    • url과 관련된 내장 모듈
  • 사용 예제

    • node.url.js
      1
      2
      3
      var url = require("url");
      var parsedObject = url.parse("https://taebbong.github.io");
      console.log(parsedObject);
    • result
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      Url {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'taebbong.github.io',
      port: null,
      hostname: 'taebbong.github.io',
      hash: null,
      search: null,
      query: null,
      pathname: '/',
      path: '/',
      href: 'http://taebbong.github.io/' }
  • crypto

    • 암호화, 해시 생성 모듈
  • file system

    • 파일 관리, 읽고 쓰기 가능

[3강~5강] node.js 전역 객체, 기본 모듈, 이벤트

https://taebbong.github.io/2018/01/04/2018-01-04-node-02/

Author

TaeBbong Kwon

Posted on

2018-01-04

Updated on

2022-08-06

Licensed under

Comments