지난번에 npm 과 pm2 에 대해서 살펴봤는데 이번에는 nvm 에 대해서 알아보도록 하자. 우리가 오픈소스를 개발한다면 readme 에 당연히 노드의 버전을 명시한다. 그리고 해당 오픈소스를 사용하려는 사용자는 (가급적) 명시된 노드 버전에 맞춰서 프로젝트를 돌려볼텐데 내가 설치한 버전과 상이한 버전의 노드를 실행시키기 위해서는 어떻게 해야 할까? 노드를 지우고 새로 설치? 혹은 파이썬의 virtualenv 와 같은 가상 환경이 존재할까? 아니, 그럴필요가 없다. 여기 노드 버전을 매니징 할 수 있는 nvm ( Node Version Manager )이 있다. ( 노드 공식 프로그램은 아니고 개인이 만든 프로그램인데 사실상 공식처럼 사용한다 )nvm 을 통해 우리는 다양한 노드 버전을 한 개의 시스템에..
노드를 더 우아하게 해주는 주변 프로그램인 npm 을 이해하도록 해보자. npm 은 Node.js Package Manager 로 단어 그대로 패키지 관리를 돕는다. 언뜻보면 python 의 pip 와 그 형상이 비슷해보이기도 한다. 하지만 npm 은 pip 처럼 패키지를 설치하는 기능을 포함하는 것으로 이해하는게 맞다. 이 장황한 이야기를 풀어내기 위해 API 서버를 노드 프로그램으로 만들어가며 이야기 하도록 하자. 우선 노드 프로젝트를 시작할 때 server.js 부터 만드는게 아니라 npm 을 이용해서 프로젝트를 생성한다. $ npm init 이렇게하면 몇가지 문답을 거친후 디렉터리에 package.json 파일이 생성된다. 대략 가볍게 훑어보고 적당한 값을 입력하자. 빈 값으로 엔터를 입력하게되면..
이번에는 노드를 더 우아하게 사용할 수 있도록 돕는 PM2 에 대해 이야기를 해본다. PM2 는 Process Manager 의 약자로 이미 단어에서 모든게 설명 되는데 노드 프로세스를 관리해주는 역할을 한다. 아래에서 간단한 노드 프로그램을 기반으로 PM2 를 차근차근 이해하도록 하자. 보통 서버에 데몬 형태의 application 을 개발하게 되면 여러가지 것들을 신경써야 했다. 이를테면 application 에서 남기는 로그에 대한 처리( filesystem 을 이용해서 남기는 방법, 날짜 포함, rotate, etc ), 프로세스가 죽었을 때에 대한 처리( restart ), 부팅시에 자동 실행 등 무수히 많은 것들이 있다. 이런 귀찮은 것들을 몽땅 관리해주는 프로세스가 있다면 얼마나 편할까? (..
일단 노드를 시작한지 얼마 안되서 관련 지식은 대부분 인터넷으로 접하고 있는데 여기 널린 글들에 문제점이 많다. 노드라고 하는 언어가 javascript 를 server-side 에서 동작하도록 지원하면서 백만명의 프론트 개발자를 백엔드에 설 수 있게 해줬다. 한편 웹 프레임웍 자체의 진입장벽이 다른 언어에 비해 상대적으로 낮은데 각설하고 이게 뭐가 문제냐하면 아무리 자바스크립트가 ES6 까지 진화하고 뭣했다고 해도 콜백 지옥에서 광명을 찾았다는 글을 찾기가 힘들다는 것이다. 대부분이 허덕이고 있으며 그나마 이해했다고 싸질러놓은 글도 의심스럽기짝이 없다. 대부분의 백/프론트엔드 개발자가 하나같이 두리뭉실한 지식을 인터넷에 써 놓고, 그걸 또 많은 사람들이 퍼나르고.. 여튼 제대로 된 지식이나 먹음직스럽게..
- Total
- Today
- Yesterday