Skip to content

Latest commit

ย 

History

History
50 lines (40 loc) ยท 2.22 KB

250115-module.md

File metadata and controls

50 lines (40 loc) ยท 2.22 KB

๋ชจ๋“ˆ

###๋ชจ๋“ˆ์˜ ๋ฐฐ๊ฒฝ

  • <script>๏ฟฝํƒœ๊ทธ๋ฅผ ํ†ตํ•˜์—ฌ ์™ธ๋ถ€์˜ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ํŒŒ์ผ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•œ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ๊ฐœ์˜ jsํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€๋„ ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ธ๊ฒƒ์ฒ˜๋Ÿผ ๋œ๋‹ค.
  • ์ „์—ญ์Šค์ฝ”ํ”„๋ฅผ ๊ณต์œ ํ•˜๊ธฐ๋•Œ๋ฌธ์—, ํŒŒ์ผ ๊ฐ„์˜ ๋ณ€์ˆ˜/ํ•จ์ˆ˜์˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์ด ์ƒ๊ฒจ๋ฒ„๋ฆผ.
  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•ด CommonJS / ESModules ๊ฐ€ ๋‚˜์˜ด

CommonJS , ESModules

  • CommonJS๋Š” node.js์˜ ๊ธฐ๋ณธ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ / ESModule๋Š” ํ˜„๋Œ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€
// CommonJS
// ๋‚ด๋ณด๋‚ด๊ธฐ
module.exports = { func: function() { ... } };

// ๊ฐ€์ ธ์˜ค๊ธฐ
const module = require('./module');

//EsModule
// ๋‚ด๋ณด๋‚ด๊ธฐ
export const func = () => { ... };
export default class { ... };

// ๊ฐ€์ ธ์˜ค๊ธฐ
import { func } from './module';
import DefaultExport from './module';
  • ESModule : ์ •์  ๋ถ„์„ ๊ฐ€๋Šฅ, ๋น„๋™๊ธฐ์  ๋กœ๋”ฉ(์„ฑ๋Šฅ์ตœ์ ํ™”), Tree-shaking๊ฐ€๋Šฅ(์ฝ”๋“œ์ตœ์ ํ™”,์‚ฌ์šฉํ•˜์ง€์•Š๋Š” ์ฝ”๋“œ์ œ๊ฑฐ)
  • CommonJS : ๋™๊ธฐ์  ๋กœ๋”ฉ(์ˆœ์ฐจ์ ์œผ๋กœ), ๋Ÿฐํƒ€์ž„์— ์˜์กด์„ฑ ํ•ด์„
  • ESModule์€ ์‹œ์ž‘์ „์— ๋ชจ๋“  ๊ณ„ํš์ด ๋ช…ํ™•ํ•ด์•ผํ•˜๋Š” ๋ฐ˜๋ฉด์— CommonJS๋Š” ์‹คํ–‰ํ•˜๋ฉด์„œ ํ•„์š”ํ•œ๊ฒƒ์„ ๊ทธ๋•Œ๊ทธ๋•Œ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ESModule์€ ์ฝ”๋“œ ์‹คํ–‰ ์ „ ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ๊ฐ€๋Šฅ

์ •์ ๋ถ„์„

  • ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— Javascript ์—”์ง„์ด import/export๋ฅผ ๋ฏธ๋ฆฌ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ์–ด๋–ค ๋ชจ๋“ˆ์„ ๊ฐ–๊ณ ์˜ค๊ณ , ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ์ •์  ๋ถ„์„ ๋•๋ถ„์— ํŠธ๋ฆฌ์‰์ดํ‚น์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    export function add(a, b) { return a + b; }
    export function subtract(a, b) { return a - b; }
    
    import { add } from './math.js'; // subtract๋Š” ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Œ
    console.log(add(2,3));
    • ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œํ• ๋•Œ subtractํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋˜์–ด ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”๊ฐ€๋Šฅ

๋™์  ๋กœ๋”ฉ

  • ์ฝ”๋“œ ์‹คํ–‰ ์ค‘์— require๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹คํ–‰ํ• ๋•Œ ์–ด๋–ค ๋ชจ๋“ˆ์„ ๋กœ๋“œํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.
  • ๋ชจ๋“  ๋ชจ๋“ˆ์ด ์™„์ „ํžˆ ๋กœ๋“œ๋ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค(blocking ๋ฐœ์ƒ)