HTML 파일에 JS파일을 연결하고 또 웹브라우저를 통해 동작을 확인하는 과정을 거치게된다.
하지만 노드를 사용하게되면 이런 번거로운 과정들이 없어진다.
노드는 자바스크립트를 실행할 수 있는 런타임 도구이다.
node 파일명.js
노드가 등장하기 전에는 웹 브라우저에서만 자바스크립트를 실행할 수 있었지만,
노드가 등장한 후에는 자바스크립트로도 서버, PC 앱, 모바일 앱 등 활용 범위가 늘어나게 되었다.
노드의 모듈 시스템
이전에 웹브라우저 자바스크립트를 사용할땐 script 태그로 앞서 선언된 script태그에 있는 함수, 변수 등을 사용했었다. 이와 비슷하게 노드에서는 다른 파일에 있는 함수나 변수를 가져와 쓸 수 있는 시스템이 존재한다.
파일이 기능이 모여 있는 모듈이다라고 이해할 수 있다. 노드에서 모듈간의 기능을 끌어와서 사용할 수 있는데 이와 관련 문법은 exports, require이다.
const { obj } = require("./index");
console.log(obj);
const { a } = require("./index");
console.log(a);
// exports는 비어있는 객체 참조를 한다.
exports.a = 1;
exports.obj = 'k';
// 아래와 같은 개념
// const obj = {};
// obj.a = 1;
C:\dev\node>node dummy.js
k
1
const one = 1;
const two = function () {
console.log(3);
}
// 한번에 담을 수 있음
module.exports = {
a: one,
b: two,
}
NPM(Node package manager)
노드를 설치하면 npm도 함께 설치가 된다.
npm은 다양한 자바스크립트 라이브러리를 설치하고 관리할 수 있는 노드의 패키지 매니저이다.
npm을 사용하여 전세계 자바스크립트 개발자들이 미리 구현해둔 유용한 기능들을 손쉽게 사용할 수 있다.
패키지 매니저는 노드에서만 존재하는 것은 아니라 파이썬에서는 pip, PHP는 composer, 자바는 maven이나 gradle, 리눅스의 apt-get 이 있다.
npm을 사용하려면 프로젝트의 폴더에서 터미널 명령어로 npm init을 쓰면된다.
생성시 패키지, 버전, 프로젝트 설명 등을 물어보는데 일단 기본값으로 해주었다. 패키지명 같은 경우에는 폴더이름으로 설정이되므로 폴더명을 한글로 썼다면 기본값으로 지정이 안되어, 본인이 원하는 영문 패키지명으로 지정하고 엔터를 누르면된다.
위와 같이 만들고 나면 이렇게 init한 폴더 안에
package.json파일이 생성되며 json 파일을 통해 다양한 패키지 의존성을 관리할 수 있다. 또한 이 파일 자체에서 공유해 팀 내 동일한 노드 개발환경을 손쉽게 구축할 수 있다.
여기까지는 아직 dependecies 가 추가되지 않았다.
npm install nodemon으로 노드몬을 설치해주면 추가가되며,
노드몬은 개발단계에서 코드에 변화가 생기면 자동으로 express 서버를 재시작해주는 라이브러리로 express 서버를 개발할 때 사용된다.
댓글