Node.js?
Node.js
는 구글의 V8 자바스크립트 엔진을 기본으로 하며 이를 실행시키는 개발 프레임워크다. 자바 스크립트로 Node.js
코드를 작성하고 나면, 이 코드가 실행될 수 있게 V8이 기계어로 컴파일 한다.
웹 서버와 서버 측 스크립트, 그리고 지원하는 모든 웹 애플리케이션 기능을 포함한 서버 측 코드의 대부분을 Node.js
로 작성할 수 있다. 웹 서버와, 웹 서버가 지원하는 웹 애플리케이션 스크립트가 동일한 서버 측 애플리케이션에서 같이 실행되므로 웹 서버와 스크립트를 훨씬 더 견고하게 통합할 수 있다.
또한, 웹 서버는 Node.js
플랫폼에서 Node.js
모듈로써 바로 실행될 수 있는데, 이는 새로운 서비스나 서버 측 스크립트를 추가하기 위해 아파치를 사용하는 것보다 훨씬 더 쉬움을 의미한다.
아래는 Node.js
의 장점들이다.
-
- 단대단 자바스크립트
- 자바스크립트로 서버 측 스크립트와 클라이언트 측 스크립트를 둘 다 작성할 수 있음. 따라서 클라이언트 개발자와 서버 개발자가 같은 언어를 사용할 수 있다.
-
- 이벤트 기반 규모 조절성
Node.js
는 웹 요청을 처리하기 위해 여러 스레드가 기다리게 하는 대신, 기본 이벤트 모델을 이용해서 웹 요청을 동일한 스레드에서 처리한다.
-
- 기능 확장성
- 여러 커뮤니티를 통해,
Node.js
에 새로운 기능을 추가할 수 있다.
- 빠른 구현
Node Package Manager
Node Package Manager
의 약자로 Command Line 도구이다. 이 도구를 통해 NPMs
과 관련된 검색, 설치, 삭제, 발행 등 많은 작업을 할 수 있다. NPM
은 Node Package Registry
라고 불리는 노드 패키지 저장소와 개발 환경 사이에 연결고리 역할을 한다.
명령은 npm
이라는 키워드를 이용해 내릴 수 있다.
1 |
|
Node Package Module 설치
애플리케이션에서 노드 모듈을 사용하려면 노드가 찾을 수 있는 위치에 해당 모듈을 설치해야 한다. 노드 모듈을 설치하려면 npm install <모듈 이름>
형식에 맞는 명령을 수행해 해당 모듈을 개발 환경 내에 다운로드하고 install 명령이 실행된 곳의 node_modules
폴더에 위치시켜야 한다.
package.json
모든 노드 모듈의 최상위 디렉토리에는 반드시 package.json
파일이 놓인다. package.json
은 노드 패키지 관리자에 제공할 해당 모듈 및 의존 모듈의 정보가 들어 있는, JSON 형식으로 된 텍스트 파일이다.
가장 좋은 사용 방법은 package.json
파일에 필요한 종속 모듈 명세만을 추가하면 이를 자동으로 내려받아 설치하는 방법이다. 따라서 package.json
파일을 프로젝트 최상위 폴더에 만드는 것이다. 명세를 추가한 이후에 npm install
명령어를 이용해 명세에 추가된 모듈들을 자동으로 설치한다. 설치 이후에 추가 모듈이 필요한 경우는 dependencies
에 추가로 설치할 모듈의 정보를 입력하고 npm install
을 재수행 해주면 된다.
아래와 같은 형식으로 구성되어있다.
1 |
|
아래는 package.json
파일에 사용되는 키워드의 설명이다.
Keyword | Description |
---|---|
name | 패키지의 고유 이름 |
preferGlobal | 모듈의 전역 설치 선호 표시(true, false로 설정) |
version | 모듈 버전 정보 |
author | 프로젝트 작성자명 |
description | 모듈에 대한 설명 |
contributors | 모듈에 공헌한 사람들 |
bin | 프로젝트와 같이 설치될 바이너리 |
scripts | node 런치 시 사용한 console app 전달인자 |
main | 바이너리나 .js파일로 구성되는 애플리케이션 메인 진입점 |
repository | 저장소 형식과 패키지 위치 |
keywords | npm 검색 시 사용될 키워드 |
dependencies | 종속성이 있는 모듈과 버전(x를 와일드카드로 사용) |
engines | 패키지에 사용된 node 버전 |
Node.js 모듈 생성
패키지로 묶은 Node.js 모듈
을 생성하려면 자바스크립트로 필요한 기능을 정의하고 package.json
파일에 패키지 정의를 추가해주어야 한다. 아래는 Node.js 모듈
을 생성하는 과정이다.
- 프로젝트의 Root가 되는 폴더를 하나 생성한다.
- 생성한 폴더에 필요한 기능을하는 자바스크립트 파일을 생성한다.
package.json
파일을 생성해 관련된 정보를 작성한다. (name, version, main은 반드시 추가한다. main은 메인 자바스크립트 모듈의 이름을 의미한다. 또한 자동으로.js
확장자를 포함하기 때문에 이름에.js
를 붙일 필요가 없다.)README.md
파일을 생성해 필요한 내용을 추가한다.- console창을 열어 Root가 되는 폴더로 이동 후
npm pack
명령어를 실행시킨다. - Root 폴더 내에
[폴더이름]-[version].tgz
라는 이름의 패키지 모듈이 생성됫다.
Node Pacakge Registry에 모듈을 올려보자
npm pack
명령어로 생성된 패키지 모듈을 공개적으로 다운받고 사용할 수 있도록 패키지 저장소에 올려보자.
- github와 같은 공개저장소를 생성하고 Root폴더의 내용을 해당 저장소에 업로드한다.
- https://npmjs.org 에서 계정을 생성한다.
- 명령 창에서
npm adduser
명령어를 이용해 사용자 정보를 추가한다. (계정 생성 시의 정보를 입력한다) package.json
파일의 내용에 public 저장소의 정보와 레지스트리 검색 시 사용할 키워드 정보를 추가한다.
1 |
|
- Root 폴더로 이동 후
npm publish
명령어를 통해 NPR에 모듈을 업로드한다. 이제npm install [모듈이름]
으로 업로드한 모듈을 다운로드받아 require() 함수를 사용해 모듈을 로딩하고 사용할 수 있다. (업로드된 모듈을 삭제할 경우에는npm unpublish
명령어를 사용할 수 있다)
모듈의 사용
모듈은 require()함수를 이용해 로드하고 사용할 수 있는데, 인자값으로 설치된 모듈의 이름이나 .js
파일이 위치한 경로를 넘겨줄 수 있다.
1 |
|
이렇게 로드한 .js파일을 변수에 넣어주고, .js에 구현되어있는 함수들을 사용할 수 있다.
1 |
|