ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #1. 노드 간단하게 살펴보기
    ■ Front-End/- Node.js 2019. 5. 1. 00:49

    참고 : Do it! Node.js 프로그래밍

    http://www.yes24.com/Product/goods/32442876

     

    Do it! Node.js 프로그래밍

    지금 당장 서버가 필요하다면? 실제 서버로 구동 가능한 코드로 배워라! 웹 서버, 채팅 서버, 모바일 서버, 위치 기반 서비스 서버, JSON-RPC 서버까지 한 권으로 끝낸다! 이 책은 누구나 쉽게 접근할 수 있는 자바스크립트 언어로 웹 서버를 만들며 서버 개발에 입문한다. 웹 서버를 만들며 작성한 소스 코드를 바로바로 수정해서 다양한 서버를 단박...

    www.yes24.com

     

     

     

     

     

    전역 객체(Global Object)

    전역 객체 이름 설명
    console 콘솔 창에 결과를 보여주는 객체
    process 프로세스의 실행에 대한 정보를 다루는 객체
    exports 모듈을 다루는 객체

     

     


    1. console

    (1) console.dir(object)

    - 자바스크립트 객체들의 속성들을 출력한다.

    예)

    var Person = {name:"강동원", age:39};
    console.dir(Person);

    결과 값)

    console.dir 결과값

     

     

    (2) console.time(id), console.timeEnd(id)

    - 실행 시간을 측정하기 위한 시작 시간과 끝 시간을 기록한다.

    예)

    var result = 0;
    
    console.time("duration_sum");
    
    for(var i=0; i<=1000; i++) {
        result += i;
    }
    
    console.timeEnd("duration_sum");

    결과 값)

    duration_sum: 0.221ms

     

     

     

    (3) console.log("%s, %s", __filename, __dirname);

    - __filename : 실행한 파일의 이름을 출력한다. 파일의 전체 경로가 출력된다.

    - __dirname : 실행한 파일이 들어 있는 폴더를 출력한다. 폴더의 전체 경로가 출력된다.

    예)

    console.log("현재 실행한 파일의 이름 : %s", __filename);
    console.log("현재 실행한 파일의 PATH : %s", __dirname);

    결과 값)

    현재 실행한 파일의 이름 : /Users/test/brackets-nodejs/NodeExample1/ch02_test1.js

    현재 실행한 파일의 PATH : /Users/test/brackets-nodejs/NodeExample1

     

     


    2. process 객체

    프로그램을 실행했을 때 만들어지는 프로세스 정보를 다루는 객체이다.

     

    process 객체의 주요 속성과 메소드

    속성/메소드 이름 설명
    argv 프로세스를 실행할 때 전달되는 파라미터(매개변수) 정보
    env 환경 변수 정보
    exit() 프로세스를 끝내는 메소드

     


    3. exports 객체

    모듈 파일을 불러와서 사용하기 위해 쓰는 객체

     

    모듈

    독립적인 기능을 별도로 분리한 파일

     

    예)

     

    main.js

    var module1 = require('module1');
    module1.add();

     

    module1.js

    exports.add = function(a,b) {
    	return a+b;
    }

     

     

    exports VS module.exports

    exports

    여러 개의 변수나 함수를 각각의 속성으로 추가할 수 있다.

    예)

    exports.add = function(a,b) {
    	return a+b;
    };
    
    exports.multiply = function(a,b) {
    	return a*b;
    };

    main.js 파일에서 사용할 때

    var calc = require('./calc');
    console.log('모듈로 분리한 후 - calc.add 함수 호출 결과 : %d', calc.add(10, 10));

     

     

    module.exports

    하나의 변수나 함수 또는 객체를 직접 할당한다.

    예)

    var calc = {};
    
    cals.add = function(a,b) {
    	return a+b;
    };
    
    calc.multiply = function(a,b) {
    	return a*b;
    };
    
    module.exports = calc;

    main.js 파일에서 사용할 때

    var calc = require('./calc');
    console.log('모듈로 분리한 후 - calc.add 함수 호출 결과 : %d', calc.add(10, 10));

     

     

    외장 모듈 사용하기

    npm 패키지를 사용해서 다른 사람들이 만든 모듈을 이용할 수 있다.

     

     

    NPM(Node Package Manager)

    다른 사람들이 만든 노드 패키지를 다운로드하여 설치할 수 있도록 도와주는 프로그램

    npm으로 설치된 패키지들은 'node_modules'라는 폴더 안에 설치된다.

    메인 파일이 실행될 때, 먼저 현재 폴더에 'node_modules' 폴더가 있는지 확인하고, 만약 없다면 상위 폴더를 순차적으로 검색한다.

    따라서, 모든 프로젝트에 외부 패키지를 적용하고 싶을 땐 'node_modules' 폴더를 프로젝트의 상위 폴더로 이동하면 된다.

    또, 프로그램에 설치된 외부 패키지 수가 많은 경우, 'package.json' 파일 안에 설치한 패키지들의 정보를 넣고 'npm init'을 입력하고 실행하면 프로그램에 필요한 외부 패키지들을 모두 다운받아 설치한다.

     

     

    내장 모듈 사용하기

    (1) os 모듈

    시스템 정보들을 알려주는 모듈

    메소드 이름 설명
    hostname() 운영체제의 호스트 이름을 알려준다.
    totalmem() 시스템의 전체 메모리 용량을 알려준다.
    freemem() 시스템에서 사용 가능한 메모리 용량을 알려준다.
    cpus() CPU 정보를 알려준다.
    networkInterfaces() 네트워크 인터페이스 정보를 담은 배열 객체를 반환한다.

     

    예)

    var os = require('os');
    
    console.log("시스템의 hostname : %s", os.hostname());
    console.log("시스템의 메모리 : %d / %d", os.freemem(), os.totalmem());
    console.log("시스템의 CPU 정보\n");
    console.log(os.cpus());
    console.log("시스템의 네트워크 인터페이스 정보\n");
    console.log(os.networkInterfaces());

     

    결과 값)

    시스템의 hostname : HYUNui-MacBook-Pro-2.local

    시스템의 메모리 : 49233920 / 17179869184

    시스템의 CPU 정보

    [ { model: 'Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz',

    speed: 2800,

    times:

    ...]

    시스템의 네트워크 인터페이스 정보

    { lo0:

    [ { address: '127.0.0.1',

    netmask: '255.0.0.0',

    family: 'IPv4',

    mac: '00:00:00:00:00:00',

    internal: true,

    cidr: '127.0.0.1/8' },

    ....

    ]

    }

     

     

    (2) path 모듈

    파일 path를 다룰 때 필요한 메소드를 제공하는 모듈이다.

     

    메소드 이름 설명
    join()

    여러 개의 이름들을 모두 합쳐 하나의 파일 패스로 만들어 준다.

    파일 패스를 완성할 때 구분자 등을 알아서 조정한다.

    dirname() 파일 패스에서 디렉터리 이름을 반환한다.
    basename() 파일 패스에서 파일의 확장자를 제외한 이름을 반환한다.
    extname() 파일 패스에서 파일의 확장자를 반환한다.

     

    예)

    var path = require('path');
    
    // 디렉터리 이름 합치기
    var directories = ["users", "mike", "docs"];
    var docsDirectory = directories.join(path.sep);
    console.log("문서 디렉터리 : %s", docsDirectory);
    
    // 디렉터리 이름과 파일 이름 합치기
    var curPath = path.join('/Users/mike', 'notepad.exe');
    console.log('파일 패스 : %s', curPath);
    
    // 패스에서 디렉터리, 파일 이름, 확장자 구별하기
    var filename = "/Users/mike/notepad.exe";
    var dirname = path.dirname(filename);
    var basename = path.basename(filename);
    var extname =  path.extname(filename);
    
    console.log("디렉터리 : %s, 파일 이름: %s, 확장자: %s", dirname, basename, extname);
    

     

    결과 값)

     

     

Designed by Tistory.