2015년 4월 14일 화요일

Mac, Node.js 학습 2일차] 기본 내역


1. 전역변수
  - 전역변수
    . __filename : 현재 실행 중인 파일 경로
    . __dirname : 현재 실행 중인 폴더 경로
baesunghan:~/Documents/workspace/nodejs$cat node.global.js
console.log('filename:', __filename);
console.log('dirname:', __dirname);
baesunghan:~/Documents/workspace/nodejs$node node.global.js
filename: /Users/baesunghan/Documents/workspace/nodejs/node.global.js
dirname: /Users/baesunghan/Documents/workspace/nodejs
baesunghan:~/Documents/workspace/nodejs$

  - 전역객체
    . console : 콘솔 화면과 관련된 기능 관리
    . exports : 모듈과 관련된 기능 관리
    . process : 프로그램과 관련된 기능 관리

2. console 객체
콘솔 화면과 관련되 기능을 관리하는 객체
  - 제공 메소드
    . log() : 콘솔 화면에 내용 출력, java의 System.out.print와 비슷한 기능
        %d(숫자), %s(문자), %j(json)을 변수로 받아서 출력 가능함.
    . time(label) : 시간 측정 시작
    . timeEnd(label) : 시간 측정 종료

baesunghan:~/Documents/workspace/nodejs$cat node.global.js
console.log('filename:', __filename);
console.log('dirname:', __dirname);

// console.log 출력
console.log('%d, %s, %j', 273, 'Hello World!!!', {name:'Toven'}, 'no mapping');

// 시간 측정 시작
console.time('alpha');

var output = 1;
for (var i=1; i<=100; i++) {
output *= i;
}
console.log('Result:', output);

// 시간 측정 종료
console.timeEnd('alpha');
baesunghan:~/Documents/workspace/nodejs$node node.global.js
filename: /Users/baesunghan/Documents/workspace/nodejs/node.global.js
dirname: /Users/baesunghan/Documents/workspace/nodejs
273, Hello World!!!, {"name":"Toven"} no mapping
Result: 9.33262154439441e+157
alpha: 1ms
baesunghan:~/Documents/workspace/nodejs$


3. process 객체
 모듈과 관련된 기능을 관리하는 객체
  - 프로세스 객체의 속성
    . argv : 실행 매개변수
    . env : 실행 환경과 관련된 변수
    . version : Node.js version
    . versions : Node.js에 종속된 프로그램 버젼
    . arch : 프로세스의 아키텍쳐
    . platform : 플랫폼

  - process 객체의 method
    . exit([exitCode = 0]) : 프로그램 종료, [] 값은 생략 가능함.
    . memoryUsage() : 메모리 사용 정보 객체 리턴
    . uptime() : 현재 프로그램 실행된 시간 리턴

baesunghan:~/Documents/workspace/nodejs$cat node.process.js
// process.argv
process.argv.forEach(function (item, index) {
// Output
console.log(index + ' : ' + typeof(item) + ' : ', item);

// In the execution arguement, when exist '--exit'
if (item == '--exit') {
// get next execution arguement
var exitTime = Number(process.argv[index+1]);

// stop program after some time
setTimeout(function () {
process.exit();
}, exitTime);
}
});

console.log('process.env :', process.env);
console.log('process.version : ', process.version);
console.log('process.memoryUsage() : ', process.memoryUsage());
baesunghan:~/Documents/workspace/nodejs$
baesunghan:~/Documents/workspace/nodejs$node node.process.js
0 : string :  node
1 : string :  /Users/baesunghan/Documents/workspace/nodejs/node.process.js
process.env : { TERM_PROGRAM: 'Apple_Terminal',
  SHELL: '/bin/bash',
  TERM: 'xterm-256color',
  TMPDIR: '/var/folders/0y/124f1qys05q4gvfgs1f4bg2h0000gn/T/',
  Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.rv0Fsj5JLE/Render',
  TERM_PROGRAM_VERSION: '343.7',
  TERM_SESSION_ID: '01CC5A92-950D-4921-9F47-5A32E1D1A2D8',
  USER: 'baesunghan',
  SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.7TZ54yc6vs/Listeners',
  __CF_USER_TEXT_ENCODING: '0x1F5:0x3:0x33',
  PATH: '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/baesunghan/Apps/apache-maven-3.2.1/bin:/usr/local/mysql/bin:',
  PWD: '/Users/baesunghan/Documents/workspace/nodejs',
  JAVA_HOME: '/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home',
  LANG: 'ko_KR.UTF-8',
  XPC_FLAGS: '0x0',
  PS1: '\\u:\\w$',
  XPC_SERVICE_NAME: '0',
  SHLVL: '1',
  HOME: '/Users/baesunghan',
  LOGNAME: 'baesunghan',
  _: '/usr/local/bin/node',
  OLDPWD: '/Users/baesunghan/Documents/workspace' }
process.version :  v0.12.2
process.memoryUsage() :  { rss: 18878464, heapTotal: 9751808, heapUsed: 4132360 }
baesunghan:~/Documents/workspace/nodejs$

4. exports 객체
Node.js는 모듈을 사용하여 기능을 확장하는데 이 모듈을 관리하는 기능
baesunghan:~/Documents/workspace/nodejs$cat module.js
// 절대값을 구하는 메소드 정의
exports.abs = function (number) {
if (0 < number) {
return number;
} else {
return -number;
}
};
exports.circleArea = function (radius) {
return radius * radius * Math.PI;
};baesunghan:~/Documents/workspace/nodejs$cat main.js
// 모듈을 추출
var module = require('./module.js');
// 모듈 사용
console.log('abs(-273) = %d', module.abs(-273));
console.log('circleArea(3) = %d', module.circleArea(3));baesunghan:~/Documents/workspace/nodejs$node main.js
abs(-273) = 273
circleArea(3) = 28.274333882308138
baesunghan:~/Documents/workspace/nodejs$
 

댓글 없음:

댓글 쓰기