Skip to content

Latest commit

 

History

History
141 lines (101 loc) · 4.51 KB

chapter2.md

File metadata and controls

141 lines (101 loc) · 4.51 KB

02 노드 간단하게 살펴보기

02-1 첫 번째 노드 프로젝트 만들기

js파일을 실행하려면 터미널에 $ node [파일이름].js라 치면 실행된다.

터미널 창에서 $ node를 입력하면 한줄 씩 바로 코드 결과를 확인 할 수 있다.

02-2 콘솔에 로그 뿌리기

console 객체는 **Global Object(전역 객체)**이다. Global Object는 필요할 때 코드의 어느 부분에서나 사용할 수 있다.

Global Object 설명
console 콘솔 창에 결과를 보여주는 객체
process 프로세스의 실행에 대한 정보를 다루는 객체
exports 모듈을 다루는 객체
> console.log('결과는 %d입니다.',10);
결과는 10입니다.
undefined 
> console.log('JSON : %j',{name: "정다혜"});
JSON : {"name":"정다혜"}
undefined

결과에서 나오는 undefined는 반환 값이 없다는 의미이다.

undefinednull의 차이

undefined는 단순히 값이 존재하지 않는다고 생각하면 되고, null은 의도적으로 값을 비웠다고 생각하면된다.

console 메소드

메소드 설명
dir(object) 자바스크립트 객체의 속성들을 출력
time(id) 실행 시간을 측정하기 위한 시작 시간 기록
timeEnd(id) 실행 시간을 측정하기 위한 끝시간 기록

전역 변수

변수 설명
__filename 실행한 파일의 이름 출력
__dirname 실행한 파일이 들어 있는 폴더 출력

02-3 프로세스 객체 간단하게 살펴보기

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

주요 속성 / 메소드

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

process.env속성에는 사용자 정의 환경 변수만 들어가 있기 때문에 OS와 같은 시스템 환경 변수에 접근할 수 없다.

02-4 노드에서 모듈 사용하기

메인 파일 코드 중 독립적인 기능은 별도 파일로 분리할 수 있으며, 메인 파일에서는 전체적인 진행 순서나 흐름만을 제어한다. 이렇게 분리된 파일을 모듈이라고 한다.

// main.js
var module1 = require('module1');
module1.함수이름();
//module1.js
exports.함수이름 = 함수정의;

exports객체의 속성으로 변수나 함수를 지정하면 그 속성을 main.js와 같은 메인 자바 스크립트 파일에서 불러와 사용할 수 있다. 모듈을 불러올 때는 require()메소드를 사용한다.

module.exportsexports

module.exports에는 하나의 변수나 함수 또는 객체를 직접 할당한다. exports에는 속성을 추가할 수 있어 여러 개의 변수나 함수를 각각의 속성으로 추가할 수 있다.

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

exports.multiply = function(a,b){
	return a*b;
};
// module2.js
var calc={};

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

clac.multiply = function(a,b){
	return a*b;
};

module.exports = calc;

외장 모듈

다른 사람이 만들어 둔 모듈을 외장 모듈이라고 한다. 시스템 환경 변수에 접근할 수 있는 모듈의 이름은 nconf이다.

npm패키지를 사용해 다른 사람들이 만들어 올려 놓은 패키지를 다운할 수 있다.

$ npm install nconf

02-5 간단한 내장 모듈 사용하기

내장 모듈은 자주 사용하는 기본 기능을 노드에 포함시켜 제공하는 것이다. 내장 모듈은 설치하지 않고 바로 사용할 수 있다.

내장 모듈 정보

시스템 정보 알려주는 os모듈

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

파일 패스를 다루는 path 모듈

메소드 설명
join() 여러 개의 이름들을 모두 합쳐 하나의 파일 패스로 만들어 준다.
dirname() 파일 패스에서 디렉터리 이름 반환
basename() 파일의 확장자를 제외한 이름 반환
extname() 파일의 확장자 반환