2023/12/12(ν)
ν¨μλ₯Ό λ§λ€ λ μ£Όμν΄μΌ ν μ¬ν
ν¨μμ λΆμ ν¨κ³Ό(side-effect)λ ν¨μ λ΄μ μλμΌλ‘ μΈν΄ ν¨μκ° μλ ν¨μ μΈλΆμ μν₯μ λΌμΉλ κ²μ μλ―Ένλ€.μ΄λ¬ν λΆμ ν¨κ³Όκ° μλ ν¨μλ₯Ό μμ ν¨μ
λΌνκ³ , λΆμ ν¨κ³Όκ° μ‘΄μ¬νλ ν¨μλ₯Ό λΉμμ ν¨μ
λΌκ³ νλ€.
μμ ν¨μ
: λΆμν¨κ³Όκ° μκ³ , μΈμ μ΄λμλ μ΄λ ν μν©μμλ λμΌν μΈμλ₯Ό λ°μΌλ©΄ λμΌν κ²°κ³Όλ₯Ό λ°ννλ€.
<script>
function PureComponent(props) {
const { a,b } = props
return <div> { a,b } </div>
}
</script>
μ΄ μ»΄ν¬λνΈλ μμν ν¨μν μ»΄ν¬λνΈλ‘ λΆλ₯ν μ μλ€.
propsμ κ°μ κΈ°μ€μΌλ‘ a,bλ₯Ό λνκ³ , κ·Έ κ²°κ³Όλ₯Ό
HTMLDivElementλ‘ λ λλ§ νκ³ μλ€.
μΈλΆμ μ΄λ€ μν₯μ λ―ΈμΉμ§λ μμκ³ ,μΈμ μ΄λμλ λμΌν μΈμλ₯Ό λ°μμ λμΌν κ²°κ³Όλ₯Ό λ°ννκΈ° λλ¬Έμ μμν ν¨μν μ»΄ν¬λνΈλΌκ³ λ³Ό μ μλ€.
μμν ν¨μλ μΈμ μ€νλλ νμ κ²°κ³Όκ° λμΌνκΈ° λλ¬Έμ μμΈ‘ κ°λ₯νλ©°
μμ μ μ΄λΌλ μ₯μ μ΄ μλ€.
νμ§λ§ μΉ μν리μΌμ΄μ
μ λ§λλ κ³Όμ μμ λΆμ ν¨κ³Ό
λ
μ΄λ»κ² 보면 νΌν μ μλ μμλ€.
μ»΄ν¬λνΈ λ΄λΆμμ APIλ₯Ό νΈμΆνλ€λ©΄ μΈλΆμ μ΄λ ν μν₯(HTTP requset)μ λΌμ³€μΌλ―λ‘ λΆμ ν¨κ³Όλ€. console.logλν λΈλΌμ°μ μ μ½μ μ°½μ΄λΌλ μΈλΆμ μν₯μ λ―Έμ³€μΌλ―λ‘ λΆμ ν¨κ³Όλ€.HTML titleμ λ°κΏ¨λ€λ©΄ μ΄ λν μΈλΆμ μν₯μ λ―Έμ³€μΌλ―λ‘ λΆμ ν¨κ³Όλ€.μ΄λ¬ν λΆμ ν¨κ³Όλ₯Ό μ΅λν μ΅μ ν μ μλ λ°©ν₯μΌλ‘ ν¨μλ₯Ό μ€κ³ν΄μΌ νλ€.
리μ‘νΈ κ΄μ μμ λ³Έλ€λ©΄ λΆμ ν¨κ³Όλ₯Ό μ²λ¦¬νλ ν
μΈ useEffect
μ μλμ μ΅μννλ κ²μ΄ κ·Έ μΌνμ΄λΌ ν μ μλ€. useEffectμ μ¬μ©μ νΌν μ μμ§λ§
μ΅μνμΌλ‘ μ€μμΌλ‘μ¨ ν¨μμ μν μ μ’νκ³ , λ²κ·Έλ₯Ό μ€μ΄λ©°,μ»΄ν¬λνΈμ μμ μ±μ λμΌ μ μλ€.
ESLint
μλ max-lines-per-function
μ΄λΌλ κ·μΉμ΄ μλ€.
ν¨μλΉ μ½λμ κΈΈμ΄κ° κΈΈμ΄μ§μλ‘ μ½λ λμ(λ¬Έμ λ₯Ό μΌμΌν¬ μ¬μ§κ° μλ μ½λ)
κ° λ νλ₯ μ΄ μ»€μ§κ³ ,λ΄λΆμμ λ¬΄μ¨ μΌμ΄ μΌμ΄λλμ§ μΆμ νκΈ° μ΄λ €μμ§λ€.
μ΄ κ·μΉμμλ κΈ°λ³Έκ°μΌλ‘ 50μ€ μ΄μμ΄ λμ΄κ°λ©΄ κ³Όλνκ² μ»€μ§ ν¨μλ‘ λΆλ₯νκ³ κ²½κ³ λ©μμ§λ₯Ό μΆλ ₯νλ€.κ·Έ μΈμλ μ€μ²©μ΄ μΌλ§λ λ§μ΄ μκ³ μ½λ°±μ μΌλ§λ λ§μμ§λ μ΄ κ·μΉμμ νμΈμ΄ κ°λ₯νλ€.
ESLintμ κ·μΉ μμ μ νλμ ν¨μμμ λ무λ λ§μ μΌμ νμ§ μκ² νλ κ²μ΄λ€.ν¨μλ νλμ μΌμ, κ·Έ νλλ§ μνλ©΄λλ€. ν¨μμ μλ λͺ©μ μΈ μ¬μ¬μ©μ±μ λμΌ μ μλ λ°©λ²μ΄λ€.κΈμ΄ μμ μΌλ‘ νμλ€κ³Ό νλ‘μ νΈλ₯Ό νμ
νμ¬ μ§νμ€μΈλ° ESLintμ μ€μμ±μ μ νν νμ
νμ§ λͺ»νκ³ μ¬μ©μ μνκ³ μμλ€. λΉμ₯ μ΄ μ¬μ€μ μλ¦¬κ³ λ΄μΌλΆν° ESLintλ₯Ό νμ©νμ¬ μμ
μ§νμ νλκ² μ’κ² λ€.
λ³ΈμΈμ΄ μ¬μ©νλ νλ‘μ νΈμ νλ μμν¬μ Terserκ° μ€μΉλΌ μλ€λ©΄ νκΈλ‘ λ€μ΄λ° νλ κ²λ μ’μ λ°©λ²μ΄ λ μ μλ€.Terserλ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό λ§ΉκΈλ§(mangling, μ½λλ₯Ό μ»΄νμΌλ¬κ° μ΄ν΄ν μ μλ μμ€μμ λ¨μν)λ° μμΆνλ λꡬλ€.
Terser
μ λ§ν¬λ₯Ό λ°©λ¬Έν΄μ νλ² ν
μ€νΈ ν΄ λ³΄λ©΄ νκΈλ‘ λ³μλͺ
μ΄λ ν¨μλͺ
μ μμ±ν΄λ μ΅μ’
κ²°κ³Όλ¬Όμ ν¬κ² λ¬Έμ κ° μλ€λ μ¬μ€μ μκ² λ κ²μ΄λ€.
νκΈ λ³μλͺ
μ μ¬μ©ν μ½λλ₯Ό Terserκ°μ νλ μμν¬λ‘ μμΆν μ μλ€λκ²λ§ μΈμ§νκ³ μμΌλ©΄ λλ€.
μ½λ ν¬κΈ°λ λ²λ€λ§ μλμ λ¨μ μ΄ μμ§λ§,μ€μ μλΉμ€λλ μ½λμλ μν₯μ λ―ΈμΉμ§ μκ³ , νκΈμ΄ νΈν νκ΅ κ°λ°μλ€μκ² ν¨μλ λ³μ λ€μ΄λ°μ μμ΄ μμ λ₯Ό μ€λ€λ μ μμ κ³ λ €ν΄λ³Όλ§ ν νλ μμν¬λ€.
ν¨μλΌλ κΈ°μ΄λ₯Ό μ λ€μ Έλλ€λ©΄ 리μ‘νΈ μ ν리μΌμ΄μ μ μλΏλ§ μλλΌ μλ°μ€ν¬λ¦½νΈ μνκ³λ₯Ό μ΄ν΄νλ λ° λ§μ λμμ΄ λ κ²μ΄λ€.
β‘οΈ λ€μ κΈ μμλ ν΄λμ€μ λν΄ μ΄ν΄λ³΄μ.