본문 바로가기
Node

[Node] 프로세스 객체 process

by 신입같은 3년차 2017. 12. 13.

이번 포스팅에서는 Node.js를 이용하면서 한번쯤은 보셨을법한 process 객체에 대해 진행하겠습니다.

 

Node.js를 책없이 진행하면서 process라는 객체를보고 그냥 필요하구나 라고 지나쳤던 경험이있습니다.

 

책을사서 제대로 공부하면서 하나하나 다 까볼생각입니다 ㅎㅎ.

 

 

Java를 경험해보시고 이글을 보신다면 argv가 무엇인지 아실겁니다. 그래도 혹시모르니 간단하게 설명드리겠습니다.

 

 

argv - argument Vector의 약자입니다. 가변적인 갯수의 문자열을 의미합니다.

 

간단한 예제로 확인해 보겠습니다.

 

/**
 * Created by yunjin on 2017-12-13.
 */


/** 명령 실행시 전달받는 파라미터 argv의 길이*/
console.log('프로세스 실행시 전달받는 파라미터 or 매개변수의 갯수 ' + process.argv.length);  

console.log( process.argv);


 

 

다음과 같은 결과를 확인할 수 있습니다.

 

 

 

 

 

 

실행했을때 우리는 파라미터를 넘겨주지 않았는데 왜 길이는 2이고 다음과 같은 실행화면이 모를수도 있습니다.

 

명령 프롬프트에 적은 node process.js가 argv의 index 0 , 1로 들어가게 됩니다..

 

따라서 process.argv를 통해 출력했을때 node.exe 실행파일과 process.js가 0번째 1번째 index로 들어간것을 확인할 수 있습니다.

 

조금더 궁금하신분들은 node process.js a b c 로 실행해보시기 바랍니다.

 

하지만 귀찮으신 분들은 하지 않을거라는걸 알기때문에 직접 테스트 해보겠습니다.

 

 

 

 

argv의 길이는 5이고 argv는 다음과 같은 배열로 파라미터들이 담긴것을 확인할 수 있습니다.

 

 

 

추가 - 저도 놓치간 부분이 있었습니다.

첫번재 파라미터는 node인데 왜 node.exe가 나왔냐고 궁금하신분들도 있을거 같습니다.  Do it Node.js 프로그래밍 책을 보다가 저도 알게었네요ㅎㅎㅎ.   node.exe 경로가 출력된 것은 실행 파일의 위치까지 함께 표시된것이라고 나와있네요 ㅎㅎ

 

조금더 확장시켜서 forEach를 통해 index와 함께 출력해보고 사용자의 OS종류까지 출력해보도록 하겠습니다.

 

코드는 다음과 같습니다.  ( `` 억음 부호를 사용한이유는 ECMA6부터 ' , " 를 하지않고 ${} 안에 javascript 코드를 작성 가능합니다 )

 

 

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

console.log(`실행한 컴퓨터의 OS 환경 변수 값 ${process.env['os'] }`);

 

 

 

 

process.argv.forEach의 콜백함수로 첫번째 매개변수에는 배열의 값 , 두번째 매개변수로는 index값이 넘어온것을 확인할 수 있습니다.

 

제컴퓨터의 환경변수에 있는 OS값이 출력된 것을 확인할 수 있습니다.

 

 

 

마지막에는 OS 환경변수 값이 넘어온것을 확인할 수 있네요 ㅎㅎ

 

오늘 글은 여기서 마무리 하겠습니다.

반응형

댓글