Juni_Dev_log

(node.js) [Part.2] 노드 간단하게 살펴보기 - process 객체(argv, env, exit() ) 본문

Theorem (정리)/node.js

(node.js) [Part.2] 노드 간단하게 살펴보기 - process 객체(argv, env, exit() )

Juni_K 2020. 11. 19. 14:04

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

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

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

argv 속성은 프로세스를 실행할 때 전달되는 파라미터 정보를 가지고 있다.

이 정보를 확인하기 위해서 새로운 자바스크립트 파일을 추가해본다.

ch02__test2.js 를 만들고 코드를 넣어본다.

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

자바스크립트 파일을 실행하기 위해 사용한 node.exe 파일의 이름이 첫 번째 파라미터가 되고 자바스크립트 파일의 패스가 두 번째 파라미터가 된다.

만약, 파일을 실행할 때 파라미터를 더 넣어 주면 이 argv 속성에 그 파라미터가 추가된다.

자바스크립트에서는 여러 개의 값이 들어갈 수 있는 배열 객체를 [ ] 기호를 사용해 만들 수 있으며, 로그를 출력했을 때도 [ ] 기호 안에 배열 객체의 값들을 콤마로 구분하여 표시한다.

 

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() 메소드를 사용한다. 배열 안에 들어 있는 각 아이템과 인덱스를 함께 전달하기 때문에 배열 객체에 들어있는 값을 하나씩 확인하기가 좋다.

node ch02_test2.js __port 7001 을 입력하면,

이와 같은 출력값이 나온다.

 

이번에는 process 객체의 env 속성을 이용해서 환경 변수의 값을 확인해보자.

윈도우의 시스템 환경변수로 OS 환경 변수가 있다. 환경 변수의 값으로는 'Windows_NT' 같은 값이 들어 있다.

이 값을 확인하기 위해서 ch02_test3.js 를 만든다.

 

console.dir(process.env);
console.log('OS 환경 변수의 값 : ' + process.env['OS']);

process.env 속성으로 OS 환경 변수를 확인한 결과

process.env 속성을 사용하면 사용자 정의 환경 변수(user variables) 뿐만 아니라, OS와 같은 시스템 환경 변수도 접근할 수 있다.

Comments