Web-Frontend/Node.js

[Node.js] Node.js 모듈 & npm

서노리 2023. 1. 6. 02:35
반응형

Node.js 모듈

모듈이란 어플리케이션을 구성하는 개별적 요소를 말하며 주로 기능별로 분리되어 작성된다. Node.js는 commonJS라는 모듈 시스템 방식을 따른다. 하나의 모듈은 파일과 1대1 대응 관계를 가지며 각자의 독립적인 스코프를 가지게된다. 

 

module.exports

모듈은 독립적인 파일 스코프를 갖기 때문에 모듈 안에 선언한 모든 것들은 해당 모듈 내부에서만 참조 가능하다. 모듈 안에 선언한 항목을 외부에 공개하여 다른 모듈들이 사용할 수 있게 하고 싶다면 module.exports 객체를 사용하여 모듈을 내보낼 수 있다.

// calc.js
const add = (a, b) => {
    return a + b;
};

const sub = (a, b) => {
    return a - b;
};

module.exports = {
    moduleName: "calc module",
    add: add,
    sub: sub
};

 

require

다른 모듈을 불러와 사용하기 위해서는 require라는 키워드를 사용할 수 있다.

require 키워드는 항상 module.exports 객체를 반환한다. 

// index.js
const calc = require("./calc");
console.log(calc.add(1, 2));
console.log(calc.sub(10, 2));

// 3
// 8

 

코어 모듈과 파일 모듈

코어 모듈은 Node.js가 기본적으로 포함하고 있는 모듈이며 코어 모듈을 불러올 때는 경로를 명시하지 않아도 무방하다.

const http = require('http');

 

npm을 통해 설치한 외부 패키지 또한 경로를 명시하지 않아도 무방하다.

const mongoose = require('mongoose');

 

코어 모듈과 외부 패키지를 제외한 나머지는 모두 파일 모듈이며 반드시 경로를 명시하여야 한다.

const foo = require('./lib/foo');

NPM(Node Package Magager)

npm은 Node.js 개발자들이 패키지(모듈)의 설치 및 관리를 쉽게 하도록 도와주는 도구이다. 파이썬의 pip나, 자바의 Gradle 등과 같은 역할을 한다. npm은 Node.js 설치 시 자동으로 같이 설치된다.

 

npm 사용법

npm init

Node.js 프로젝트를 시작할 때, package.json을 생성해주는 명령이다. package.json은 프로젝트의 정보와 특히 프로젝트가 설치한 패키지에 대한 정보가 저장되어 있는 파일이다.

// package.json

{
  "name": "node_practice",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "randomcolor": "^0.6.2"
  }
}

package.json 파일의 dependencies에 설치한 외부 패키지들의 목록과 그 버전을 보여준다.

 

npm install

'npm install 패키지이름' 명령어를 사용하여 외부 패키지를 설치할 수 있다.

npm i 패키지이름으로 축약하여 사용할 수도 있다.

 

npm 공식 사이트에서 어떤 외부 패키지들이 있는지 찾아볼 수 있다.

 

npm

Bring the best of open source to you, your team, and your company Relied upon by more than 11 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com


 

반응형

'Web-Frontend > Node.js' 카테고리의 다른 글

[Node.js] NVM 사용하여 node.js 버전 변경하기  (0) 2023.10.19
[Node.js] Node.js란  (0) 2023.01.06