Odds and Ends

2장 Node.js 강의 정리 - 간단한 Node.js 본문

Node.js 강의 정리

2장 Node.js 강의 정리 - 간단한 Node.js

Squidward 2021. 7. 1. 15:47

2장에서는 1장에 이어 Node에 대한 간단한 내용을 배운다. - 코드 위주

 

간단한 실습 - ch02_test1.js

1. 객체 생성과 출력

2. 간단한 반복문으로 실행시간 체크

3. 파일 이름과 경로 출력

 

ch02_test1.js 파일 

var person = {
    name:'소녀시대',
    age:20
};

console.log('자바스크립트 객체입니다. %j', person); 

console.dir(person);

console.time('duration_time');

var result = 0;
for(var i=0; i<10000; i++){
    result += i;
}

console.timeEnd('duration_time');

console.log('파일 이름 : %s', __filename);
console.log('패스 : %s', __dirname);

간단한 실습 - ch02_test2.js

1. process.argv를 이용하여 파라미터 수를 알아본다.
2. forEach구문을 이용하고, 배열 원소 갯수만큼 실행하여 원소를 출력한다.

 

ch02_test2.js 파일

console.log('argv 속성의 파라미터 수 : ' + process.argv.length);

 // process.argv는 객체안에 있는 모든 속성을 출력 가능, process는 대표적인 전역 객체
console.dir(process.argv); // 배열임을, 객체임을 확인

process.argv.forEach(function(item, index){
    console.log(index + ' : ' + item);
});

* process란?

: 대표적인 전역 객체 중 하나

* argv란?

: argument Vector의 약자. 가변적인 갯수의 문자열을 의미한다.

 

[**노드에서 모듈 사용하기]

- 기능을 각각의 파일을 분리 : 파일을 읽을 때 필요한 코드를 기능별로 각각의 파일에 나누어 넣는다.

 

동작 순서

1. 메인파일에서 파일이 있는 지 확인

2. 파일 읽기

3. 화면에 내용 보여주기

 

* 모듈이란? 별도의 파일로 분리된 독립 기능, 라이브러리처럼 사용 가능

 - 다른 파일에서 모듈을 불러와 사용 가능, exports 전역 객체 사용

 - 함수를 변수에 할당할 수 있게 한다. 

 

[모듈 파일] 
exports.함수이름 = 함수 정의;

 : exports 속성, 즉 변수에 함수가 들어간다.
[메인 파일]
var module1 = require('module1');

 : require으로 모듈을 요청하여 변수에 넣는다. 이후 module1.함수이름(); 으로 모듈 내의 함수 사용 가능

 

실습 1 - 소괄호로 객체 생성하고 직접 함수 생성 (모듈 사용 X)

var calc = {};

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

console.log('모듈로 분리하기 전 - calc.add : ' + calc.add(10, 10));

 

실습 2 - 모듈을 불러와서 함수 실행 (모듈 사용 O)

모듈 파일 - calc.js

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

메인 파일 - ch02_test05.js

var calc = require('./calc'); // 직접만든 모듈은 상대경로로 넣어줘야한다. (./이용)
console.log('모듈로 분리한 후 - calc.add : ' + calc.add(20, 20));

실습 3 - 모듈 사용, 실습 2와 조금 다름

 

모듈파일 - calc2.js

var calc = {};

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

module.exports = calc; // calc 객체 할당

메인파일 - ch02_test6.js

// 메인파일
var calc2 = require('./calc2');

console.log('모듈로 분리한 후 - calc2.add : ' + calc2.add(30, 30));

 

[nconf]

nconf란?

: 시스템 환경변수에 접근할 수 있는 모듈, 외장모듈을 이용하기 위해 사용

외장모듈이란?

: 자신이 만든 모듈이 아닌 다른사람이 만든 모듈

 

nconf 설치

1. cmd창에 npm init 입력

2. 입력창이 나오는데, 이름 입력 후 다른 것은 엔터를 입력해 넘어가도 된다.

3. pakage.json 생성됨 

4. npm install 입력해 설치 (보통 npm install 이름 으로 설치하는데, pakage.json에 입력이 되어있기때문에 괜찮다.)

 

nconf 이용한 간단 예제

// 메인파일
var calc2 = require('./calc2');

console.log('모듈로 분리한 후 - calc2.add : ' + calc2.add(30, 30));

var nconf = require('nconf'); // 제공되는 모듈 가져오는 것은 이름만 넣으면 가능
nconf.env();
var value = nconf.get('OS');
console.log('OS 환경변수의 값 : ' + value);

[내장 모듈 사용]

: 설명은 코드 주석 참조

 

ch02_test7.js 파일

// 내장 모듈 사용 코드
var os = require('os');

console.log('hostname : ' + os.hostname()); // 호스트 이름
console.log('memory : ' + os.freemem()); // 남은 메모리 양

ch02_test8.js 파일

var path = require('path'); // path라고하는 외장모듈에서 반환되는 객체가 pat변수에 할당된다.

var directories = ['users','Samsung','docs']; //배열 객체
var dirStr = directories.join(); // join() 사용 시 directories내의 정보가 문자열로 붙어 반환된다.
console.log('dir : ' + dirStr); // 콤마를 기준으로 붙어 반환된다.

var dirStr2 = directories.join(path.sep); //path.sep(역슬레쉬)으로 구분자 지정
console.log('dir2 : ' + dirStr2);

// path.join() 파일 경로 만들기 위해 사용 가능
var filepath = path.join('/Users/Samsung','notepad.exe'); //path에 join이 따로 또 존재.지정 경로 아래에 notepad.exe생성
console.log('filepath : ' + filepath);

// join외에 path가 제공하는 기능
var dirname = path.dirname(filepath);
console.log('dirname : ' + dirname); // 경로 출력
var basename = path.basename(filepath);
console.log('basename : '+basename); // 파일 이름 출력
var extname = path.extname(filepath);
console.log('extname : '+extname); // 확장자 출력

 

728x90