process 객체는 프로그램을 실행했을 때 만들어지는 프로세스 정보를 다루는 객체이다. process 객체의 주요 속성과 메소드는 다음과 같다.
속성/메소드 이름 |
설명 |
argv |
프로세스를 실행할 때 전달되는 파라미터(매개변수) 정보 |
env |
환경 변수 정보 |
exit() |
프로세스를 끝내는 메소드 |
[표] process 객체의 주요 속성과 메소드
argv 속성은 프로세스를 실행할 때 전달되는 파라미터 정보를 가지고 있다. 이 정보를 확인하기 위해 새로운 자바스크립트 파일을 추가해 보겠다. 자바스크립트 파일을 추가하는 방법은 잊지 않으셨죠? 왼쪽 프로젝트 창에서 마우스 오른쪽 버튼을 누르고 팝업 메뉴가 나타나면 [파일 만들기] 메뉴를 선택한다. 새로운 파일 이름으로 ch02_test2.js를 입력하면 파일이 만들어지면서 오른쪽 작업 영역에 파일이 나타난다.
새로 만들어진 파일에 다음 코드를 입력한다.
자바스크립트 파일을 실행하기 위해 사용한 node.exe 파일의 이름이 첫 번째 파라미터가 되고 자바스크립트 파일의 패스가 두 번째 파라미터가 된다.
만약 파일을 실행할 때 파라미터를 더 넣어 주면 이 argv 속성에 그 파라미터가 추가된다.
자바스크립트에서는 여러 개의 값이 들어갈 수 있는 배열 객체를 [] 기호를 사용해 만들 수 있으며, 로그로 출력했을 때도 [] 기호 안에 배열 객체의 값들을 콤마로 구분하여 표시한다.
※ 첫 번째 파라미터의 값이 다르게 표시되나요?
첫 번째 파라미터의 값이 'node'가 아니라 C:\Program Files\nodejs\node.exe처럼 표시될 수 있다. 이것은 node.exe 실행 파일의 위치까지 함께 표시된 것이다.
console객체의 dir() 메소드를 사용하면 객체가 가지고 있는 속성을 그대로 출력할 수 있다. 콘솔에 표시된 결과에서 알 수 있듯이, process 객체에 들어 있는 argv 속성은 배열 객체이며 파일을 실행하기만 해도 node 명령과 파일 패스가 파라미터 값으로 들어간다는 것을 알 수 있다.
이번에는 다음 코드를 추가로 입력하고 저장하자.
if (process.argv.length > 2) {
console.log('세 번째 파라미터의 값 : %s', process.argv[2]);
}
process.argv.forEach(function(item, index) {
console.log(index + ' : ', item);
});
여기에는 세 번째 파라미터의 값을 확인하는 코드가 들어 있다.
따라서 이 파일을 실행할 때 파라미터를 추가로 전달하면 그 값을 확인할 수 있다.
argv 속성은 배열 객체이므로 인덱스 2를 사용하면 세 번째 파라미터의 값을 확인할 수 있다.
만약 argv 속성에 들어 있는 모든 값을 하나씩 출력하고 싶다면 forEach() 메소드를 사용한다.
forEach() 메소드는 배열 안에 들어 있는 각 아이템 값과 인덱스를 함께 전달하므로 배열 객체에 들어 있는 값들을 하나씩 확인하기에 좋다.
명령 프롬프트에서 다음 명령을 실행하면 다음과 같은 결과가 출력된다.
node ch02_test2.js __port 7001
▲process.argv 속성을 명령 프롬프트에서 확인하기
이번에는 process 객체의 env 속성을 이용해서 환경 변수의 값을 확인해 보겠다. 윈도우의 시스템 환경 변수로 OS 환경 변수가 있다.
이 환경 변수의 값으로는 'Windows_NT'와 같은 값이 들어 있을 수 있다.
이 값을 확인하기 위해 새로운 자바스크립트 소스 파일 ch02_test3.js를 만든 후 다음 코드를 입력한다.
console.dir(process.env);
console.log('OS 환경 변수의 값 : ' + process.env['OS']);
그러면 다음 그림처럼 여러분 PC의 환경 변수 값이 모두 출력되고 마지막에 OS 환경 변수의 값을 보여주는 한 줄이 더 출력된다.
▲ process.env 속성으로 OS 환경 변수를 확인한 결과
process.env 속성을 사용하면 사용자 정의 환경 변수(user variables)뿐만 아니라 OS와 같은 시스템 환경 변수(system variables)도 접근할 수 있다.
'Study > Node.js' 카테고리의 다른 글
[노드JS] 더하기 함수를 모듈로 간단히 분리하기 (0) | 2019.03.09 |
---|---|
[노드JS] 노드에서 모듈 사용하기 (0) | 2019.03.08 |
[노드JS] 콘솔에 로그 뿌리기 (1) | 2019.03.08 |
[노드JS] 노드 셸에서 직접 코드 입력하고 실행하기 (0) | 2019.03.07 |
[노드JS] 브라켓의 확장 기능 설치하고 브라켓에서 노드 프로그램 실행하기 (0) | 2019.03.07 |