ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Node.js] 2. 전역 객체 - Node.js 강좌
    Web/Node.js 2015. 6. 12. 16:32
    Chapter 2. Node.js의 전역 객체


    1. 전역변수
     웹 브라우저에서 동작하는 자바스크립트 최상위 객체는 window 객체입니다. 
     
     but, Node.js는 웹 브라우저에서 동작하는 것이 아니므로 window객체가 존재하지 않습니다!!
     => 전역 변수전역 함수를 갖는 형태.

     문자열 자료형의 전역변수인 __filename__dirname이 있습니다.

     두 개의 변수는 변수 명으로도 눈치채셨으리라 생각됩니다.

     콘솔을 통해 확인해보도록 하겠습니다.

     아래 소스 코드를 node.global.js에 저장합니다.

     

    1
    2
    console.log('filename: ', __filename);
    console.log('dirname: ', __dirname);
    cs






     




     파일이 있는 경로와 파일 명을 __filename을 통해,
     파일이 속해있는 디렉토리의 경로를 __dirname을 통해 알 수 있습니다.






    2. console 객체

     console 객체의 메서드
     - log() : 출력을 하는데 사용합니다.
     - time(label) : 시간 측정을 시작하는데 사용합니다.
     - timeEnd(label) : 시간 측정을 종료하는데 사용합니다.


     console.log() 메서드는 C 기반의 방식으로도 출력이 가능합니다.





     아래 예제를 통해 직접 확인해 봅시다.


     

    1
    2
    3
    console.log('Number : %d + %d = %d'27352273 + 52);
    console.log('String : %s''Hello World!''특수 기호 상관 없음!');
    console.log('JSON : %j', {name'YeonsuMoon'});
    cs

     



     






     다음은 time 메소드를 사용하는 법을 보도록 하겠습니다.



     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 시간 측정
    console.time('alpha');
     
    var output = 1;
    for (var i = 0; i <= 7; i++) {
        output *= i;
    }
     
    console.log('Result: ', output);
     
    // 시간 측정 종료
    console.timeEnd('alpha');
    cs




     








    3. process 객체
     - 프로그램과 관련된 정보를 나타내는 객체입니다.
     - 웹 브라우저에서 작동하는 자바스크립트에 존재하지 않는 Node.js만이 가진 객체입니다.

     Property
      - argv : 실행 매개 변수를 나타냅니다.
      - env : 컴퓨터 환경과 관련된 정보를 나타냅니다.
      - version : Node.js 버전을 나타냅니다.
      - versions : Node.js와 종속된 프로그램 버전을 나타냅니다.
      - arch : 프로세서의 아키텍처를 나타냅니다.
      - platform : 플랫폼을 나타냅니다.

     Method
      - exit([exitCode = 0]) : 프로그램을 종료합니다. (매개변수 생략가능)
      - memoryUsage() : 메모리 사용 정보 객체를 리턴합니다.
      - uptime() : 현재 프로그램이 실행된 시간을 리턴합니다.



     예제를 통해 살펴보도록 하겠습니다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // process.argv
    process.argv.forEach(function (item, index) {
        console.log(index + ' : ' + typeof(item) + ' : ', item);
        
        // 실행 매개 변수에 --exit가 있을 때
        if (item == '--exit') {
            // 다음 실행 매개 변수를 얻습니다.
            var exitTime = Number(process.argv[index + 1]);
     
            // 일정 시간 후 프로그램을 종료합니다.
            setTimeout(function() {
                process.exit();
            }, exitTime);
        }
    });
    cs



     매개 변수를 출력하고 exitTime 만큼(10초) 머물다가 종료됩니다.




     







    4. exports 객체와 모듈
     Node.js는 모듈을 사용하여 기능을 확장합니다. 이번 절에서 모듈을 생성하는 법을 보도록 하겠습니다.

     먼저 module.js를 작성합니다.


     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 절대값 구하는 메서드
    exports.abs = function (number) {
        if (0 < number) {
            return number;
        } else {
            return -number;
        }
    };
     
    // 원의 넓이를 구하는 메서드
    exports.circleArea = function (radius) {
        return radius * radius * Math.PI;
    };
    cs




     다음, main.js를 작성하여 추출합니다.



     

    1
    2
    3
    4
    var module = require('./module.js');
     
    console.log('abs(-273) = %d', module.abs(-273));
    console.log('circleArea(3) = %d', module.circleArea(3));
    cs

     




     






     모듈을 생성할 때 exports 객체를 사용하고 추출할 때는 require()를 사용합니다!!!!




    * 이 포스팅은 '모던 웹을 위한 Node.js 프로그래밍'을 참고로 작성하였습니다.


    댓글

Designed by Tistory.