Node.js의 기본 모듈1

주요 기본 모듈

  • 프로세스 환경

    • os, process, cluster
  • 파일과 경로, URL

    • fs, path, URL, querystring, stream
  • 네트워크 모듈

    • http, https, net, dgram, dns

전역 객체

  • 전역 객체 (global)

    • 별도의 모듈 로딩없이 사용
    • global 모듈
      • global.console.log()
    • global 생략 가능
      • console.log()
  • 주요 전역 객체

    • process
    • console
    • Buffer (클래스)
    • require
    • filename, dirname
    • module
    • exports
    • Timeout 함수
  • 전역 객체 : process

    • 애플리케이션 프로세스 실행 정보 제공
    • env : 애플리케이션 실행 환경
    • version : Node.js 버전
    • arch, platform : CPU와 플랫폼 정보
    • argv : 실행 명령 파라미터

    • 이벤트

      • exit : 애플리케이션 종료 이벤트
      • beforeExit : 종료 되기 전에 발생하는 이벤트
      • uncaughtException : 예외 처리되지 않은 예외 이벤트
    • 함수
      • exit : 애플리케이션 종료
      • nextTick : 이벤트 루프 내 동작을 모두 실행 후 콜백 실행

타이머

  • 타이머 함수

    • 지연 동작 : setTimeout
    • 반복 동작 : setInterval
  • Timeout

    • 일정 시간 뒤 호출
      • setTimeout(callback, delay, arg, …)
      • clearTimeout()
    • 파라미터
      • callback : 함수 형태
      • delay : 초(milli second)
      • arg : callback 함수의 파라미터
    • 예제 코드

      1
      2
      3
      4
      5
      function sayHello(){
      console.log('Hello World');
      }
      // 3초뒤 실행
      setTimeout(sayHello, 3*1000);
    • 타이머 취소

      1
      2
      var t = setTimeout(sayHello, 10);
      cleatTimeout(t);
    • 반복

      • setInterval(callback, delay, arg, …)
      • clearInterval()
    • 예제 코드

      1
      2
      3
      4
      function sayGoodBye(who){
      console.log('Good bye', who);
      }
      setInterval(sayGoodBye, 1*1000, 'Friend');

콘솔 (Console)

  • 콘솔 (Console)

    • 로그 남기기
    • 실행 시간 측정
  • 로그 남기기

    1
    2
    3
    4
    console.log('log', 'log message');
    console.log('info', 'info message');
    console.log('warn', 'warn message');
    console.log('error', 'error message');
    • 값 출력

      1
      2
      var intValue = 3;
      console.log('intValue' + 3);
    • 객체형 출력

      1
      2
      3
      4
      5
      6
      var obj = {
      name : 'IU',
      job : 'Singer'
      }
      console.log('obj:' + obj); //+를 이용하면 object 타입으로 타입추론이 힘들다.
      console.log('obj:', obj); //콤마를 이용하면 어떤 값이 들어있는지 잘 알 수 있다.
  • 커스텀 콘솔

    • 콘솔 타입 로딩

      1
      var Console = require('console').Console;
    • 콘솔 객체 생성

      1
      new Console(stdout[, stderr])
    • 파라미터 : 출력 스트림

      • stdout : 표준 출력 스트림, info, log
      • stderr : 에러 출력, warn, error
    • 파일로 로그 남기는 커스텀 콘솔

      1
      2
      3
      4
      5
      6
      // info, log 출력
      var output = fs.createWriteStream('./stdout.log');
      // error, 경고 출력
      var errorOutput = fs.createWriteStream('./stderr.log');
      // 화면 뿐만 아니라 파일로도 로그 남기기 가능
      var logger = new Console(output, errorOutput);
  • 실행 시간 측정

    • 시작 시점 설정하기
      • console.time(TIMER_NAME)
    • 종료 시점, 걸린 시간 계산해서 출력

      • console.timeEnd(TIMER_NAME)
    • 예제 코드

      1
      2
      3
      4
      5
      6
      7
      8
      //시간 측정 시작
      console.time('SUM');
      var sum = 0;
      for(var i = 1; i<10000; i++){
      sum += i;
      }
      //시간 측정 종료
      console.timeEnd('SUM');

유틸리티

  • 모듈 로딩

    • var util = require(‘util’);
  • 주요 기능

    • 문자열 포맷
    • 상속
  • 포멧

    • 문자열 포멧
      • util.format(format[, …])
    • placeholder
      • %s : String
      • %d : Number
      • %j : JSON
  • 예제 코드

    1
    2
    3
    4
    var str1 = util.format('%d + %d = %d', 1, 2, (1+2));
    // 1 + 2 = 3
    var str2 = util.format('%s %s', 'Hello', 'World');
    // Hello World
  • 상속

    • 상속 : inherits
      • util.inherits(constructor, superConstructor);
    • 사용 방법
      • util.inherits(ChildClassFunction, ParentClassFunction);
    • 예제 코드

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      var util = require('util');

      function Parent(){

      }
      Parent.prototype.sayHello = function(){
      console.log('Hello World, from Parent!');
      }

      var obj = new Parent();
      obj.sayHello();

      function Child(){

      }

      // Child가 Parent를 상속 받음
      util.inherits(Child, Parent);


      var obj2 = new Child();
      obj2.sayHello();