NPM 이란?
node.js의 npm에 대한 개념과 npm을 이용해서 웹 개발을 할 때 필요한 모듈을 설치해도 록 하겠습니다.
전 Java를 이용해서 개발을 해왔기 때문에 라이브러리(jar)를 직접 추가하거나 maven을 이용해서 라이브러리를 추가했었는데 이런 방식보다도 훨씬 빠르고 편리하더군요.
Node.js 공식 사이트에서는 node.js와 npm을 이렇게 정의하고있습니다.
Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. Node.js는 이벤트 기반, Non 블로킹 I/O 모델을 사용해 가볍고 효율적입니다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생태계이기도 합니다.
NPM(Node Package Manager)는 오픈소스 라이브러리를 설치하고 관리하는 기능으로 node.js를 설치하면 자동으로 같이 설치됩니다.
NPM을 이용한 모듈 설치
npm은 명령 프롬프트에서 실행합니다.
윈도우 + R 을 누른 후 cmd를 통해 명령 프롬프트 창을 열고 npm 관련 명령어를 입력하면 됩니다. (별도 path 설정 없음)
제가 웹서비스를 개발하면서 설치한 모듈입니다.
- express : 웹서버(Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크)
- request : 서버에서 외부 api를 호출하는 경우 사용
- body-parser : 클라이언트 POST request data의 body로부터 파라미터 추출
- body-parser 미들웨어는 클라이언트가 post 방식으로 요청할 때 본문 영역에 들어있는
- 요청 파라미터들을 파싱 하여 요청 객체의 body속성에 넣어줍니다.
- mysql : 오픈소스 관계형 데이터베이스 관리시스템(무료)
- ejs : html 템플릿 엔진(서버에서 가져온 데이터를 html로 변환해서 사용하기 위함)
외부 모듈 제공 npm 공식 사이트
모듈 설치방법
- cmd 창에서 nodejs 프로젝트 workspace로 이동 (예:D:\nodejsProject\nodeWorkspace\test1)
- npm install 외부 모듈명 (예 : npm install request --save)
- 설치된 모듈 폴더 확인 : 프로젝트 workspace의 node_modules 폴더에 저장됨
- npm 인스톨 시 --save 옵션 추가 시 package.json 에 dependencies 항목에 해당 모듈 정보를 포함
(가끔 package.json 파일에 lock이 걸렸다면서 업데이트를 하지 못했다는 메시지가 뜨는데 다시 install 명령어 실행하면 잘 되더군요 ^^)
웹서비스 개발을 위해 설치한 모듈.
(다음강좌를 계속 따라하시려면 전부 설치하세요)
npm install express --save
npm install request --save
npm install body-parser --save
npm install mysql --save
npm install ejs --save
실제 화면
모듈을 설치하면 프로젝트의 package.json 파일의 defendencies에 install한 npm 정보가 업데이트 됩니다.
만약 모듈이 필요 없어져서 삭제하는 경우 npm uninstall 명령으로 삭제할 수 있습니다.
npm uninstall [모듈이름]
지금처럼 프로젝트 경로에서 npm install을 이용하여 패키지를 설치하는 경우 해당 프로젝트에서만 모듈을 사용할 수 있습니다. 그래서 여러 프로젝트에서 동일한 모듈을 사용하려고 하는 경우 모듈을 다시 설치해야 하는 번거로움이 있을 수 있습니다. 하지만 프로젝트를 여러 개 개발하는 게 아니라면 해당 프로젝트에서 로컬로 설치하는 게 직관적이고 관리하기가 편합니다.
전역 모드로 모듈을 설치하는 방법은 -g 옵션을 추가하면 되며, 전역으로 설치한 모듈은 'C:\Users\사용자명\AppData\Roaming\npm'경로에 설치가 됩니다.
npm install 모듈이름 -g
다음 강좌 :
2019/04/02 - [Node.js] - [Node.js 5강] express 서버 설정 및 기본 구조 설계
'Node.js' 카테고리의 다른 글
[Node.js 8-1강] mysql DB 연결하고 sql 결과 받아서 활용하는 방법 (0) | 2019.04.02 |
---|---|
[Node.js 5강] express 서버 설정 및 기본 구조 설계 (0) | 2019.04.02 |
[Node.js 3강] 이클립스(eclipse)에 node.js(NodeJS) 개발환경 설정 따라하기 (0) | 2019.04.02 |
[Node.js 2강] 이클립스(eclipse) + nodejs + github + cafe24호스팅을 이용해서 실제 개발한 웹사이트 소개 (0) | 2019.04.02 |
[Node.js 1강]node js 란? 장점, 단점, 어떤 웹서비스에 사용해야할까? (0) | 2019.04.02 |