IIEF, Modules and Namespace
ππ»ββοΈContents
1. JavaScript Module
2. IIFE, Namespace
3. ES Module
JavaScript Module
Β κΈ°λ₯μ μ±κ²©μ΄ λΉμ·ν λλ μ°κ΄μ± μλ λΆλΆλ€μ΄
쑰립λ λ©μ΄λ¦¬
ππ»ββοΈμ λͺ¨λμ΄ νμνκ°μ?
β abstract code
β encapsulate code
β reuse code
β manage dependencies
Β
Β

μ½λ λΆλ¦¬

물리μ μΈ νμΌλ‘ μμΉλ₯Ό λΆλ¦¬
Namespace

IIFE

CommonJS

ES Module

IIFE, Namespace
Function Declarations

Function Expressions


IIFE
ν¨μλ₯Ό ννμμΌλ‘ λ°κΎΈκ³ μ¦μ μ€ννλ κ²μ΄λ€
Function Expressions

ν¨μ ννμμ λ§λλ λ λ€λ₯Έ λ°©λ²
IIFE

μ΄ν΄κ° μλμ...
IIFEμ νμ© - private variables

IIFEμ νμ© - alias

IIFEμ νμ© - module

ES Module
import, export
ν΄λΉ ν€μλλ₯Ό ν΅ν΄ λͺ¨λλ΄μ κ°μ λ΄λ³΄λ΄κ³ λΆλ¬μ¨λ€

Module μ¬μ©

type μμ±μ moduleλ‘ μ€μ νμ¬ λΈλΌμ°μ μμ λͺ¨λλ‘ μ²λ¦¬ν μ μλ€
κΈ°μ‘΄κ³Όμ μ°¨μ΄
1. λͺ¨λμμλ λͺ μνμ§ μμλ κΈ°λ³Έμ μΌλ‘ μ격λͺ¨λκ° μ μ©λλ€
Β
2. HTML μ€νμΌ μ£Όμ ꡬ문μ μ§μνμ§ μλλ€.
Β
Β
Β
Β
Β
Β
3. λͺ¨λμ μ΅μμ λ μ컬 μ€μ½νλ₯Ό κ°μ§λ€.
Β
Β
Β

κΈ°μ‘΄κ³Όμ μ°¨μ΄

mjs νμ₯μ
1. ν΄λΉ νμΌμ΄ λͺ¨λμμ λΆλͺ
νκ² λνλΌ μ μλ€.
Β Β Β - κΈ°μ‘΄ μ€ν¬λ¦½νΈμ μ·¨κΈλλκ² λ€λ₯΄κΈ° λλ¬Έμ μ£Όμκ° νμνλ€.
Β
2. node.jsμμ ES Moduleμ ꡬλΆνλ€.
Β
Module specifiers
π π»ββοΈ μ§μλλ μλ μ§μ μ
Β
Β
Β
ππ»ββοΈ μ§μλλ μ§μ μ
Β


μ λ κ²½λ‘ λλ μλκ²½λ‘λ₯Ό λͺ μν΄μ€μΌ νλ€
defer attribute
λͺ¨λ μ’ μ λͺ¨λμλ λμΌνκ² μ μ©λλ€

Performance recommendations
β Keep bundling (Trade-off)
β Use fine-grained modules
β Preload modules
β Use HTTP/2
Β
Β
Appendix
ES6 μ IIFE

ES6 μ΄νλ‘ IIFEμ νμμ±μ΄ λ μ΄μ μμκΉ?
ES6 μ IIFE
ES6 μ΄νλ‘ IIFEμ νμμ±μ΄ λ μ΄μ μμκΉ?


ES6 μ IIFE
ES6 μ΄νλ‘ IIFEμ νμμ±μ΄ λ μ΄μ μμκΉ?

JavaScript: IIFE, Modules and Namespaces
By Jaewoo KIM
JavaScript: IIFE, Modules and Namespaces
33-js-concepts
- 378