본문 바로가기

Dev.BackEnd/Node.js

[두번째] Node.js 기본 / 모듈과 NPM



모듈, NPM


모듈(Module)이란 무엇인가?

쉽게 말하면 부품이라고 이해하면 될 것 같다.

선배 개발자분들께서 기본적인 웹 서버를 구축하는데 필요한 부품들을 이미 만들어놨다.
그리고 그것들을 사용할 수 있도록 해두었다.
오픈소스의 힘이라고 볼 수 있다.
하지만 수 많은 도구들이 있어도 그것을 사용하는 방법을 모르면 그것들은 무용지물이 된다.
우리는 그것들을 가져다 사용할 방법을 알아야한다.

그렇기에 Node.js 홈페이지의 Docs(사용설명서)를 읽을 줄 알아야한다.

모듈 사용해보기.
자신이 작업할 폴더에 module.js 파일을 만들어두고
module.js 파일에 입력한다.
var o = require('os');
console.log(o.platform());

os라는 모듈은 현재 node.js가 구동되고 있는 운영체제 기반이 무엇인지 알려주는 모듈이다.

위 코드를 입력하고 cmd 에서 node mondule.js 실행하면

win 32 가 출력된다.



NPM
node package manager

위에서 또는 전 포스팅에서 알아본 http / os 는 Node js 가 제공하는 모듈이고
JavaScript를 다룰 때 사용했던 Date, String, Array 등 JavaScript 라는 언어가 제공하는 모듈이다.

이러한 기본적인 기능들을 결합해서 무언가를 만들 수 있다.
무언가를 만들기 위해서는 좋은 부품이 필요하다.
타인의 모듈을 사용하는 방법으로 NPM을 사용하는 방법이있다.
NPM을 조금 러프하게 표현하자면 Node 계의 플레이 스토어(?)라고 할 수 있다.
NPM이라는 패키지 매니저가 모듈들을 설치,삭제,업그레이드해주고
소프트웨어가 복잡해질수록 각 모듈들에 대한 의존도가 높아지는데 이 의존성을 관리해준다.
다른 개발을 할 때도 노드 기반으로 만들어진 개발도구들을 사용한다.
NPM은 그래서 더 중요하다.

https://www.npmjs.com 에 수많은 npm과 사용설명서가 존재한다.

NPM 사용해보기 1. uglifyis.js
uglifyjs Tool을 사용해보았다!
못생기게하기라는 뜻을 가진 NPM이다.
기계가 코드를 처리하는데 필요한 필수적인 요소를 제외한 나머지 공백을 다 지워주는 Tool이다.
즉 Zipping[각주:1] 해주는 Tool이라고 보면 된다.
코드의 내용이 많아지면 비싸지고 느려지게 된다.
그래서 코드를 축약할 필요가 있고 그런 이유에서 사랑받는 npm이다.
옵션이 존재한다.
-m : mangle이라는 약자. 지역변수 같은, 이름이 바꿔도 상관없는 요소들을 최대한 짧게 바꿔준다.
-o : Save하는 옵션.

uglifyjs pretty.js -o uglified.js -m
=> 내가 작성한 pretty.js 파일을 uglify 하고 mangle 까지 한 다음에 -o를 통해서 저장까지 한다.
uglifyjs pretty.js -o uglified.js -m 에서
uglified.js 는 저장될 파일의 이름을 의미하는데
이 이름명을 pretty.min.js 라고 min을 사용해서 지정해주는 것이 관습적인 것이다.
uglify되었다는 뜻으로 min을 사용!


!!
다른 사람이 만든 모듈을 가져오려고 한다.
npm상에서 현재의 디렉토리를 패키지로 지정해줘야 한다.
npm init 을 입력
name /  version / description ...등등 입력
package.json 이라는 파일이 생겼다!!
우리의 프로젝트 폴더가 npm의 패키지의 디렉토리로 선언이 된 것이다.



NPM 사용해보기 2. underscore.js
underscore.js 설치!
그랬더니 node_modules 라는 폴더가 생겼다.
cmd창에 underscore@1.8.3 extraneous 라고 출력된다.
@뒤에는 현재 버전을 의미하고
extraneous ? 외부의? 온전하게 포함시킨건 아닌 상태를 의미한다.
-- save (flag라고 한다. 옵션) 을 뒤에 붙여주면 조금 달라진다.
어떠한 모듈을 내 프로젝트에 포함시키기 위해서는 일단 --save를 붙여라
그러면 dependencies에 포함이 된다.
포함이 안시키는 경우는 일시적으로 사용할 때, 소스 코드에 포함시킬 경우가 아니고 잠깐 사용할 때는 --save를 뺀다.
하지만 항상 필요할 땐 --save를 붙여서 dependencies 항목에 모듈을 포함해서 설치한다

underscore Module 사용하기
라이브러리를 이용한다.
각각의 npm들에는 사용설명서가 함께 있다.

var _ = require('underscore');
var arr = [3,6,9,1,12];
console.log(arr[0]);
console.log(_.first(arr));

실행은 node underscore.js
-> 가독성이 훨씬 좋아지게 된다!




생활코딩 이고잉님 감사합니다^^

-..-

  1. Zipping : 들여쓰기 구분없이 소스 코드가 모두 붙어 클라이언트에게 제공할 웹 페이지 용량을 줄이는 것을 말한다. [본문으로]