본문 바로가기

Others/NODE.JS

모듈과 NPM

▣ 모듈?


- 일종의 부품

- 부품을 가져다 쓸 때는 require 함수 사용.

- (웹 서버를 처음부터 끝까지 만드는 것은 굉장히 어렵다)

   Nodejs에서는 이 어려움을 알기 때문에 기본적인 웹 서버(모듈)를 잘 만들어 놓고 사용할 수 있도록 해 놓았다. (어떻게 사용할까? NPM)




Line1 : require 함수, 그 함수 이하 애플리케이션(코드)가 구동되기 위해서는 Nodejs에서 제공하는 http라는 모듈(부품)이 필요하다(요구된다). require 함수가 실행되면 http라는 이름을 가진 부품을 가져와서 로드하고. 이의 리턴 값을 const http에 담는다.

= http라는 변수에 http라는 모듈(부품)을 담음.

여기서 변수는 정확히 상수. (상수란 항상 그 값을 가지고 있기 때문에 값이 바뀌지 않다. 한 번 모듈을 로드해오면 그건 바뀌지 않는 값이기 때문에 const를 사용함)


* const 최신버전에서 자바스크립트에서 상수(변수) 선언시 사용.



nodejs.org > docs (Nodejs, 부품을 어떻게 사용하는지에 대한 가이드 문서)


예 ) http 모듈에 대한 상세 설명서  : https://nodejs.org/dist/latest-v6.x/docs/api/http.html

여기서 위 코드에서 사용한 메소드를 검색해볼 수 있다. (예 createServer )



모듈의 종류


- HTTP,OS 모듈 등 : Nodejs가 제공

- 그 외 Date(날짜), String, Array, Math 등 많은 모듈 : 자바스크립트가 제공


- Nodejs가 제공하는 모듈은 Nodejs에서만 사용할 수 있다.

- 하지만 자바스크립트가 제공하는 모듈은 자바스크립트가 동작하는 어떠한 시스템에서든지 사용할 수 있다.



Nodejs와 자바스크립트가 제공하는 모듈은 어떻게 보면 우리가 프로그래밍을 하는데 기본적인 명령어 또는 기능이라고 할 수 있다. 이러한 기본적인 기능들의 결합을 통해 엄청나게 다양한 무언가를 만들 수 있다.

소프트웨어를 만든다는 것, 플랫폼이 제공하는 기본적인 기능들을 컴퓨터 프로그래밍 언어를 통해 결합하여 어떤 새로운 것을 만드는 방법이라고 할 수 있다. 그렇기 때무에 우리가 무엇을 만들기 위해서는 좋은 부품이 필요하다. 그 좋은 부품을 결합해서 정말 다양한 것을 할 수 있기 때문에!!




다음으로 이어서 타인의 모듈을 사용하는 방법에 대해서 알아볼 것이다. NPM ... Node 계의 앱스토어로 비유할 수 있다.


▣ NPM?

- Node Package Manager

-  어떤 모듈을 프로젝트에 사용하기 쉽게 설치/삭제/업그레이드 의존성 관리

( 의존성 : 프로젝트에서 사용하고 있는 다른 사람들의 모듈들은 프로젝트가 그 모듈들에 의존하고 있다고 할 수 있다. 소프트웨어가 복잡해지면서 복잡성을 낮춰줄 수 있다. )

- Node라는 분야에서 만들어진 패키지매니저이지만. 노드가 굉장히 빠른 속도로 성장했기 때문에, Node라는 프로그래밍을 할 때만 NPM을 쓰는 것이 아니라 Nodejs를 기반으로 만들어진 수많은 개발도구들이 세상에 존재하기 때문에 그 도구들을 설치해서 자신의 개발에 활용하기위해서는 NPM을 이용하는 방법을 알아야할 필요가 있다.


어떻게 사용할까? ( NPM을 통해 모듈 사용하기 )


https://www.npmjs.com/NPM으로 만들어진 소프트웨어 모듈에 대한 모든 것을 볼 수 있는 홈페이지.

