1. λͺ¨λμ μΌλ°μ μλ―Έ
- λͺ¨λ : μ ν리μΌμ΄μ
μ ꡬμ±νλ κ°λ³μ μμλ‘μ μ¬μ¬μ© κ°λ₯ν μ½λ μ‘°κ°
- λͺ¨λμ κΈ°λ₯μ κΈ°μ€μΌλ‘ νμΌ λ¨μλ‘ λΆλ¦¬νλ€.
- λͺ¨λμ΄ μ±λ¦½νκΈ° μν΄μλ μμ λ§μ νμΌ μ€μ½νλ₯Ό κ°μ ΈμΌ νλ€.
- μμ λ§μ νμΌ μ€μ½νλ₯Ό κ°λ λͺ¨λμ μμ°μ κΈ°λ³Έμ μΌλ‘ μΊ‘μνλμ΄ λ€λ₯Έ λͺ¨λμμ μ κ·Όν μ μκ³ μ ν리μΌμ΄μ
κ³Ό μμ ν λΆλ¦¬λμ΄ μ‘΄μ¬νλ€.
export
λ₯Ό ν΅ν΄ 곡κ°κ° νμν μμ°μ νμ νμ¬ λͺ
μμ μΌλ‘ μ νμ 곡κ°κ° κ°λ₯νλ€.
- 곡κ°λ λͺ¨λμ μμ°μ λ€λ₯Έ λͺ¨λμμ μ¬μ¬μ©ν μ μλ€.
- λͺ¨λ μ¬μ©μ : 곡κ°λ λͺ¨λμ μμ°μ μ¬μ©νλ λͺ¨λ
import
λ₯Ό ν΅ν΄ λͺ¨λμ΄ κ³΅κ°ν μμ° μ€ μΌλΆ λλ μ 체λ₯Ό μ νν΄ μμ μ μ€μ½ν λ΄λ‘ λΆλ¬λ€μ¬ μ¬μ¬μ©ν μ μλ€.
μ₯μ
- μ½λμ λ¨μλ₯Ό λͺ
νν λΆλ¦¬νμ¬ μ ν리μΌμ΄μ
μ ꡬμ±ν μ μλ€.
- μ¬μ¬μ©μ±μ΄ μ’μ κ°λ° ν¨μ¨μ±κ³Ό μ μ§λ³΄μμ±μ λμΌ μ μλ€.
2. μλ°μ€ν¬λ¦½νΈμ λͺ¨λ
- μλ°μ€ν¬λ¦½νΈλ λͺ¨λ μ±λ¦½μ μν΄ νμΌ μ€μ½νλ import, exportλ₯Ό μ§μνμ§ μμλ€. (κ³Όκ±°)
- μλ°μ€ν¬λ¦½νΈ νμΌμ μ¬λ¬ κ°μ νμΌλ‘ λΆλ¦¬νμ¬ script νκ·Έλ‘ λ‘λν΄λ νλμ νμΌ λ΄μ μλ κ²μ²λΌ λμνλ€.
- μ΄λ‘ μΈν΄ μ μ λ³μκ° μ€λ³΅λλ λ±μ λ¬Έμ κ° λ°μν μ μλ€.
- μλ°μ€ν¬λ¦½νΈ λ΄μμ λͺ¨λ μμ€ν
μ λ§λ€κ³ μ νλ©΄μ μλ°μ€ν¬λ¦½νΈ λͺ¨λ μμ€ν
μ CommonJS μ AMD μ§μμΌλ‘ λλμλ€.
- Node.jsλ μ¬μ€μ λͺ¨λ μμ€ν
μ νμ€μΈ CommonJSλ₯Ό μ±ννμΌλ©° νμΌ λ³λ‘ λ
립μ μΈ νμΌ μ€μ½ν(λͺ¨λ μ€μ½ν)λ₯Ό κ°λλ€.
3. ES6 λͺ¨λ(ESM)
- ES6μμ ν΄λΌμ΄μΈνΈ μ¬μ΄λ μλ°μ€ν¬λ¦½νΈμμ λμνλ λͺ¨λ κΈ°λ₯μ΄ μΆκ°λλ€. (IE μ μΈ)
- ESM μ¬μ©λ² : scriptνκ·Έμ type=module μ΄νΈλ¦¬λ·°νΈλ₯Ό μΆκ°
- μΌλ°μ μΈ μλ°μ€ν¬λ¦½νΈ νμΌκ³Όμ ꡬλΆμ μν΄ νμ₯μλ mjsλ₯Ό κΆμ₯νλ€.
3.1 λͺ¨λ μ€μ½ν
- λ
μμ μΈ λͺ¨λ μ€μ½νλ₯Ό κ°λλ€.
- λͺ¨λ λ΄μμ varλ‘ μ μΈν λ³μλ μ μ λ³μκ° μλλ©° window κ°μ²΄μ νλ‘νΌν°λ μλλ€.
3.2 export ν€μλ
- λͺ¨λ λ΄λΆμμ μ μΈν λͺ¨λ μλ³μλ κΈ°λ³Έμ μΌλ‘ ν΄λΉ λͺ¨λ λ΄λΆμμλ§ μ¬μ©μ΄ κ°λ₯νλ€.
- λͺ¨λ λ΄λΆμμ μ μΈν μλ³μλ₯Ό μΈλΆμ 곡κ°νμ¬ λ€λ₯Έ λͺ¨λλ€μ΄ μ¬μ¬μ©ν μ μκ² νκΈ° μν΄ export ν€μλλ₯Ό μ¬μ©νλ€.
- export ν€μλλ μ μΈλ¬Έ μμ μ¬μ©νλ€.
- λ³μ, ν¨μ, ν΄λμ€ λ± λͺ¨λ μλ³μλ₯Ό export ν μ μλ€.
- export ν λμμ νλμ κ°μ²΄λ‘ ꡬμ±νμ¬ ν λ²λ§ export ν μ μλ€.
3.3 import ν€μλ
- λ€λ₯Έ λͺ¨λμ΄ export ν μλ³μλ₯Ό μμ μ λͺ¨λ μ€μ½ν λ΄λΆλ‘ λ‘λνκΈ° μν΄ import ν€μλλ₯Ό μ¬μ©νλ€.
- ESM μ κ²½μ°μλ νμΌ νμ₯μλ₯Ό μλ΅ν μ μλ€.
- ν λ²μ importλ₯Ό νκΈ° μν΄μλ import λλ μλ³μλ₯Ό as λ€μ μ§μ ν μ΄λ¦μ κ°μ²΄μ νλ‘νΌν°μ ν λΉν μ μλ€.
import { pi as PI } from './lib.mjs';
export default
- λͺ¨λμμ λ¨ νλλ§ export νλ κ²½μ° export default ν€μλλ‘ κ³΅κ°λ₯Ό ν μ μλ€.
- export defaultλ₯Ό μ¬μ©νλ κ²½μ°μλ μ΄λ¦ μμ΄ νλμ κ°μ΄ export λλ€.
- export defaultλ₯Ό μ¬μ©νλ κ²½μ°μλ const, let, var μ κ°μ μ μ ν€μλλ μ¬μ©ν μ μλ€.