[Node.js] import, require ๋น„๊ต

yeonddoriยท2023๋…„ 9์›” 18์ผ
0

AID_WEB

๋ชฉ๋ก ๋ณด๊ธฐ
7/10

๐Ÿ“ import

JS์˜ ES6 ๋ฌธ๋ฒ•์œผ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ, ๋ณ€์ˆ˜ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์“ฐ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

ํŠน์ง•

  • ES6 ๋ฌธ๋ฒ•
  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ
  • ํ•„์š”ํ•œ ๋ชจ๋“ˆ ๋ถ€๋ถ„๋งŒ ์„ ํƒํ•˜๊ณ  ๋กœ๋“œ ๊ฐ€๋Šฅ
  • Java๋‚˜ Python ์–ธ์–ด ๋ฐฉ์‹๊ณผ ๋น„์Šทํ•จ

๋ฌธ๋ฒ•

const variable = require('variable');
const { readFile } = require('fs');

๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ

  1. ๋‹จ์ผ ๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ
    export default = variable
  2. ๋ณต์ˆ˜ ๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ
    export variable

๐Ÿ“ require

CommonJS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

ํŠน์ง•

  • CommonJS ๋ฌธ๋ฒ•
  • Ruby ์–ธ์–ด ๋ฐฉ์‹๊ณผ ๋น„์Šทํ•จ

๋ฌธ๋ฒ•

import variable from 'variable';
import { readFile } from 'fs';

๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ

  1. ๋‹จ์ผ ๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ
    module.exports = variable
  2. ๋ณต์ˆ˜ ๊ฐ์ฒด ๋‚ด๋ณด๋‚ด๊ธฐ
    exports.variable = variable

๐Ÿ“ import vs require

1. ํ˜ธ์ถœ ์œ„์น˜

import

ํŒŒ์ผ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

require

ํŒŒ์ผ ์–ด๋Š ์ง€์ ์—์„œ๋“ ์ง€ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

2. ๋™๊ธฐ/๋น„๋™๊ธฐ ๋กœ๋”ฉ

import

๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•จ
โ†’ ์ข…์†์„ฑ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ์จ์•ผ ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅโ†“

require

๋™๊ธฐ์ ์œผ๋กœ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•จ
โ†’ ์ข…์†์„ฑ ๊ด€๋ฆฌ์— ์šฉ์ดํ•˜์ง€๋งŒ ์„ฑ๋Šฅ ์•…์˜ํ–ฅ ๊ฐ€๋Šฅ์„ฑโ†‘

3. ์ •์ /๋™์  ๋กœ๋”ฉ

import

์ •์ ์œผ๋กœ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜์ง€๋งŒ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
์ตœ์ƒ์œ„ ๋ฒ”์œ„์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ ๋ถ„์„ ๋ฐ ์ตœ์ ํ™”์— ์œ ๋ฆฌํ•˜๋‹ค.

require

๋™์ ์œผ๋กœ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹คํ–‰ ์ค‘์— ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

4. ๋ชจ๋“ˆ ์บ์‹ฑ

import

๋ชจ๋“ˆ์„ ์บ์‹ฑํ•˜์—ฌ ์„ฑ๋Šฅ์—์„œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

require

๋ชจ๋“ˆ์„ ์บ์‹ฑํ•˜๋ฉฐ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

5. ํŒŒ์ผ ํ™•์žฅ์ž

import

Node.js ๋ฒ„์ „ ๋ฐ ์„ค์ •์— ๋”ฐ๋ผ ๋ช…์‹œ์ ์œผ๋กœ ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

require

ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
Node.js๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ .js, .json, .node ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค.

ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‘ ํ‚ค์›Œ๋“œ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.


๐Ÿช„ ๋งˆ์น˜๋ฉด์„œ

Babel๊ณผ ๊ฐ™์€ ES6 ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๊ตฌ ์—†์ด๋Š” importํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด require ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ , webpack์€ node.js ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋™ํ•˜๋ฏ€๋กœ require์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ์ถ”๊ฐ€๋กœ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. React ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” babel์—์„œ imoprt ๊ตฌ๋ฌธ์„ require ๊ตฌ๋ฌธ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— import ๊ตฌ๋ฌธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ด์ œ์•ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€