/******************************************************
var result = 0;
console.time('d_t');
for(var i=0; i<=100000; i++) {
result += i;
}
console.timeEnd('d_t');
console.log('1부터 100000 까지의 합 : %d', result);
*******************************************************/
/******************************************************
console.log('현재 실행한 파일의 이름 : %s',__filename);
console.log('현재 실행한 파일의 경로 : %s',__dirname);
*******************************************************/
/******************************************************
var Person = {name:"소녀시대", age:20};
console.dir(Person);
******************************************************/
/******************************************************
console.log('argv 속성의 파라미터 수 : ' + process.argv.length);
console.dir(process.argv);
console.log(process.argv[2]);
process.argv.forEach(function(item, index) {
console.log(index + ' : ' + item);
});
******************************************************/
/******************************************************
console.dir(process.env);
console.log('OS 환경변수의 값 : ' + process.env[OS]);
******************************************************/
/******************************************************
var calc = require('./calc.js');
console.log('모듈로 분리한 후 - calc.add 함수 호출 결과 : %d', calc.add(12, 13));
console.log('모듈로 분리한 후 - calc.multiple 함수 호출 결과 : %d', calc.multiple(2, 5));
******************************************************/
/******************************************************
var calc2 = require('./calc2.js');
console.log('모듈로 분리한 후 - calc2.add 함수 호출 결과 : %d', calc2.add(12, 13));
console.log('모듈로 분리한 후 - calc2.multiple 함수 호출 결과 : %d', calc2.multiple(2, 5));
******************************************************/
/******************************************************
var nconf = require('nconf');
nconf.env();
console.log('OS 환경 변수이ㅡ 값 : %s', nconf.get('OS'));
******************************************************/
/******************************************************
var os = require('os');
console.log('시스템의 hostname : %s', os.hostname());
console.log('시스템의 메모리 : %d / %d', os.freemem()/(1024*1024), os.totalmem()/(1024*1024));
console.log('시스템의 CPU 정보\n');
console.dir(os.cpus());
console.log('시스템의 네트워크 인터페이스 정보\n');
console.dir(os.networkInterfaces());
******************************************************/
/******************************************************
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 Person = {};
Person['name'] = 'kkyun';
Person['age'] = 31;
Person.add = function(a,b) {
return a+b;
};
console.log('더하기 : %d', Person.add(2,4));
******************************************************/
/******************************************************
var Users = [{name:'소녀시대', age:20},{name:'걸스데이', age:22}];
Users.push({name:'티아라', age:23});
console.log('사용자 수 : %d', Users.length);
console.log('첫 번째 사용자 이름 : %s', Users[0].name);
var add = function(a,b) {
return a+b;
};
Users.push(add);
console.log('배열의 요소 수 : %d', Users.length);
console.log('함수 실행 : %d', Users[3](10,12));
for (var i=0; i<Users.length; i++) {
console.log('배열요소 #' + i + ' : %s', Users[i].name);
}
Users.forEach(function (item, index) {
console.log('배열 요소 #' + index + ' : %s', item.name);
});
******************************************************/
/******************************************************
// 배열에 값 추가 및 삭제하기
push(object) : 배열의 끝에 요소를 추가합니다.
pop() : 배열의 끝에 있는 요소를 삭제합니다.
unshift(object) : 배열의 앞에 요소를 추가합니다.
shift() : 배열의 앞에 있는 요소를 삭제합니다.
splice(index, removeCount[,object]) : 여러 개의 객체를 요소로 추가하거나 삭제합니다.
slice(index, copyCount) : 여러 개의 요소를 잘라내어 새로운 배열 객체로 만듭니다.
******************************************************/
/******************************************************
var Users = [{name:'소녀시대', age:20},{name:'걸스데이', age:22}];
console.log('push() 호출 전 요소 수 : %d', Users.length);
Users.push({name:'티아라', age:23});
console.log('push() 호출 후 요소 수 : %d', Users.length);
Users.pop();
console.log('pop() 호출 후 요소 수 : %d', Users.length);
******************************************************/
/******************************************************
var Users = [{name:'소녀시대', age:20},{name:'걸스데이', age:22},{name:'티아라', age:23}];
//console.log('deleted 하기 전 요소의 수 : %d', Users.length);
// delete 경우 undefined 요소로 남아버린다.
//delete Users[1];
//console.log('delete 후');
//console.dir(Users);
console.dir(Users);
Users.splice(1,0, {name:"애프터스쿨", age:25});
console.log('splice()로 요소를 인덱스 1에 추가 후');
console.dir(Users);
Users.splice(2,1);
console.log('splice()로 인덱스 2의 요소를 1개 삭제한 후');
console.dir(Users);
******************************************************/
/******************************************************
// 콜백(callback) 함수
function add(a, b, callback) {
var result = a+b;
callback(result);
}
add(10, 10, function (result) {
console.log('파라미터로 전달된 콜백 함수 호출됨');
console.log('더하기 (10,10)의 결과 : %d', result);
});
******************************************************/
/******************************************************
// 함수 안에서 새로운 함수를 반환
function add(a, b, callback) {
var result = a+b;
callback(result);
var history = function () {
return a + ' + ' + b + ' = ' + result;
};
return history;
}
var add_history = add (10, 10, function(result) {
console.log('파라미터로 전달된 콜백 함수 호출됨');
console.log('더하기 (10,10)의 결과 : %d', result);
});
console.log('결과 값으로 받은 함수 실행 결과 : ' + add_history());
******************************************************/
/******************************************************
// 프로토타입 객체 만들기
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.walk = function(speed) {
console.log(speed + 'km 속도로 걸어갑니다.');
}
var person1 = new Person('소녀시대', 20);
var person2 = new Person('걸스데이', 22);
console.log(person1.name + '객체의 walk(10)을 호출합니다');
person1.walk(10);
******************************************************/
/******************************************************
var url = require('url');
// 주소 문자열을 URL 객체로 만들기
var curURL = url.parse('https://m.search.naver.com/search.naver?query=steve+jobs&where=m&sm=mtp_hty');
// URL 객체를 주소 문자열로 만들기
var curStr = url.format(curURL);
console.log('주소 문자열 : %s', curStr);
console.dir(curURL);
// 요청 파라미터 구분하기
var querystring = require('querystring');
var param = querystring.parse(curURL.query);
console.log('요청 파라미터 중 query의 값 : %s', param.query);
console.log('원본 요청 파라미터 : %s', querystring.stringify(param));
******************************************************/
/******************************************************
// 이벤트
process.on('exit', function() {
console.log('exit 이벤트 발생함');
});
setTimeout(function() {
console.log('2초 후에 시스템 종료 시도함');
process.exit();
}, 2000);
process.on('tick', function(count) {
console.log('tick 이벤트 발생함 : %s', count);
});
setTimeout(function() {
console.log('2초 후에 tick 이벤트 전달 시도함.');
process.emit('tick', 2);
}, 2000);
******************************************************/
/******************************************************
// 계산기 객체를 모듈로 만들어 보기
var util = require('util');
var EventEmitter = require('events').EventEmitter;
var Calc = function() {
var self = this;
this.on('stop', function() {
console.log('Calc에 stop event 전달됨');
});
};
util.inherits(Calc, EventEmitter);
Calc.prototype.add = function(a,b) {
return a+b;
}
module.exports = Calc;
module.exports.title = 'calculator';
var calc = new Calc();
calc.emit('stop');
console.log(Calc.title + '에 stop 이벤트 전달함.');
******************************************************/
/******************************************************
var fs = require('fs');
// 파일을 동기식 IO로 읽어 들입니다.
var data = fs.readFileSync('./package.json', 'utf8');
console.log(data);
// 파일을 비동기식 IO로 읽어 들입니다.
fs.readFile('./package.json', 'utf8', function(err, data) {
if (err==null) {
console.log(data);
} else {
console.log(err);
}
});
console.log('package.json 파일을 읽도록 요청했습니다.');
******************************************************/
/******************************************************
// file io method
readFile(filename, [encoding], [callback]) : 비동기식 IO로 파일을 읽어 들입니다.
readFileSync(filename, [encoding]) : 동기식 IO로 파일을 읽어 들입니다.
writeFile(filename, data, encoding='utf-8', [callback]) : 비동기식 IO로 파일을 씁니다.
writeFileSync(filename, data, encoding='utf-8') : 동기식 IO로 파일을 씁니다.
open(path, flags [, mode][, callback]) : 파일을 엽니다.
read(fd, buffer, offset, length, position [,callback]) : 지정한 부분의 파일 내용을 읽어 들입니다.
write(fd, buffer, offset, length, position [,callback]) : 파일의 지정한 부분에 데이터를 씁니다.
close(fd, [,callback]) : 파일을 닫아 줍니다.
******************************************************/
/******************************************************
var fs = require('fs');
fs.writeFile('./output.txt', 'Hello World!', function(err) {
if (err) {
console.log('Error : ' + err);
}
console.log('output.txt 파일에 데이터 쓰기 완료');
});
******************************************************/
var fs = require('fs');
//fs.open('./output.txt', 'a+', function(err, fd) {
fs.open('./output.txt', 'w', function(err, fd) {
if (err) throw err;
var buf = new Buffer('안녕!\n');
fs.write(fd, buf, 0, buf.length, null, function(err, written, buffer) {
if (err) throw err;
console.log(err, written, buffer);
fs.close(fd, function() {
console.log('파일 열기 -> 쓰기 -> 닫기 완료.');
});
});
});
'IT > ETC' 카테고리의 다른 글
[JAR] .jar 파일 생성하기 (0) | 2017.01.06 |
---|---|
[OS및 브라우저별 userAgent값] (0) | 2016.06.15 |
[[[ GlusterFS 모니터링 ]]] (0) | 2016.05.02 |
[MemCache] 멤캐쉬 띄우기 (0) | 2016.04.28 |