--- id: FE-REACT-HOOKS-001 category: "10_Wiki/πŸ’‘ Topics/AI" confidence_score: 1.0 tags: [react, frontend, hooks, functional-programming, state-management, useEffect, useState] last_reinforced: 2026-04-26 --- # React Hooks (λ¦¬μ•‘νŠΈ ν›…) ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "클래슀의 λ³΅μž‘ν•œ 생λͺ…μ£ΌκΈ°(Lifecycle)λ₯Ό 직관적인 ν•¨μˆ˜μ˜ νλ¦„μœΌλ‘œ ν‰νƒ„ν™”ν•˜κ³ , μ»΄ν¬λ„ŒνŠΈ κ°„ μƒνƒœ λ‘œμ§μ„ λ§ˆλ²•μ²˜λŸΌ κ³΅μœ ν•˜λΌ" β€” React 16.8λΆ€ν„° λ„μž…λœ, ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ—μ„œλ„ μƒνƒœμ™€ 생λͺ…μ£ΌκΈ° κΈ°λŠ₯을 μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” ν˜μ‹ μ μΈ API. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μΆ”μΆœλœ νŒ¨ν„΄:** "Logic Decoupling and Composition Over Inheritance" β€” UI λ Œλ”λ§κ³Ό λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ λΆ„λ¦¬ν•˜κ³ , μ»€μŠ€ν…€ ν›…(Custom Hooks)을 톡해 λ°˜λ³΅λ˜λŠ” λ‘œμ§μ„ 독립적인 λ‹¨μœ„λ‘œ μž¬μ‚¬μš©ν•˜λŠ” νŒ¨ν„΄. - **μ£Όμš” ν›…κ³Ό μ—­ν• :** - **useState:** μ»΄ν¬λ„ŒνŠΈ λ‚΄μ˜ 둜컬 μƒνƒœ 관리. - **useEffect:** API 호좜, 이벀트 λ¦¬μŠ€λ„ˆ λ“± μ‚¬μ΄λ“œ μ΄νŽ™νŠΈ(Side Effects) 처리 및 클린업. - **useMemo / useCallback:** λΆˆν•„μš”ν•œ μ—°μ‚°κ³Ό λ¦¬λ Œλ”λ§μ„ λ°©μ§€ν•˜λŠ” λ©”λͺ¨μ΄μ œμ΄μ…˜(Memoization). - **useContext:** μ „μ—­ μƒνƒœ 곡유λ₯Ό μœ„ν•œ Context API μ ‘κ·Ό. - **의의:** κΈ°μ‘΄ HOC(High-Order Components)λ‚˜ Render Props λ°©μ‹μ˜ 'Wrapper Hell' 문제λ₯Ό ν•΄κ²°ν•˜κ³ , μ½”λ“œμ˜ 가독성과 ν…ŒμŠ€νŠΈ κ°€λŠ₯성을 λΉ„μ•½μ μœΌλ‘œ ν–₯μƒμ‹œν‚΄. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μ΄ˆκΈ°μ—λŠ” λͺ¨λ“  μ΅œμ ν™”μ— `useMemo` 등을 λ‚¨λ°œν–ˆμœΌλ‚˜, 졜근 React Compiler(React Forget)의 λ“±μž₯으둜 μˆ˜λ™ μ΅œμ ν™”μ˜ ν•„μš”μ„±μ΄ 쀄어듀고 있으며, 훅은 였직 μ΅œμƒμœ„ λ ˆλ²¨μ—μ„œλ§Œ ν˜ΈμΆœλ˜μ–΄μ•Ό ν•œλ‹€λŠ” 'Rules of Hooks' 정책이 λ”μš± 엄격해짐. - **μ •μ±… λ³€ν™”:** Antigravity ν”„λ‘œμ νŠΈλŠ” λͺ¨λ“  μ‹ κ·œ ν”„λŸ°νŠΈμ—”λ“œ λͺ¨λ“ˆμ— ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ™€ ν›… μ•„ν‚€ν…μ²˜λ₯Ό κ°•μ œν•˜λ©°, λ³΅μž‘ν•œ 데이터 페칭 λ‘œμ§μ€ λ°˜λ“œμ‹œ μ»€μŠ€ν…€ ν›…μœΌλ‘œ μΆ”μƒν™”ν•˜μ—¬ 관리함. ## πŸ”— 지식 μ—°κ²° (Graph) - React-Architecture, [[Functional-Programming]], [[State-Management-Patterns]], SOLID-Principles-in-React - **Raw Source:** 00_Raw/React Hooks.md