지금으로부터 한달전 2016년 4월 29일 Node.js v6이 출시됐다. 개발하고 있는 프로젝트는 LTS 버전인 v4를 사용하고 있었다.


ES6(Ecmascript6)을 개발할 때 적극적으로 도입하고 있었고, 개인적으로 마음에 들었던 부분은 자바스크립트의 단점인 변수의 범위를 좀 더 명확하게 지정할 수 있는 Block Scope, 기존 Function는 this를 자유자재로 변조할 수 있었다. Allow Function은 this가 할당되지 않기 때문에 명확하게 개발할 수 있다. v4는 문법 지원이 미미하므로, 아쉬운 점이 많았었는데, v6에서는 v8 엔진 5.0이 지원되기 때문에 ES6 문법을 93%까지 지원하게 되므로, 업그레이드를 고려하는 큰 이유가 되었다.


다음은 성능이다. 중요한 업그레이드 내용이며, v4보다 모듈 로딩속도가 4배 정도 빠르다고 한다. 기존 문법이 호환되기 때문에, v6으로 프로젝트 전체 테스트 시 큰 문제가 없다면, 업그레이드만 진행되어도 큰 성능향상을 확인할 수 있다. 테스트 진행은 mocha를 이용했고, jenkins에 연동했었다.


NPM(Node Package Manager)는 v4인 경우 v2로 설치가 되는데, 모듈 중복 등 문제점이 여럿 발견되었다. v3에서 대부분 해결되었는데, v6 업그레이드 시 v3으로 설치가 된다.


ES6, 성능을 충족했기 때문에 버전 업그레이드를 하기로 하였고, v4 -> v6 으로 진행하였다.


참고 사이트


Node.js 프로젝트가 마침표에 가까워질 수록 프로세스를 어떻게 관리해야 할지 고민한다. 요즘은 Node.js Domain API에 완전히 당해서 넋이 나가 있었다.


PM2 로 App 을 시작 할 때 Debug Log를 감시하고 싶을 때가 있다. 아이러니하게도 node debug로 사용된 로그는 stderr 로 출력된다.



stdout 으로 출력하기 위해서는 환경변수를 추가해야 한다.


DEBUG_FD=1


아래는 pm2 설정 JSON 이다. 취향에 따라서 직접 명령으로 실행해도 무관 하다.


  • pm2-test.json
{
    "apps": [
        {
            "name"             : "test-app",
            "script"           : "./test.js",
            "error_file"       : "./logs/app/test-app.stderr.log",
            "out_file"         : "./logs/app/test-app.stdout.log",
            "pid_file"         : "./pids/test-app.pid",
            "instances"        : 0,
            "min_uptime"       : "1000s",
            "max_restarts"     : 15,
            "watch"            : false,
            "ignore_watch"     : ["[\\/\\\\]\\./", "node_modules"],
            "merge_logs"       : true,
            "exec_interpreter" : "node",
            "exec_mode"        : "cluster_mode",
            "autorestart"      : false,
            "vizion"           : false,
            "env"              : {
                "NODE_ENV"     : "development",
                "DEBUG"        : "*",
                "DEBUG_FD"     : 1
            }
        }
    ]
}


명령어를 실행 시 node debug로 사용된 로그는 stdout 으로 출력된다.


pm2 start pm2-test.json



정상적으로 출력 되는 것을 확인 할 수 있다.


'Nodejs' 카테고리의 다른 글

NPMv3 사용하기  (0) 2016.04.04
Node.js와 ECMAScript 2015 (ES6)  (0) 2016.01.04
Node.js NPM Previous Version 설치 하기  (0) 2015.12.08
play.node(2015) 후기  (0) 2015.11.13
Nodejs Express 4.x File Upload 설정 하기  (0) 2015.02.10

Node.js release - https://nodejs.org/en/download/releases/


위 링크는 node.js release 내역이다. windows 환경에서 Node.js v4.x.x, v5.x.x를 번갈아 설치 하다 보면, npm 버전이 3.x.x으로 고정되는 현상이 발생한다. 처음에는 방법을 몰라서 몇 번이고 재설치를 해보았지만, 바보 같은 시도였다. 초심으로 돌아가서 생각해보니 npm 으로 재설치 하면 될까 하는 방법이 떠올랐다.


$ npm -v
3.3.10

$ npm install npm@2.14.7 -g

$ npm -v
2.14.7


npm install {app}@{version}


  • app: 설치 할 앱
  • version: 설치 할 버전

위와 같이 설치 하면, node.js 재 설치 없이, 원하는 버전을 설치 할수있다.


+ Recent posts