▣ 모듈?
- 일종의 부품
- 부품을 가져다 쓸 때는 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 |