λ©ν λ§ 4λ²μ§Έ
π F-lab λ©ν λ§ κΈ°λ‘
λ©ν λ§ μ΄ν λΆμ‘±ν λΆλΆμ μ±μ°κΈ° μν κΈ°λ‘
JavaScript
νλ‘ν νμ
체μΈ
- νλ‘ν νμ : μλ°μ€ν¬λ¦½νΈμ κΈ°λ°μ΄ λλ κ°λ μΌλ‘ κ° ν¨μμ μμ κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μλ νλ‘νΌν°
- νλ‘ν νμ 체μΈ: μ΄λ€ κ°μ²΄μ νλ‘ν νμ λν νλ‘ν νμ μ κ°κ³ μμΌλ©° μ΄λ₯Ό ν΅ν΄ μ€μ½ν μ²΄μΈ μ²λΌ μμ νλ‘ν νμ μ μ°Έμ‘°νλ©° νλ‘ν νμ μ΄ κ°κ³ μλ λ©μλλ₯Ό νμ©ν μ μλ λ°©λ²
JavaScript
ν΄λ‘μ μ μ 보μλ
- ν΄λ‘μ : μ΄λ€ ν¨μμ λ³μλ₯Ό μ°Έμ‘°νλ λ΄λΆ ν¨μκ° μΈλΆλ‘ μ λ¬λ λ, μ°Έμ‘°λ κ·Έ λ³μκ° λ©λͺ¨λ¦¬μμ μ κ±°λμ§ μλ νμ
function counterFactory() {
var count = 0;
this.count = ++count;
}
// μμ κ°μ λ°©μμ κ°μ²΄λ₯Ό μμ±ν΄λ countκ° κ³μ 0μΌλ‘ μ΄κΈ°νλλ€. λν, λ§λ€μ΄μ§ κ°μ²΄μ μΈλΆμμ countκ°μ μ κ·Όμ΄ κ°λ₯νλ©° λ³κ²½ κ°λ₯
function counterFactory() {
var _count = 0;
return function () {
return ++_count;
};
}
// ν΄λ‘μ λ₯Ό μ΄μ©νλ©΄ _countκ° λ©λͺ¨λ¦¬μ κ³μ λ¨μμκΈ°μ νΈμΆ μ κ³μ 1μ΄ λν΄μ§λ©°, μΈλΆμμ μ§μ _countμ μ κ·Όν μ μλ€.
JavaScript
React
λΆλ³μ±
- λΆλ³μ±: κ°μ²΄κ° μ΅μ΄λ‘ μμ±λμμ λμ κ°μ΄ λ³νμ§ μκ³ μ μ§λλ κ² -> λ©λͺ¨λ¦¬ μμμμ κ°μ λ³κ²½ν μ μλ€λ μλ―Έ
μμνμ λ°μ΄ν°λ₯Ό ν λΉν λ, λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ μ₯νκ³ κ·Έ μ£Όμλ₯Ό λ³μμ ν λΉ μ΄ν κ°μ λ³μμ μλ‘μ΄ λ°μ΄ν°λ₯Ό μ¬ν λΉνκ² λλ©΄, κ·Έ μλ‘μ΄ λ°μ΄ν°μ λν λ©λͺ¨λ¦¬κ° μλ‘κ² μκΈ°κ³ κ·Έ μ£Όμλ₯Ό λ³μμ ν λΉνλ€. μ¦, λ°μ΄ν° μμ²΄κ° λ°λλ κ²μ΄ μλλΌ μλ‘μ΄ κ³΅κ°μ μλ‘μ΄ λ°μ΄ν°λ₯Ό λ£κ³ κ·Έ μ£Όμλ₯Ό ν λΉνλ―λ‘ μ΄λ₯Ό
λΆλ³μ±
μ΄λΌκ³ νλ©° κΈ°μ‘΄ λ°μ΄ν°μ λ©λͺ¨λ¦¬λ κ°λΉμ§ μ½λ ν°μ μν΄ μ κ±°λλ€. κ·Έλ¬λ κ°μ²΄μ κ²½μ°, κ·Έ κ°μ²΄ λ΄λΆμ λ³μκ° μ‘΄μ¬νκ³ κ·Έ λ³μκ° λ°μ΄ν°μ μ£Όμλ₯Ό μ°Έμ‘°νκΈ°μ κ·Έ λ³μμ μ£Όμλ₯Ό μ°Έμ‘°νλ κ°μ²΄λ νλ‘νΌν°μ κ°μ μ¬ν λΉν΄λ νλ‘νΌν°μ μ£Όμλ₯Ό κ·Έλλ‘ κ°κ³ μμΌλ©΄μ κ°λ§ λ°λκ² λλ€. μ΄λ₯Όκ°λ³μ±
μ΄λΌκ³ νλ€.
νλ λͺ¨λ μλ°μ€ν¬λ¦½νΈ λΆλ³μ±μ μ€μμ±
λΆλ³μ±μ΄ μ€μν μ΄μ λ λ¨μνκ² μκ°νλ©΄ μ μλ³μλ₯Ό μ§μ
νλ μ΄μ μ λΉμ·νλ€.
μ½λμ κΈΈμ΄μ 볡μ‘λκ° μ¦κ°ν μλ‘ νΉμ λ³μμ κ°μ λ°κΎΈκ² λ μλ μκ³ μ΄ν λ°μν μλ¬λ₯Ό μΆμ νκΈ°μλ λ²κ±°μμ§λ€.
μ΄λ€ κ°μ²΄μ μ°Έμ‘°κ°μ μ¬λ¬ κ³³μμ 곡μ νλ©΄ κ·Έ κ°μ΄ κ³μ λ³κ²½λμ΄ μλμΉμμ μν©μ΄ μΌμ΄λ μ μκΈ°μ κ°μ²΄μ λΆλ³μ±μ κ΅μ₯ν μ€μνλ€.
λν 리μ‘νΈμμ μν(state)μ λΆλ³μ±μ μ μ§ν΄μΌνλλ°
- 리μ‘νΈλ μ΄μ μνμ λΉκ΅ν΄μ λ³κ²½λ λΆλΆλ§ 리λ λλ§ν΄μΌνκΈ°μ μ΄μ μνμ μλ³Έμ΄ μ μ§κ° λμ΄μΌνλ€.(κ·ΈλμΌ λΉκ΅κ°λ₯)
- stateλ κ°μ²΄μ΄κΈ°μ λ΄λΆ νλ‘νΌν°κ°μ λ³κ²½νλ©΄ μ΄μ κ³Ό μ΄νμ κ°μ΄ λλ€ λ³κ²½λμ΄
λ³κ²½λμμ
μ λνλ μ μκ³ κ·Έλ κ² λλ©΄ μνκ° λ³κ²½λμ§ μμ κ²μΌλ‘ νλ¨νκ³ λ¦¬λλλ§λμ§ μλλ€.
HTML
μλ©ν± λ§ν¬μ
- μλ―Έλ₯Ό κ°λ λ§ν¬μ μ΄λΌλ λ»
- λ¨μν divλ₯Ό νμ©ν λ§ν¬μ
μ΄ μλ, header, main, footerλ±κ³Ό κ°μ΄ κ·Έ μν μ λνλΌ μ μλ λ§ν¬μ
μ μ§ν₯ν΄μΌνλ€.
- κ²μ μμ§ μ΅μ ν(SEO; Search Engine Optimization)
- νκ·Έμ μλ―Έ(μν )μ λΆμ¬ν¨μΌλ‘μ¨ ν¬λ‘€λ§ μ λ μ μλ―Ένκ³ ν¨μ¨μ μΈ λ°©λ²μ΄ κ°λ₯
- μΉ μ κ·Όμ±
- μ₯μ μΈ, κ³ λ ΉμλΆλ€μ΄ μΉμ μ κ·Ό μ μμ± νΉμ ν€λ³΄λλ§μΌλ‘ μ κ·Όν μ μκ² νλ μλΉμ€ λ±μ HTML νκ·Έλ₯Ό κΈ°λ°μΌλ‘ μλνλ€.
- κ°λ
μ±
- κ°λ° μ κ°κ°μ νκ·Έλ€μ λν κ°λ μ±μ΄ λ μ’μμ§λ€.(μΉμ ꡬ쑰λ₯Ό νμ νκΈ° μ©μ΄νλ€.)
- κ²μ μμ§ μ΅μ ν(SEO; Search Engine Optimization)
JavaScript
λͺ¨λ
-
λͺ¨λ: λ¨μν μκ°νλ©΄ μ½λ μ‘°κ°, μ μ μ ν리μΌμ΄μ μ ν¬κΈ°κ° 컀μ§λ©΄μ νμΌμ μ¬λ¬ κ°λ‘ λΆλ¦¬νκ² λλλ°, μ΄ λ λΆλ¦¬λ κ°κ°μ΄ λͺ¨λμ΄λ€.
μ μ μ€ν¬λ¦½νΈμ ν¬κΈ°λ 컀μ§κ³ 볡μ‘ν΄μ§λ©΄μ μ½λλ₯Ό λͺ¨λ λ¨μλ‘ μͺΌκ°λ λ°©λ²μ΄ νμν΄μ‘λ€.
- λͺ¨λμ νμ
use strict(μ격λͺ¨λ)
λ‘ μ€νλλ€. - λͺ¨λμ μμ λ§μ
λͺ¨λ μ€μ½ν
κ° μ‘΄μ¬νλ€.(μ€μ½νλ₯Ό 곡μ νκΈ° μν΄ export, import μ¬μ©) - λμΌν λͺ¨λμ μ¬λ¬ κ³³μμ μ¬μ©λλλΌλ μ΅μ΄ νΈμΆ μ λ¨ ν λ²λ§ μ€νλλ€. μ€ν νμ κ²°κ³Όλ μ΄ λͺ¨λμ κ°μ Έκ°λ €λ λͺ¨λ λͺ¨λμ λ°μλλ€.
- λͺ¨λ μ€ν¬λ¦½νΈλ νμ
μ§μ° μ€ν
λλ€. λ§μΉ defer μμ±μ λΆμΈ κ²μ²λΌ!
- λͺ¨λμ νμ