본문 바로가기
Node.js

[Node.js] 노드제이에스 - 노드의 모듈

by Seong-Jun 2024. 2. 2.
728x90
반응형
SMALL

 

Do it! Node.js 프로그래밍 입문 공부단 1일차 입니다.

 

모듈이란?

프로그램을 만들 때에는 최대한 작은 기능 단위로 쪼개서 각 기능을 하나씩 해결하는 방식을 가장 많이 사용합니다. 이렇게 기능별로 만들어 놓은 함수를 모듈이라고 합니다.

CommonJS 모듈 시스템과 ES모듈 시스템

require()를 통해 모듈을 가져오는 방식을 CommonJS 모듈 시스템이고 import 변수/함수명 from '모듈파일' 형태로 가져오는 방식이 ES모듈 시스템입니다. 하위 버전과의 호환을 위해 CommonJS 모듈을 사용할 수 있고 최신 문법이나 타입스크립트를 사용한다면 ES모듈 시스템을 사용합니다.

 

// 모듈 만들고 내보내기
const user1 = "Jun"
const user2 = "Lim"
const user3 = "Kim"
module.exports = {user1,user2,user3} // 객체로 만들어서 내보내기
// 모듈 만들고 내보내기
const hello = (name) => {
    console.log(`${name}님 안녕하세요`)
}
module.exports = hello
// 모듈 가져와서 사용하기
const users = require("./user")
const hello = require("./hello")

hello(users.user1)
hello(users.user2)
hello(users.user3)

 

모듈을 가져올 때는 상대경로로 지정합니다. 확장자는 생략할 수 있습니다.

 

노드의 코어 모듈

노드에는 백엔드 개발에 필요한 모듈이 내장되어 있습니다. 이 모듈을 코어 모듈이라고 합니다.

fs 파일이나 폴더에 접근할 수 있는 기능을 제공
http http서버를 만들고 요청을 처리하는 기능을 제공
path 파일 경로와 관련된 작업을 하는 기능을 제공
streams 데이터 스트림을 처리하는 기능을 제공
crypto 암호화와 관련된 기능을 제공
os 운영체제와 상호작용하는 기능을 제공
util 다양한 유틸리티 함수를 제공
events 이벤트 기반 프로그래밍을 지원하는 기능을 제공
// import 하는 법
const fs = require("fs")
const fs = require("node:fs")

 

글로벌 모듈

require없이 사용할 수 있는 모듈입니다. 글로벌 모듈에 있는 객체를 글로벌 객체라고 합니다. 대표적으로 console이 있습니다. 글로벌 객체 console은 미리 정의되어 있는 log함수를 사용합니다.

 

__dirname, __filename

글로벌 모듈에 있는 여러 변수 중에서 자주 사용하는 두 변수 입니다.

__dirname 이 변수는 현재 모듈이 있는 폴더 이름을 가져옵니다.
__filename 이 변수는 현재 모듈이 있는 파일 이름을 가져옵니다.

 

모두 절대경로로 표시합니다.

 

타이머 함수 - setTimeout, setInterval, clearInterval
이 함수들도 노드에서 글로벌 객체로 사용할 수 있습니다.

728x90
반응형
LIST

댓글