[Node.js] exports์™€ module.exports

[์›๋ณธ ๋งํฌ]

exports๋ถ€ํ„ฐ ๋ณด๊ฒ ๋‹ค.
exports๋Š” ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ „์—ญ ๊ฐ์ฒด๋‹ค.

node.js์—์„œ ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?
require๋กœ ๋ญ”๊ฐ€ ์™ธ๋ถ€ ์š”์†Œ๋ฅผ ๋–™๊ฒจ์˜ค๋Š” ๊ฒƒ์€ ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค.
์ด require๋กœ ๋•ก๊ฒจ์˜ค๋Š”๊ฒŒ ๋ฐ”๋กœ exports์— ์˜ํ•ด์„œ ์ž‘๋™ํ•œ๋‹ค.

"boom"์„ ์ฝ˜์†”์— ์ถœ๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜ boom์„ ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.
์ด๋Ÿฐ์‹์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์ด๊ฑธ ๋‹ค๋ฅธ ์†Œ์Šค์ธ index.js์—์„œ ๋•ก๊ฒจ์จ๋ณด๊ฒ ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.
์ €๊ธฐ์„œ require๋Š” ๋™์ผ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” boom์ด๋ผ๋Š” js ํŒŒ์ผ์„ ์ฝ์–ด๋“ค์—ฌ์„œ ๋ชจ๋“ˆ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  boom.boom() ์‹์—์„œ๋Š” ๋ฐฉ๊ธˆ exports๋กœ ์ถ”๊ฐ€ํ–ˆ๋˜ boom์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋Œ๋ ค๋ณด๋ฉด

์ž˜ ๋˜๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


module.exports๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๋„ ์žˆ๋‹ค.
์•„๊นŒ์™€ ๋‹ค๋ฅด๊ฒŒ ๋ชจ๋“ˆ ์ €์žฅ์šฉ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— ๋ฉค๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๋ชจ๋“ˆ ์˜ค๋ธŒ์ ํŠธ๋ฅผ module.exports์— ๋Œ€์ž…ํ•œ๋‹ค.

๋ฉ”์ธ ์†Œ์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋™์ผํ•˜๋‹ค.
์—ฌํŠผ ๋Œ๋ฆฌ๋ฉด

๋˜‘๊ฐ™์ด ์ž˜ ๋œ๋‹ค.


๋‘˜๋‹ค ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ, ๋Œ€์ฒด๋กœ module.exports์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋œ๋‹ค.