moduleProject

CommonJs

exports, requireํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฉ์‹

const fun1 = require('example');

example ์ด๋ผ๋Š” ๋ชจ๋“ˆ(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ require์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ถˆ๋Ÿฌ์™€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

const div = 2;

const func1 = function (num2) {
  return num2 / div;
};

exports.func1 = func1;

module.exports = func1;

exportsํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ์ฒด๋“ค์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๊ณ  module.exportsํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ํ•œ๊ฐœ์˜ ๊ฐ์ฒด๋งŒ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค.

CommonJs๋Š” ๋ชจ๋“  ํŒŒ์ผ์ด ๋””์Šคํฌ์— ์žˆ๋Š” ์ƒํ™ฉ์„ ์ „์ œ๋กœ ํ•œ๋‹ค. (์„œ๋ฒ„ ์‚ฌ์ด๋“œ) ๋•Œ๋ฌธ์—, ํ•œ๊ฐœ์˜ JsํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›๋Š”๋ฐ ๊ทธ ํŒŒ์ผ์— ์ถ”๊ฐ€๋˜์–ด์žˆ๋Š” ์˜์กด์„ฑ ํŒŒ์ผ๋“ค(๋ชจ๋“ˆ)์„ ๋ชจ๋‘ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ๋‹ค์šด๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ ํ›„์— ์‘๋‹ต์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— block๋œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

์ด๋Š” ๋™์ ์œผ๋กœ script ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ทน๋ณต์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. (๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŠน์ • Js๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ๋™์•ˆ block์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ง‰๊ณ ์ž jsํŒŒ์ผ๋‚ด์—์„œ scriptํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚˜์ค‘์— ํŠน์ • ํƒœ๊ทธ์— ๋ถ™์ด๋Š” ๋ฐฉ๋ฒ•)

์„œ๋ฒ„์˜ ๋ชจ๋“ˆ์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” require.define({},[])์˜ ํฌ๋งท์œผ๋กœ ๊ฐ์‹ธ ์ „์†กํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

AMD

import - fromํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ CommonJs์— ๋น„ํ•ด ๋ช…์‹œ์ ์ด๋‹ค.

๋น„๋™๊ธฐํ™˜๊ฒฝ๊ณผ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ์ž˜ ๋™์ž‘ํ•˜๊ณ  define() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•ด ์ „์—ญ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

๋ณดํ†ต ํŠธ๋ฆฌ ์‰์ดํ‚น์„ ์œ„ํ•ด ํ”„๋ก ํŠธ์—์„œ๋Š” AMD๋ช…์„ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


Reference

https://d2.naver.com/helloworld/12864

Last updated