# [[Server State]] ## ๐Ÿ“Œ Brief Summary Server State(์„œ๋ฒ„ ์ƒํƒœ)๋Š” API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋กœ, ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ(Application State)์™€ ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ํŠน์„ฑ์„ ์ง€๋‹™๋‹ˆ๋‹ค [1]. ์ด๋Ÿฌํ•œ ์ƒํƒœ๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ตœ์‹ ํ™”(์‹ ์„ ๋„ ์œ ์ง€), ๋™๊ธฐํ™”, ์บ์‹ฑ, ๋กœ๋”ฉ ๋ฐ ์—๋Ÿฌ ์ฃผ๊ธฐ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•„์ˆ˜๋กœ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค [1]. ์ตœ๊ทผ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ด ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ์ „์—ญ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ์™€ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ, ํŠนํ™”๋œ ์ „์šฉ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค [1, 2]. ## ๐Ÿ“– Core Content * **์ƒํƒœ ๋ถ„๋ฆฌ ์•„ํ‚คํ…์ฒ˜:** ๊ณผ๊ฑฐ ๋‹จ์ผ ์Šคํ† ์–ด(์˜ˆ: Redux)์—์„œ ๋ชจ๋“  ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋˜ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ๋ฒ—์–ด๋‚˜, ํ˜„๋Œ€์˜ React ์‹œ์Šคํ…œ์—์„œ๋Š” '์„œ๋ฒ„ ์ƒํƒœ(Server State)'์™€ '์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ(Application State)'๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ๋ณ€ํ™”๋กœ ๊ผฝํž™๋‹ˆ๋‹ค [1, 3]. * **Server State์˜ ์ฃผ์š” ์š”๊ตฌ์‚ฌํ•ญ:** ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€(API)์— ์กด์žฌํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ๋กœ์ปฌ์—์„œ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ค‘๋ณต ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์ค„์ด๋Š” ์บ์‹ฑ, ์„œ๋ฒ„์™€์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”, ๋กœ๋”ฉ ์ค‘์ด๋‚˜ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ์˜ UI ์ฒ˜๋ฆฌ ์‚ฌ์ดํด ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [1, 4]. * **์ฃผ์š” ๊ด€๋ฆฌ ๋„๊ตฌ:** TanStack Query(React Query)์™€ RTK Query๊ฐ€ ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€(de facto standard) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 5]. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์€ ๋ฌดํ•œ ์Šคํฌ๋กค๋ง, ๋‚™๊ด€์  ์—…๋ฐ์ดํŠธ(optimistic updates)์™€ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๊ฐ•๋ ฅํ•œ ์บ์‹ฑ ๋ ˆ์ด์–ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์‹ ์„ ๋„๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค [4]. RTK Query์˜ ๊ฒฝ์šฐ ์บ์‹ฑ, ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ, ์ž๋™ ๋ฆฌํŒจ์นญ(refetching) ๋ฐ ์บ์‹œ ๋ฌดํšจํ™”๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [5]. * **์ฝ”๋“œ ๊ตฌ์„ฑ ๋ฐ ๊ฒฝ๊ณ„ ์„ค์ •:** ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋‹ค๋ฃจ๋Š” API ๋ ˆ์ด์–ด๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋šœ๋ ทํ•œ ๊ฒฝ๊ณ„๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์ฒญ ์„ ์–ธ๋ถ€์™€ ์ปค์Šคํ…€ ํ›…(Custom Hooks)์€ ํŠน์ • ๊ธฐ๋Šฅ(feature) ํด๋” ๋‚ด์— ํ•จ๊ป˜ ๋ฐฐ์น˜(colocated)๋˜์–ด, ๋„คํŠธ์›Œํฌ ๋กœ์ง์ด UI ์ปดํฌ๋„ŒํŠธ์™€ ๋ถ„๋ฆฌ๋˜๋„๋ก ์„ค๊ณ„ํ•ด์•ผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค [4]. ## โš–๏ธ Trade-offs & Caveats * **๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ vs ์ผ๊ด€์„ฑ:** Zustand๋‚˜ Context API์ฒ˜๋Ÿผ ๋งค์šฐ ์œ ์—ฐํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋ฒ„ ์ƒํƒœ ์ฒ˜๋ฆฌ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ, ์บ์‹ฑ์ด๋‚˜ ์ค‘๋ณต ์ œ๊ฑฐ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ˆ˜ ์ฃผ์ผ์˜ ์ž‘์—…์ด ๋‚ญ๋น„๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒ€์› ๊ฐ„ ๋น„๋™๊ธฐ ๋กœ์ง ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ํŒŒํŽธํ™”๋˜๋Š” ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5-8]. ๋ฐ˜๋ฉด, RTK Query์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒ€ ๋‚ด ์ผ๊ด€์„ฑ์ด ๊ฐ•์ œ๋˜์ง€๋งŒ, ์ดˆ๊ธฐ ํ™˜๊ฒฝ ์„ค์ •์— ๋Œ€ํ•œ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ํญ๋ฐœ ๋ฐ ํ•™์Šต ๊ณก์„ ์ด๋ผ๋Š” ๋น„์šฉ์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5, 9, 10]. * **๋ณต์žก์„ฑ ๊ด€๋ฆฌ:** ์ „์šฉ ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ž๋™ํ™”ํ•˜์ง€๋งŒ ๋ณต์žก์„ฑ ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ, ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ ๋“ฑ ์•ฑ์˜ ๊ทœ๋ชจ์™€ ๋ณต์žก์„ฑ์— ์•Œ๋งž์€ ๋„๊ตฌ๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [10]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A: ์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[Application State]] - ์—ฐ๊ฒฐ ์ด์œ : Server State์™€ ๋Œ€๋น„๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ์ „์—ญ/์ง€์—ญ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ตœ์‹  ํ”„๋ก ํŠธ์—”๋“œ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค [1, 2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ ์„ฑ๊ฒฉ(ํด๋ผ์ด์–ธํŠธ ๋…์ž ๋ฐ์ดํ„ฐ vs ์™ธ๋ถ€ ์‹œ์Šคํ…œ ์ข…์† ๋ฐ์ดํ„ฐ)์— ๋”ฐ๋ผ ์™œ ๋ถ„๋ฆฌํ•ด์„œ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š”์ง€ ์•„ํ‚คํ…์ฒ˜์  ๊ทผ๊ฑฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ด€๊ณ„ ์œ ํ˜• B: ๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[TanStack Query]] - ์—ฐ๊ฒฐ ์ด์œ : Server State ๊ด€๋ฆฌ์— ํŠนํ™”๋œ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€(de facto standard) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค [1, 2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์„œ๋ฒ„ ์ƒํƒœ ์บ์‹ฑ, ๋™๊ธฐํ™”, ๋กœ๋”ฉ/์—๋Ÿฌ ์‚ฌ์ดํด ์ฒ˜๋ฆฌ, ๋‚™๊ด€์  ์—…๋ฐ์ดํŠธ ๋“ฑ์ด ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”๋˜์–ด ๊ตฌํ˜„๋˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. - [[RTK Query]] - ์—ฐ๊ฒฐ ์ด์œ : Redux ์ƒํƒœ๊ณ„์—์„œ ๋น„๋™๊ธฐ ์„œ๋ฒ„ ์ƒํƒœ์˜ ์บ์‹ฑ, ์ค‘๋ณต ์ œ๊ฑฐ, ์บ์‹œ ๋ฌดํšจํ™” ๋“ฑ์„ ์ฆ‰์‹œ ์ œ๊ณตํ•˜์—ฌ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ฅผ ๋Œ€ํญ ์ค„์—ฌ์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค [5]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: API ํ†ต์‹ ์ด ๋งค์šฐ ๋งŽ๊ณ  ๋ณต์žกํ•œ ์•ฑ ํ™˜๊ฒฝ์—์„œ ๋น„๋™๊ธฐ ๋กœ์ง์˜ ์ผ๊ด€์„ฑ์„ ์–ด๋–ป๊ฒŒ ํ™•๋ณดํ•˜๋Š”์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 9]. - [[Zustand]] - ์—ฐ๊ฒฐ ์ด์œ : Server State ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•œ ํ›„, ๋‚จ์€ ํด๋ผ์ด์–ธํŠธ ์ „์—ญ ์ƒํƒœ(Application State) ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•จ๊ป˜ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋˜๋Š” ๊ฒฝ๋Ÿ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์„œ๋ฒ„ ์ƒํƒœ์™€ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋ฅผ ๊ฐ๊ฐ ์ ํ•ฉํ•œ ๋„๊ตฌ๋กœ ์–ด๋–ป๊ฒŒ ์กฐํ™”๋กญ๊ฒŒ ์šด์˜ํ• ์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions - Server State์™€ Application State๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•  ๋•Œ ์ƒ๊ธฐ๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ•˜๋ฝ์˜ ๊ตฌ์ฒด์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ฌด์—‡์ธ๊ฐ€? - TanStack Query๋‚˜ RTK Query๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์บ์‹œ๋œ Server State ๋ฐ์ดํ„ฐ์˜ ์‹ ์„ ๋„(freshness)๋ฅผ ์–ด๋–ป๊ฒŒ ํ‰๊ฐ€ํ•˜๊ณ  ๋งŒ๋ฃŒ(invalidate)์‹œํ‚ค๋Š”๊ฐ€? - Server State ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌดํ•œ ์Šคํฌ๋กค(Infinite Scrolling)๊ณผ ๋‚™๊ด€์  ์—…๋ฐ์ดํŠธ(Optimistic Updates)๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ ์˜ค๋ฅ˜ ๋ณต๊ตฌ(Rollback) ์ „๋žต์€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜๋Š”๊ฐ€? - ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์‹œ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๋”ฉ ๋ฐ ์—๋Ÿฌ ์ƒํƒœ๋ฅผ React์˜ Error Boundaries ๋ฐ Suspense์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์šฐ์•„ํ•˜๊ฒŒ(Graceful) ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ์œ ์—ฐํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Zustand ๋“ฑ)๋ฅผ ์ด์šฉํ•ด Server State ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ ค ํ•  ๋•Œ ๊ฒช๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐ ์žฌ๋ Œ๋”๋ง ์ตœ์ ํ™”์˜ ํ•œ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** React ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์ˆ˜๋™์œผ๋กœ `useEffect`์™€ `useState`๋ฅผ ์กฐํ•ฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํŒจ์นญํ•˜๋˜ ๋ฐฉ์‹์„ ํ๊ธฐํ•˜๊ณ , TanStack Query๋ฅผ ๋„์ž…ํ•ด ๋น„๋™๊ธฐ ์ƒํƒœ์˜ ์บ์‹ฑ ๋ฐ ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค [1, 2, 11, 12]. - **System Design:** Feature-Sliced Design(FSD)๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ์•„ํ‚คํ…์ฒ˜์—์„œ, ๋„๋ฉ”์ธ(Feature) ํด๋” ๋‚ด๋ถ€์— `api/` ๋˜๋Š” `hooks/` ํด๋”๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ํ•ด๋‹น ๋„๋ฉ”์ธ์— ์†ํ•˜๋Š” Server State ์š”์ฒญ ๋กœ์ง์„ ์บก์Аํ™”ํ•ฉ๋‹ˆ๋‹ค [4, 13]. - **Operation / Maintenance:** ๋ธŒ๋ผ์šฐ์ € DevTools์™€ ์ „์šฉ ๋„๊ตฌ(์˜ˆ: Redux DevTools)๋ฅผ ํ†ตํ•ด ์–ด๋А ์‹œ์ ์— ์•ก์…˜์ด ๋ฐœ์ƒํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ์ค‘๋ณต ์ œ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ์ถ”์  ๋ฐ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9, 14]. - **Learning Path:** ํด๋ผ์ด์–ธํŠธ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ(Context, Zustand)์˜ ํ•œ๊ณ„์™€ ๊ณผ๋„ํ•œ ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ํ•™์Šตํ•œ ๋’ค, API ํ˜ธ์ถœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Server State ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ถ„๋ฆฌ ํ•„์š”์„ฑ์„ ์ตํžˆ๊ณ , ์ตœ์ข…์ ์œผ๋กœ TanStack Query ๋“ฑ์˜ ์ตœ์ ํ™” ๋„๊ตฌ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค [1, 3]. - **My Project Relevance:** React ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ๊ธฐ์กด Redux ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ค‘ ๋น„๋™๊ธฐ API ํ˜ธ์ถœ ๋ถ€๋ถ„์„ TanStack Query๋กœ ์ „ํ™˜(Server State)ํ•˜๊ณ , ๋‚จ์€ ํด๋ผ์ด์–ธํŠธ ์ „์—ญ ์ƒํƒœ๋งŒ Zustand๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์„ ๋‚ฎ์ถ”๋Š” ๊ตฌ์กฐ ๊ฐœ์„ ์— ์ง์ ‘ ํ™œ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค [2]. ### Adjacent Topics - [[React Error Boundaries]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Server State์—์„œ API ์š”์ฒญ ์‹คํŒจ ๋“ฑ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๊ฐ€ ์ถฉ๋Œํ•˜์—ฌ ๋นˆ ํ™”๋ฉด์ด ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ํด๋ฐฑ(Fallback) UI๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๋ณต๊ตฌํ•˜๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ํ™•์žฅ [15, 16]. - [[Feature-Sliced Design]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์บก์Аํ™”๋œ Server State ํ›…๊ณผ API ๋ ˆ์ด์–ด๋ฅผ ํฌํ•จํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ํด๋” ๊ตฌ์กฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋„๋ฉ”์ธ/๊ธฐ๋Šฅ ์ค‘์‹ฌ์œผ๋กœ ํ™•์žฅ์„ฑ ์žˆ๊ฒŒ ์„ค๊ณ„ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋…ผ์˜๋กœ ํ™•์žฅ [4, 17]. --- *Last updated: 2026-04-30*