[Node.js] Node.js 모듈

유진·2023년 9월 18일

Node.js

목록 보기
3/8

Node.js 모듈

모듈이란?
간단한 프로그램이라면 파일 하나로도 가능하지만 프로젝트가 커지면 기능에 맞게 코드를 분리하는 것이 중요하다. 모듈은 코드를 분리하기 위한 방법이다.
✔ 패키지는 모듈의 모음. npm 패키지들은 많은 모듈을 포함하고 있는 코드 모음



Node.js 기본 제공 모듈

1) console

  • 브라우저에서 제공되는 console과 유사한 디버깅 도구
  • log, warn, error 함수로 로그 레벨 표시
  • time, timeLog, timeEnd 함수로 시간 추적

2) process

  • 현재 실행 프로세스 관련 기능 제공
  • arch, argv, env 등 실행 환경 및 변수 관련 값 제공
  • abort, kill, exit 등 프로세스 동작 관련 함수 제공

3) fs

  • 파일 입출력을 하기 위해 사용
  • readFile, writeFile 함수로 파일 읽기, 쓰기
  • Sync 함수 제공, 동기 동작
  • watch로 파일/디렉터리 변경 이벤트 감지

4) http

  • http 서버, 클라이언트를 위해 사용
  • createServer 함수로 서버 생성
  • Request 함수로 http 요청 생성


모듈 작성법

  • 기본적인 모듈 작성법
module.exports = { 	// 모듈이 load될 때 사용될 값을 module.exports로 내보냄.
	name, 
	age, 
	nationality,
};

---------------
  
const people = require(./people’);
  • 변수명으로 export하는 모듈 작성법
exports.name = name;	// 모듈을 object로 만들고, 각 key - value를 지정해서 내보냄
exports.age = age;
exports.nationality = nationality;

---------------
  
const people = require(./people’);
  • 함수를 export하는 모듈 작성법
module.exports = (name, age, nationality) => {	// 모듈을 함수로 만들어서 모듈 사용 시에 값을 정할 수 있게 내보냄
	return { 
		name, 
		age, 
		nationality,
	};
}

---------------
  
const student = require(./people’)(‘Park’, 5, ‘korea’) 


모듈 사용 방법

  • require 함수를 통해 모듈을 load 할 수 있다.
  • C에서 include, Java에서 import와 유사하다.
  • 의존성 패키지, 직접 작성한 모듈 사용 가능하다.
  • require 할 때 모듈 코드가 실행된다.
  • Node.js의 모듈은 첫 require 시에 cache, 두 번 실행하지 않는다.
  • 모듈 코드를 여러 번 실행하기 위해선 함수 모듈로 작성한다.

1) npm패키지

const dayjs = require('dayjs');
console.log(dayjs())
  • 의존성 패키지들은 require(‘package-name’)로 load 할 수 있다.
  • 패키지를 사용하려면 node_modules에 내려받아져 있어야 한다.

2) 작접 작성한 모듈

const myModule = require('./my-module');
console.log(myModule);
  • 직접 작성한 모듈은 현재 파일과의 상대 디렉터리로 load한다.
    • my-module이 .js 파일인 경우 해당 파일 load.
    • my-module이 디렉터리인 경우 my-module/index.js 파일 load.

3) 함수형 모듈

const myFunctionModule = require('./my-function-module');
console.log(myFunctionModule(name, age, nationality));
  • 함수형 모듈은 load한 경우 모듈이 바로 실행되지 않는다.
  • 필요한 시점에 load된 함수를 실행하여 모듈을 사용할 수 있다.

4) json 파일

// my-data.json 을 가지고 있음
const myData = require('./my-data');
console.log(myData);
  • require로 json 파일도 load 가능. object로 자동파싱


profile
도라에몽 암기빵

0개의 댓글