(NPM 사용 방법 문서 : https://docs.npmjs.com/)



NPM을 이용해서 다른사람이 만든 소프트웨어(모듈)을 나의 소프트웨어의 부품으로 사용하는 방법


설치

underscore.js으로 https://www.npmjs.com/package/underscore


1. 디렉토리를 NPM 일종의 패키지 파일로 지정 : npm init


underscore라고 하는 다른 사람이 만든 모듈을 가져오려고 하는 것 = 그 패키지를 내꺼로 가져오려고 하는 것.

가져오려고 하는 것도 패키지이기 때문에 NPM 상에서 현재의 디렉토리를 NPM 패키지로 지정해야함

(우리의 소프트웨어를 패키지로 지정하기 위한 여러가지 환경설정이 나옴)


    • name : 프로젝트의 이름 지정
    • description : 프로젝트에 대한 간략한 설명
    • entry potin : 패키지의 여러 자바스크립트 중 어떠한 자바스크립트가 이 패킺지를 구동시키는 자바스크립트인지 설정하는 것 ( 추후 변경 가능)
    • test comand : 패키지에서 tdd라는 것을 하게 되면 어떤 명령을 실행하면 테스트를 실행시킬 수 있는지 물어보는 것
    • git repository : 깃에 올라갈꺼면 그 주소를 적는 것
    • keyword .. 등등 enter로 지나가도 됨 


(npm init 실행 결과 화면)


package.json 파일이 생성됨


이 파일을 이용해서, 여러가지 절차를 겪은 후, 내가 만든 프로젝트를 npm.com에 등록해서 내가 만든 소프트웨어를 다른사람들이 사용할 수 있도록 올릴 수도 있다.


여기까지 했으면, 다른사람이 만든 것을 내가 가져올 수 있게 된다.


2. npm install underscore.js 명령어를 사용 (설치)

(하기 전에 터미널 디렉토리 주의, 먼저 디렉토리 자체를 NPM 일종의 피키지로 지정을 해야함.)





설치 실행 결과(변화) : node_modules라는 디렉토리가 생겼다. ( underscore 폴더 아래에 모듈 파일을 확인 할 수 있다. )


* extraneous : 이물질, 외부의, 부가적인 느낌의 단어 (혹시 설치시 underscore@버전 옆에 나올 수 도 있다.)

온전하게 나의 프로젝트에 포함되지 않았다는 의미, 이 경우에는 설치시 npm install underscore --save 로 설치하기 : dependencies가 package.json 파일에 추가 됨을 볼 수 있다. 이 단어가 뜨지 않더라도 package.json 파일 확인해보기.

package.json이라는 파일에 의존성(dependecies)을 명시적으로 표현함으로써 package.json 파일만 있다면 언제든지 dependecies 안에 있는 모듈을 내 프로젝트에 포함시킬 수 있게 된다.





결과적으로 모듈 설치 방법 ( 프로젝트 포함 방법 )

어떠한 모듈을 내 프로젝트에 포함시킬 때는 npm install 모듈(소프트웨어)의이름 (--save)

  • 소스코드에 포함하지 않을 경우에는 --save를 빼고 하면 되고

  • 이 프로젝트에 반드시 필요하고 항상 같이 다녀아하는 모듈이라면 --save 포함해서 설치하자.






3. NPM으로 가져온 underscore 모듈 사용해보기 ( 예제 : 배열의 첫번째, 마지막 원소 가져오기 )




Line1 : underscore 모듈 가져오기

Line 8, 11 : Basic Javascript

Line 9, 12 : Nodejs

'Others > NODE.JS' 카테고리의 다른 글

Express] 정적파일을 서비스하는 법  (0) 2017.09.11
Express 설치 및 기본코드분석  (0) 2017.09.11
동기와 비동기  (0) 2017.09.07
웹 애플리케이션 만들기  (0) 2017.09.07
서버 측 자바스크립트 - nodejs 소개  (0) 2017.09.03