백엔드-노드

노드 실전

강사: 오백엔드 · 작성자: 이종춘 · 작성일: 2026-07-08 06:44:48 · 조회수: 4

6강. 모듈(Module)
목록으로
6강. 모듈(Module)

이번 강의에서는 Node.js의 핵심 기능인 모듈(Module)을 배웁니다.

목표: 하나의 파일에 모든 코드를 작성하지 않고, 기능별로 파일을 나누어 관리할 수 있다.

1. 모듈(Module)이란?

모듈은 기능을 하나의 파일로 분리하여 사용하는 것입니다.

예를 들어 계산 기능을 별도의 파일로 만들고 다른 파일에서 가져와 사용할 수 있습니다.

프로젝트

├── index.js
├── calc.js
└── package.json

2. 모듈을 사용하는 이유

모든 코드를 한 파일에 작성하면 관리하기 어렵습니다.

❌ 하나의 파일

index.js

├── 로그인
├── 회원가입
├── 게시판
├── 댓글
├── 업로드
├── 관리자
└── API

✅ 기능별 분리

project

├── index.js
├── login.js
├── user.js
├── board.js
├── comment.js
├── upload.js
└── admin.js

실무에서는 거의 모든 프로젝트를 이렇게 구성합니다.

3. 첫 번째 모듈 만들기

calc.js

function add(a, b) {
return a + b;
}

module.exports = add;

4. 모듈 가져오기

index.js

const add = require("./calc");

console.log(add(10, 20));

실행

node index.js

결과

30

5. 여러 함수 내보내기

calc.js

function add(a, b) {
return a + b;
}

function sub(a, b) {
return a - b;
}

module.exports = {

add,
sub

};

6. 여러 함수 가져오기

index.js

const calc = require("./calc");

console.log(calc.add(30, 10));
console.log(calc.sub(30, 10));

결과

40
20

7. 구조 분해 할당으로 가져오기

더 많이 사용하는 방식입니다.

const { add, sub } = require("./calc");

console.log(add(100, 20));
console.log(sub(100, 20));

8. 문자열 모듈 만들기

message.js

const hello = () => {

return "안녕하세요.";

};

module.exports = hello;

index.js

const hello = require("./message");

console.log(hello());

결과

안녕하세요.

9. 객체 내보내기

user.js

module.exports = {

name: "커사맨",
age: 50,
job: "AI 크리에이터"

};

index.js

const user = require("./user");

console.log(user.name);
console.log(user.age);
console.log(user.job);

10. 배열 내보내기

fruits.js

module.exports = [

"사과",
"바나나",
"포도"

];

index.js

const fruits = require("./fruits");

console.log(fruits);

11. 모듈 경로

현재 폴더

require("./calc");

상위 폴더

require("../calc");

하위 폴더

require("./js/calc");

12. 파일 확장자 생략

다음 두 코드는 같습니다.

require("./calc");
require("./calc.js");

보통 .js는 생략합니다.

13. 모듈 캐시

같은 모듈을 여러 번 불러와도 한 번만 실행됩니다.

const user1 = require("./user");
const user2 = require("./user");

console.log(user1 === user2);

결과

true

Node.js는 같은 모듈을 메모리에 저장해 재사용합니다.

14. 실무 프로젝트 구조
project

├── app.js
├── package.json
├── routes
│ ├── user.js
│ ├── board.js
│ └── admin.js

├── controllers

├── models

├── config

├── public

└── views

실무에서는 기능별로 파일을 분리해 관리합니다.

15. 실습 1

math.js

function multiply(a, b) {

return a * b;

}

module.exports = multiply;

index.js

const multiply = require("./math");

console.log(multiply(5, 6));

16. 실습 2

person.js

module.exports = {

name: "홍길동",
age: 30

};

index.js

const person = require("./person");

console.log(person.name);
console.log(person.age);

17. 실습 3

message.js

module.exports = function(){

return "Node.js 재미있다!";

};

index.js

const message = require("./message");

console.log(message());

18. CommonJS와 ES Module

Node.js에는 두 가지 모듈 방식이 있습니다.

CommonJS (현재 강의)
const calc = require("./calc");

module.exports = calc;
ES Module (최신 JavaScript)
import calc from "./calc.js";

export default calc;

Node.js 실무에서는 CommonJS와 ES Module을 모두 접하게 되므로 두 방식 모두 알아두는 것이 좋습니다.

19. 이번 강의 핵심 정리
문법 설명
require() 모듈 가져오기
module.exports 모듈 내보내기
./ 현재 폴더
../ 상위 폴더
{} 구조 분해 할당
import / export ES Module 방식

20. 실무 팁

작은 프로젝트에서는 파일이 몇 개 안 되지만, 실제 서비스는 수백~수천 개의 파일로 구성됩니다.

예를 들어 게시판 기능만 해도 다음처럼 분리합니다.

board

├── board.routes.js
├── board.controller.js
├── board.service.js
├── board.model.js
└── board.validation.js

기능별로 나누면 유지보수와 협업이 훨씬 쉬워집니다.

실습 체크리스트
✅ module.exports로 함수 내보내기
✅ require()로 모듈 가져오기
✅ 객체와 배열 내보내기
✅ 여러 함수를 하나의 모듈로 관리하기
✅ 구조 분해 할당으로 필요한 함수만 가져오기
✅ 기능별 파일 분리 경험하기
#6강. 모듈(Module)

첨부 파일

0개
첨부된 파일이 없습니다.

댓글 / 답글

0개
댓글을 작성하려면 로그인하세요.
아직 댓글이 없습니다.