πͺλλμ΄ κ°μ₯ κΈ°λλ μΉμ μ μμνμ΅λλ€: Custom Hooks, Refs & More State
Source: Dev.to

Introduction
μ. λ΄κ° κ°μ ν κΈ°λ€λ¦¬λ μΈμ μ΄ λλμ΄ μμλλ€.
μ€λ λλ μ½μ€μ 13λ²μ§Έ μΉμ μ μμνλλ°βμ΄μ μΉμ μ΄ λ¨μν κ°μμκΈ° λλ¬Έμ λλ μ΄λ₯Ό 12λ²μ§Έ μΉμ μ΄λΌκ³ μκ°νλ€. μ΄ μΉμ μ μ΄λ―Έ λ€λ₯΄κ² λκ»΄μ§λ€: κ°λ ₯νκ³ , κΉμΌλ©°, μ½κ°μ μ’μ μλ―Έμμ μμμ μ΄λ€.
μ΄ μΉμ μ΄ λλ₯Ό μ΄λ κ² μ€λ κ² νλ μ΄μ λ κ°λ¨νλ€: μ΄μ λ Reactλ₯Ό μ¬μ©νλ κ²μ΄ μλλΌ κΉμ΄ μ΄ν΄νλ κ²μ΄κΈ° λλ¬Έμ΄λ€.
μ΄μ μΉμ
μμλ useEffectλ₯Ό λ°μ΄ν° ν¨μΉμ μ¬λ°λ₯΄κ² μ¬μ©νλ λ°©λ²μ λ°°μ°κ³ μ΄λ₯Ό usePopcorn μ±μ μ μ©νλ€. κ·Έκ²λ§μΌλ‘λ Reactμμ λΆμ ν¨κ³Όλ₯Ό λ°λΌλ³΄λ μκ°μ΄ λ°λμλ€.
μ΄λ² μΉμ μ κ·Έ μ§μμ μ§μ μ μΈ νμ₯μ΄λ€.
What This Section Is About (And Why It Feels Like a βBoomβ)
1οΈβ£ Hooks are easy to learn, hard to master
μ΄ ν μ€μ΄ μΉμ μ΄ μ€μν μ΄μ λ₯Ό μ€λͺ νλ€. λλ μ²μλΆν° ν μ μ¬μ©ν΄μμ§λ§, λ§μ€ν°νλ κ²μ μ ν λ€λ₯Έ κ²μμ΄λ€. νλ©΄ μλμ μ¨κ²¨μ§ κ²μ΄ λ§μΌλ©°, μ΄ μΉμ μ κ·Έ κΉμ΄λ₯Ό νν€μΉ κ²μ μ½μνλ€.
2οΈβ£ Rules of Hooks
React λ¬Έμ μ΄λμλ μ‘΄μ¬νλ κ·μΉλ€μΈλ°λ μ°λ¦¬λ μ κ·Έλ°μ§ μ§μ μΌλ‘ μ΄ν΄νμ§ λͺ»ν μ± λ°λ₯΄λ κ²½μ°κ° λ§λ€. κ·μΉ λ€μ μλ μ΄μ λ₯Ό νμ νλ©΄ κ°λ°μλ‘μμ μμ κ°μ΄ μλμΌλ‘ μμΉνλ€.
3οΈβ£ Deep Dive into useState
λλ useStateλ₯Ό μ²μλΆν° μ¬μ©ν΄μκ³ λ€μμ μκ³ μλ€:
- μ΄λ»κ² λμνλμ§
- μΈμ μ¬μ©ν΄μΌ νλμ§
- νν μ¬μ© μ¬λ‘
νμ§λ§ κ·Έ κΉμ λ‘μ§μ ν λ²λ νꡬν΄λ³Έ μ μ΄ μλ€. κΉμ΄ νκ³ λ€λ©΄ μ€μ μ ν리μΌμ΄μ μμ μνλ₯Ό μ€κ³νλ λ°©μμ΄ λ°λ κ·μ€ν ν΅μ°°μ μ»μ μ μλ€.
4οΈβ£ useRef (The Hook I Always Miss)
useRefλ λ΄κ° κ°μ₯ μ΄λ €μνλ ν
μ΄λ€. λ±μ₯ν λλ§λ€ μ‘°κΈμ© μ΄ν΄νμ§λ§ μ 체 κ·Έλ¦Όμ λμΉκ³€ νλ€. μ΄λ²μλ μ΄λ‘ κ³Ό μ€μ΅ λͺ¨λμμ useRefλ₯Ό μμ ν λ§μ€ν°νκ² λ€λ κ°μ€λ€.
5οΈβ£ Custom Hooks
κ·Έκ² μ νν λμ§? μ νμν κΉ? μ΄λ»κ² μ§μ λ§λ€ μ μμκΉ? μ¬κΈ°μ Reactλ κΉ¨λνκ³ , μ¬μ¬μ© κ°λ₯νλ©°, μ λ¬Έμ μΈ λλμ μ€λ€. μ΄ λΆλΆμ΄ κ°μ₯ μ¬λ―Έμκ³ , λμμ μ΅κ³ μ λμ μ΄ λ κ²μ΄λΌκ³ νμ νλ€.
Why This Section Feels Special to Me
λ¨μν μλ‘μ΄ ν μ λ°°μ°λ κ²μ΄ μλλΌ React κ°λ°μμ²λΌ μ¬κ³ νλ κ²μ΄ λͺ©νλ€. μ½λλ₯Ό μμ±νλ κ²μ΄ μλλΌ Reactλ₯Ό μ΄ν΄νλ κ²μ΄λ€. μ΄ μΉμ μ λ§μΉλ©΄ λ€μκ³Ό κ°μ λ³νλ₯Ό λλ μ μμ κ² κ°λ€:
- λ΄ μ½λλ λ κΉλν΄μ§ κ²μ΄λ€
- λ‘μ§μ λ μ¬μ¬μ© κ°λ₯ν΄μ§ κ²μ΄λ€
- μνμ λν μ΄ν΄λ λ κΉμ΄μ§ κ²μ΄λ€
μμ§ν λ§ν΄μ, μ΄κ²μ΄ λ΄κ° μΆκ΅¬ν΄ μ¨ μ±μ₯μ λ°©ν₯μ΄λ€.