# [[TanStack Query]] ## πŸ“Œ Brief Summary TanStack Query(λ˜λŠ” React Query)λŠ” ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μƒνƒœμ™€ 근본적으둜 λ‹€λ₯Έ 'μ„œλ²„ μƒνƒœ(server state)'λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μ‚¬μ‹€μƒμ˜ ν‘œμ€€(de facto standard) λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€ [1]. APIμ—μ„œ κ°€μ Έμ˜¨ λ°μ΄ν„°μ˜ 캐싱, 동기화, λ‘œλ”© 및 μ—λŸ¬ 사이클 처리λ₯Ό μ§€μ›ν•˜λ©° λ¬΄ν•œ μŠ€ν¬λ‘€μ΄λ‚˜ 낙관적 μ—…λ°μ΄νŠΈ(optimistic updates)와 같은 λ³΅μž‘ν•œ κΈ°λŠ₯을 λ‹¨μˆœν™”ν•©λ‹ˆλ‹€ [1, 2]. λ³΅μž‘ν•œ Redux κ΅¬ν˜„μ„ λŒ€μ²΄ν•˜μ—¬ ν”„λ‘ νŠΈμ—”λ“œ μƒνƒœ 관리λ₯Ό 효율적으둜 λ¦¬νŒ©ν† λ§ν•˜λŠ” 데 핡심적인 역할을 ν•©λ‹ˆλ‹€ [3]. ## πŸ“– Core Content - **μ„œλ²„ μƒνƒœ(Server State)의 뢄리 관리:** ν˜„λŒ€ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ—μ„œλŠ” μ „μ—­ μƒνƒœ κ΄€λ¦¬μ—μ„œ μ„œλ²„ μƒνƒœμ™€ ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœλ₯Ό λΆ„λ¦¬ν•˜λŠ” 것이 μ€‘μš”ν•œ λ³€ν™”λ‘œ 자리 μž‘μ•˜μŠ΅λ‹ˆλ‹€. TanStack QueryλŠ” 데이터 캐싱, 동기화, λ‘œλ”©/μ—λŸ¬ 사이클 관리 λ“± μ„œλ²„ 데이터 μ²˜λ¦¬μ— νŠΉν™”λ˜μ–΄ μ‚¬μš©λ©λ‹ˆλ‹€ [1]. - **κ°•λ ₯ν•œ 캐싱과 μ„±λŠ₯ μ΅œμ ν™”:** μ€‘λ³΅λ˜λŠ” λ„€νŠΈμ›Œν¬ μš”μ²­μ„ 쀄여주고 데이터가 항상 μ΅œμ‹  μƒνƒœλ₯Ό μœ μ§€ν•  수 μžˆλ„λ‘ 보μž₯ν•˜λŠ” κ²¬κ³ ν•œ 캐싱 λ ˆμ΄μ–΄λ₯Ό μ œκ³΅ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€ [2]. - **ν™•μž₯ κ°€λŠ₯ν•œ 폴더 κ΅¬μ‘°μ™€μ˜ κ²°ν•©:** ν™•μž₯μ„± μžˆλŠ” ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜μ—μ„œλŠ” API 계측을 λͺ…ν™•νžˆ κ΅¬λΆ„ν•©λ‹ˆλ‹€. TanStack Queryλ₯Ό ν™œμš©ν•œ μš”μ²­ μ„ μ–Έ(request declarations)κ³Ό μ»€μŠ€ν…€ ν›…(custom hooks)은 κ΄€λ ¨ κΈ°λŠ₯(feature) 폴더 내에 ν•¨κ»˜ 배치(colocated)ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€. 이 방식은 λ„€νŠΈμ›Œν¬ λ‘œμ§μ„ UI μ»΄ν¬λ„ŒνŠΈμ™€ μ² μ €νžˆ λΆ„λ¦¬ν•˜μ—¬ μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ 크게 λ†’μ—¬μ€λ‹ˆλ‹€ [2]. - **λ¦¬νŒ©ν† λ§ 및 타 μƒνƒœ 관리 λΌμ΄λΈŒλŸ¬λ¦¬μ™€μ˜ μ‹œλ„ˆμ§€:** λ ˆκ±°μ‹œ React μ½”λ“œλ² μ΄μŠ€λ₯Ό λ¦¬νŒ©ν† λ§ν•  λ•Œ, 기쑴의 Reduxλ₯Ό μ œκ±°ν•˜κ³  μ„œλ²„ μƒνƒœ 관리λ₯Ό TanStack Query둜 μ΄κ΄€ν•˜λŠ” 것이 ν›Œλ₯­ν•œ μ „λž΅μœΌλ‘œ μ œμ‹œλ©λ‹ˆλ‹€. μ„œλ²„ μƒνƒœλ₯Ό μ œμ™Έν•˜κ³  남은 μ „μ—­ ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœλŠ” Context APIλ‚˜ Zustandλ₯Ό ν™œμš©ν•΄ κ΄€λ¦¬ν•˜λŠ” 것이 λͺ¨λ²” μ‚¬λ‘€λ‘œ μ—¬κ²¨μ§‘λ‹ˆλ‹€ [3]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Server State]], [[State Management]], [[Zustand]], [[Redux]], [[Context API]] - **Projects/Contexts:** [[React Codebase Refactoring]], [[Engineering Scalable Frontend Systems]] - **Contradictions/Notes:** μ†ŒμŠ€ λ‚΄μ—μ„œ μƒμΆ©ν•˜λŠ” μ˜κ²¬μ€ λ°œκ²¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€μ‹ , 과거의 κ±°λŒ€ν•œ 단일 μƒνƒœ 관리(Redux λ“±) λ°©μ‹μ—μ„œ λ²—μ–΄λ‚˜, μ„œλ²„ μƒνƒœλŠ” TanStack Query에 μœ„μž„ν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœλŠ” Zustand λ“±μœΌλ‘œ λΆ„λ¦¬ν•˜μ—¬ λ‹€λ£¨λŠ” 것이 2025λ…„ κΈ°μ€€ ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜μ˜ 핡심 μ›μΉ™μœΌλ‘œ κ°•μ‘°λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [1, 3, 4]. --- *Last updated: 2026-04-26*