본문 바로가기
nodejs

[node.js] 모듈 그리고 npm

by jinbro 2017. 4. 12.

[모듈이란]

- 부품과 같은 것
- 어떤 기능을 쉽게 만들기위해 필요한 것
- 정해진 모듈 사용방법에 따라 사용을 하면 어떤 기능을 쉽게 만들 수 있음
- 기능이라는 것이 웹서버 내 기능 뿐만 아니라 컴퓨터 내에 어떤 처리를 쉽게할 수 있도록 도와주기도 함
- 예시 : 공식홈페이지에서 가져온 웹서버 구축 코드
1
2
3
4
5
6
7
8
9
10
11
12
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
     res.statusCode = 200;
     res.setHeader('Content-Type''text/plain');
     res.end('Hello World\n');
});
 
server.listen(port, hostname, () => {
     console.log(`Server running at http://${hostname}:${port}/`);
});
cs

- 위의 코드에서 require가 모듈을 가져오는 함수
- require가 있는 줄은 'http' 모듈을 가져와서 프로젝트에 import 시키는 것
- http 모듈때문에 손쉽게 웹서버 요청-응답에 대한 처리를 구성할 수 있었음
- http 변수에 require('http')의 결과를 담은 것, http라는 변수는 변하지않는 값(상수)임을 뜻하는 const 키워드가 달려있음(더이상 변수가 아님)
- 모듈에는 nodejs가 기본적으로 제공해주는 것(내장모듈)이 있고, nodejs 유저들이 만든 것도 있음


[내장 모듈 정보 어떻게 알지]
(1) nodejs 공식홈페이지 문서(docs)탭 접속 : https://nodejs.org/ko/docs/
(2) nodejs 버젼에 맞춰 API 문서 페이지 들어가기
(3) ctrl + f 를 누르고 사용하려는 모듈명 입력 
(4) 사용법 보기
(별도) 구글링해보기 : how to ~~


[내장모듈 사용해보기 - os 모듈]
- os 모듈 : 이름 그대로 운영체제 관련한 모듈, 현재 사용하고 있는 os 정보를 얻어올 수 있음

(1) vi로 os 모듈 관련 코드를 작성할 js 파일을 생성함
(2) os 모듈 사용방법을 참고함(공식 api 문서) 
(3) 사용방법을 토대로 현재 사용하고 있는 os 정보를 얻어올 수 있는 파일 내 코드를 작성함
- require를 통해 os 모듈을 include 시켰고, 그에따른 결과로 os 객체가 리턴되었고, os 객체가 가진 메소드를 사용해 os 정보를 얻어옴

(4) node 명령어를 통해 js 파일을 실행함 : os 정보가 뜨면 성공



[npm이란]
- node package manager의 약자
- nodejs가 제공하는 모듈(내장모듈)이 아닌 nodejs 유저들이 만든 모듈을 사용하기위해 필요한 것
- 유저 모듈을 설치하기위해(통신이 필요함) 통신을 쉽게하도록(쉽게 가져올 수 있도록) 돕는 매니저 프로그램
- 쉽게 설치할 수 있도록 돕는 프로그램이고, 삭제 / 업그레이드 / 의존성(모듈 간 복잡성 관리)관리를 쉽게 해주는 프로그램
유저 모듈 중에는 컴퓨터에서 처리하는 작업을 대신해주는 모듈 또한 있음(uglyfy : 코드 중 공백 없애고 한 줄의 코드로 만들어주는 모듈)
- node 계의 앱스토어 : 이고잉님의 표현
- npm 공식홈페이지 : https://www.npmjs.com/


[npm 사용하기]
- 사용하기에 앞서 사용방법을 알아보기위해 npm 공홈에서 pm2 검색해보기
(1) Install PM2 보기
(2) $ npm install pm2 -g 라고 나와 있음 
(3) npm을 통해 pm2 라는 패키지를 install 하겠다는 명령어임
(4) 뒤에 붙은 -g 는 있어도 되고 없어도 되는 명령어 옵션인데 아래에서 알아봄
(5) -g 를 붙일 경우 현재 pm2가 설치되는 컴퓨터 전역에서 사용한다는 것이고, 없을 경우는 현재 프로젝트에서만 사용하겠다는 것임
(6) -g 말고도 다른 옵션값들이 있음, --save 처럼 의존성 관련 옵션이 있음 

- 필요한 모듈을 알아두고, npm을 통해 설치함, 이후 내장모듈 사용방법과 똑같이 require 함수로 include 시키면 됨
- require 함수를 통해 얻어진 리턴값(보통 객체 리턴)으로 모듈 사용을 하겠지요? 사용방법은 해당 모듈 페이지에 있음!
- 자세한 모듈 사용방법은 모듈 상세 페이지에 있을 것임(npm에서 검색한 후 들어간 페이지)
- 혹은 서버컴 콘솔창(터미널)에서 모듈명 --help 를 치면 모듈에 대한 사용방법이 나올 것


[npm은]
- 앞으로 사용하면서 사용방법을 더 알아볼 것임
- 현재 포스팅에서는 목표와 같이 npm이 뭔지, npm이 왜 필요한지를 정확히 알고가는 것이 중요


[참고자료]
(2) npm 공식홈페이지 : https://www.npmjs.com/



댓글