Skip to content

Latest commit

ย 

History

History
127 lines (104 loc) ยท 3.26 KB

ch48-ํ•ด์„ค.md

File metadata and controls

127 lines (104 loc) ยท 3.26 KB

Chapter48

๐Ÿ“Œ๋ฌธ์ œ1

true or false๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค

export default๋ฅผ ํ•  ๋•Œ const, let, var ํ‚ค์›Œ๋“œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
default ํ‚ค์›Œ๋“œ๋กœ export ํ•œ ๋ชจ๋“ˆ์„ import ํ•  ๋•Œ๋Š” ์ด๋ฆ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ์ด๋ฆ„์œผ๋กœ import ํ•ด๋„ ์ƒ๊ด€ ์—†๋‹ค.
๋ชจ๋“ˆ ๋‚ด์—์„œ var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. 

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1) true const, let, var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
(2) true default ํ‚ค์›Œ๋“œ๋กœ export ํ•  ๋•Œ์—๋Š” ์ด๋ฆ„์ด ์—†์–ด์„œ ์•„๋ฌด ์ด๋ฆ„์ด๋‚˜ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์˜คํƒ€ ์ฒดํฌ๊ฐ€ ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 
(3) true ๋ชจ๋“ˆ ์Šค์ฝ”ํ”„ ์•ˆ์˜ ๋ณ€์ˆ˜๋กœ ๋‚จ๊ฒŒ ๋œ๋‹ค. 

๐Ÿ“Œ๋ฌธ์ œ2

๋‹ค์Œ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ณ ๋ฅด์„ธ์š”.

import { pi as PI, square as sq } from './lib.mjs';
export default x => x * x; // (2)
export default const foo = () => {}; // (3)

์ •๋‹ต ๋ฐ ํ•ด์„ค

(3)
default ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ var, let, const ํ‚ค์›Œ๋“œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ3

๋‹ค์Œ ๋ณด๊ธฐ์˜ true, false๋ฅผ ํŒ๋‹จํ•˜์‹œ์˜ค.

(1) : ํ˜„์žฌ Node.js๋Š” CommonJS ์‚ฌ์–‘์„ ๋”ฐ๋ฅธ๋‹ค.
(2) : ES6์— ์ถ”๊ฐ€๋œ import, export๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•˜๋‹ค

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1) : true
(2) : true
// CommonJS
// - Javascript Everywhere๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•œ ์ž๋ฐœ์  ์›Œํ‚น ๊ทธ๋ฃน
// - ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋”ฉ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ํ™˜๊ฒฝ์— ์ ํ•ฉ
// - script ํŒŒ์ผ ๋กœ๋”ฉ์‹œ blocking์ด ๋ฐœ์ƒํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” ์„ฑ๋Šฅ์ €ํ•˜ ๋ฐœ์ƒ

// math.js
module.exports = {
  sum: function (a, b) { return a + b }
};

// sub.js
const math = require('./math.js');
module.exports = {
  plusTwo: function (a) { return math.sum(a, 2); }
}

// main.js
const plusTwo = require('./sub.js').plusTwo;
console.log(plusTwo(10));


// AMD (Asynchronous Module Definition)
// - CommonJS๊ฐ€ ๋ธŒ๋ผ์šฐ์ €ํ™˜๊ฒฝ์—์„œ ๋น„๋™๊ธฐ ๋ชจ๋“ˆ ๋กœ๋“œ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์ ์€ ๊ฒƒ์— ๋ฐ˜๊ฐ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ์ง‘๋‹จ
// - ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ๋น„๋™๊ธฐ ๋„คํŠธ์›Œํฌ ๋กœ๋”ฉ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

// math.js
define([], function () {
  function sum (a, b) { return a + b; }
  return {
    sum: sum
  }
});

// sub.js
define(['math'], function (math) {
  function plusTwo (a) {
    return math.sum(a, 2);
  }
  return {
    plusTwo: plusTwo
  }
});

// main.js
require(['sub'], function (sub) {
  console.log(sub.plusTwo(10));
});


// ES6 ๋ชจ๋“ˆ (ESM)
// - ES6์— ์ถ”๊ฐ€๋œ ์‚ฌ์–‘์œผ๋กœ ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›
// - Node.js ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด package.json์— type: module ์ž‘์„ฑ

// math.js
export function sum(a, b) { return a + b }

// sub.js
import { sum } from './math.js';
export default function (a) { return sum(a, 2) }

// main.js
import plusTwo from './sub.js';
console.log(plusTwo(10));

๐Ÿ“Œ๋ฌธ์ œ4

๋ชจ๋“ˆ์‚ฌ์šฉ์˜ ์žฅ์ ์—๋Œ€ํ•ด์„œ ์„œ์ˆ ํ•˜์‹œ์˜ค.(2๊ฐ€์ง€)

๋‹ต์•ˆ ์ž‘์„ฑ

(1) : ์ฝ”๋“œ์˜ ๋‹จ์œ„๋ฅผ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.
(2) : ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ข‹์•„์„œ ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
p.891