본문 바로가기

카테고리 없음

npm 소개와 설치

[출처] COMMONS LOGGING 블로그

npm

최근 웹개발을 할 때 인기있는 소프트웨어 플랫폼이라고 하면 단연 Node.js를 꼽을 수 있겠다. 서점에도 수많은 책이 나오고 있으며 각종 스타트업들이 개발자 채용을 하는 경우에 Node.js 개발가능자를 조건으로 걸고 있을 정도이다. 스타트업 뿐 아니라 거대한 온라인 서비스들도 Node.js 기반으로 플랫폼을 바꾸고 있는 곳이 많다. 대표적으로 ebay와 paypal이 그러한 예다. paypal은 기존에 자바로 만들어져있던 서비스를 모두 Node.js로 변경하고 있다고 한다. 그러면서 자사가 이용하는 개발프레임워크를 크라켄이라는 이름으로 만들어(혹은 기존의 Node.js 모듈을 섞었다고도 ) 오픈소스화하고 있다.

Node.js가 이처럼 인기있는 이유는 여러가지가 있다. 우선은 높은 처리성능 때문인데 Non-Blocking I/O와 단일 쓰레드 이벤트 루프가 이를 가능하게 한다. 어디선가 테스트한 바에 따르면 기존에 Java 기반으로 10대의 서버를 두고 처리하던 서비스를 Node.js를 이용해 3대의 서버만으로도 처리가능했다고 한다. 이런 소식을 듣고나면 IT업계에 종사하는 사람으로서 궁금해지지 않을 수 없다.

Node.js가 인기있는 다른 이유는 기반언어가 javascript라는 데 있다. 웹개발을 함에 있어 클라이언트단 개발에 이미 사용되고 있는 익숙한 언어를 서버측 언어로 같이 사용한다는 것은 학습비용이 그만큼 줄어들기 때문이다. 심지어 MEAN STACK (MongoDB, Express, AngularJs, Node.js) 이라고 해서 모든 개발을 javascript로만 하는 일련의 흐름도 있을 정도이다.

또다른 이유는 Node.js가 내장 Http 서버 라이브러리를 가지고 있기 때문에 별도의 웹서버-아파치와 같은-를 필요로 하지 않으며 이는 웹서버의 동작에 있어 더 많은 통제를 가능하게 하기 때문이다.

여러 이유들로 인기있는 Node.js이고 배우기 쉽다고 했지만 처음부터 실제 제품개발 수준으로 사용하기에는 학습비용이 있다. Node.js의 API를 습득해야 하고 웹에서 필요한 수많은 기능들을 혼자 다 개발한다는 것은 무리다. 하지만 이러한 문제는 npm을 통해 어느정도 해결할 수 있다.

npm이란 무엇인가?

npm이란 Node Package Modules의 약자다. Node.js에서 사용가능한 모듈들을 패키지화시켜 모아놓은 것이다. 이를 통해 웹에서 필요로 하는 특정기능들을 일일이 개발하지 않아도 이미 누군가가 만들어서 올려놓은 모듈을 다운로드 받는 것으로 대신할 수 있어 개발을 쉽게 할 수 있는 것이다. 물론 Github에 올라가있는 모듈을 다운로드받아 빌드하고 사용해도 되지만 어떤 모듈들이 있는지 알수도 없고 버전관리 등에도 불편함이 생길 수 밖에 없다. 그래서 Isaac Z. Schlueter라는 개발자가 만든 npm은 Node.js 개발자들에게 이제 필수로 자리잡은 상황이다.

npm 홈페이지 : https://www.npmjs.org/

npm 설치하기

과거에는 Node.js를 설치하고 따로 설치했었다. 특히 윈도우에서는 설치하기가 불편했었는데 현재는 운영체제에 맞는 Node.js Installer 를 다운로드하고 실행하기만 하면 자동으로 설치가 된다. 물론 개별설치도 가능하다.

Node.js 다운로드 사이트 : http://nodejs.org/download/

npm 명령어

윈도우를 기준으로 설명하면  도스창을 열고(cmd)

cmd

아무 경로에서나 npm help 라고 명령어를 치면 다음과 같은 화면이 나온다.

npm help

이 때 나오는 것들이 명령어들이며 npm 명령어 -h 를 하면 상세한 설명을 볼 수 있다.

주된 명령어는

npm help : 메인 설명

npm <명령어> -h : 명령어에 대한 설명

npm list 또는 npm ls : npm에서 관리되는 모듈 리스트

npm view <패키지명> : 모듈의 버전별 상세정보

npm install <패키지명> : 모듈을 찾아서 설치

npm list installed : 설치되어 있는 모듈의 목록을 봄

npm update <패키지명> : 설치된 패키지를 최신버전으로 업데이트

  • 물론 npm을 사용하더라도 해당 모듈의 사용방법을 알아야 제대로 사용할 수 있다. => 학습비용 ㅜ.,ㅜ