# [[Pinia]] ## ๐Ÿ“Œ Brief Summary Pinia๋Š” ๋Œ€๊ทœ๋ชจ Vue.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๊ณต์‹ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์ด์ „์˜ ๊ณต์‹ ๋„๊ตฌ์˜€๋˜ Vuex๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค [1-3]. Vue 2์™€ Vue 3 ๋ชจ๋‘์™€ ํ˜ธํ™˜๋˜๋ฉฐ Vue ์ฝ”์–ด ํŒ€์— ์˜ํ•ด ์œ ์ง€๋ณด์ˆ˜๋ฉ๋‹ˆ๋‹ค [1]. ๋ถˆํ•„์š”ํ•œ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Composition API ์Šคํƒ€์ผ์˜ ๋‹จ์ˆœํ•œ API๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํŠนํžˆ TypeScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์ถ”๋ก ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค [3, 4]. ## ๐Ÿ“– Core Content * **๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ‘œ์ค€ ์ƒํƒœ ๊ด€๋ฆฌ**: ๊ธฐ์กด์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋˜ Vuex๋Š” ์ด์ œ ์œ ์ง€๋ณด์ˆ˜ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜์—ˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” Pinia์˜ ์‚ฌ์šฉ์ด ์ ๊ทน ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [2]. Pinia๋Š” Vuex 5์— ๋Œ€ํ•œ ์ฝ”์–ด ํŒ€์˜ ๋…ผ์˜์—์„œ ์ถœ๋ฐœํ•˜์˜€์œผ๋ฉฐ, ๊ธฐ๋Šฅ์  ์ƒํƒœ์™€ ์ปดํฌ์ง€์…˜ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ํƒ์›”ํ•œ ์„ ํƒ์œผ๋กœ ํ‰๊ฐ€๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [2, 5]. * **๋‹จ์ˆœํ™”๋œ API ๋ฐ TypeScript ์ง€์›**: Vuex์™€ ๋น„๊ตํ•  ๋•Œ Pinia๋Š” ์˜์‹์ด ์ ๊ณ  ๋” ๋‹จ์ˆœํ•œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [4]. Composition API ์Šคํƒ€์ผ๋กœ ์Šคํ† ์–ด๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, TypeScript ํ™˜๊ฒฝ์—์„œ ๊ฒฌ๊ณ ํ•œ ํƒ€์ž… ์ถ”๋ก  ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค [3, 4]. * **๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„๋ฆฌ ํŒจํ„ด**: ์‹ค์ „ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์—์„œ Pinia๋Š” ๋‹จ์ˆœํžˆ ์ „์—ญ ์ƒํƒœ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์•ก์…˜(Action) ๋‚ด๋ถ€์— ๋น„๋™๊ธฐ ๋กœ์ง์„ ํฌํ•จํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [3]. ์ด๋ฅผ ํ†ตํ•ด ๋ทฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ณต์žกํ•œ ๋กœ์ง์„ ๋ฐฐ์ œํ•˜๊ณ  UI ๋ Œ๋”๋ง์—๋งŒ ์ฑ…์ž„์„ ํ•œ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์™€ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค [3]. * **ํ†ตํ•ฉ ๋ฐ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜(DX)**: ๋Œ€๊ทœ๋ชจ ํ”„๋กœ๋•์…˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ์™„๋ฒฝํžˆ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ํŒ€ ํ˜‘์—… ๊ทœ์น™์„ ์ œ๊ณตํ•˜๋ฉฐ, ํƒ€์ž„๋ผ์ธ, ์ปดํฌ๋„ŒํŠธ ๋‚ด ๊ฒ€์‚ฌ, ํƒ€์ž„ํŠธ๋ž˜๋ธ” ๋””๋ฒ„๊น… ๋“ฑ์„ ํฌํ•จํ•œ Vue DevTools์™€์˜ ํ†ตํ•ฉ, ๊ทธ๋ฆฌ๊ณ  Hot Module Replacement(HMR)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [1]. ## โš–๏ธ Trade-offs & Caveats **์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ํ™˜๊ฒฝ์—์„œ์˜ ์ƒํƒœ ์œ ์ถœ ์œ„ํ—˜** ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋Š” ๊ฐ๋ณ„ํ•œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ† ์–ด๊ฐ€ ๋‹จ์ˆœํ•œ ์‹ฑ๊ธ€ํ†ค(Singleton) ํŒจํ„ด์œผ๋กœ ์ •์˜๋  ๊ฒฝ์šฐ, ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ๊ฐ„์— ์ƒํƒœ๊ฐ€ ๊ณต์œ ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ถœ(Data Leakage)๋˜๋Š” ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Pinia๋Š” ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์Šคํ† ์–ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ์  ํ•ด๊ฒฐ์ฑ…์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [3]. ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋Š” SSR์„ ๋„์ž…ํ•  ๋•Œ Pinia์˜ ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š” ์ œ์•ฝ ์‚ฌํ•ญ๊ณผ ๊ตฌํ˜„ ๋ณต์žก๋„(Trade-off)๋ฅผ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ์˜ ์„ฑ๋Šฅ ์ €ํ•˜๋‚˜ ์ถ”๊ฐ€์ ์ธ ๋ถ€์ž‘์šฉ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[Vuex]] - ์—ฐ๊ฒฐ ์ด์œ : Pinia์˜ ์ด์ „ ์„ธ๋Œ€ ๊ณต์‹ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํ”„๋ก ํŠธ์—”๋“œ ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ„ด์ด ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ถ•์†Œ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์นœํ™”์ ์œผ๋กœ ์ง„ํ™”ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ๊ณผ Pinia์˜ ํƒ„์ƒ ๋ชฉ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 4]. - [[Composition API]] - ์—ฐ๊ฒฐ ์ด์œ : Vue 3์˜ ํ•ต์‹ฌ API์ด์ž, Pinia๊ฐ€ ์Šคํ† ์–ด๋ฅผ ์ •์˜ํ•  ๋•Œ ์ฑ„ํƒํ•œ API ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ƒํƒœ์™€ ๋กœ์ง์ด ์–ด๋–ป๊ฒŒ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ณ  ์žฌ์‚ฌ์šฉ๋˜๋Š”์ง€(Composables)์— ๋Œ€ํ•œ Vue 3์˜ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 4]. #### [๋ Œ๋”๋ง ํ™˜๊ฒฝ ๋ฐ ์–ธ์–ด ๊ธฐ์ˆ ] - [[Server-Side Rendering (SSR)]] - ์—ฐ๊ฒฐ ์ด์œ : ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ SEO ๋ฐ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, Pinia ์‚ฌ์šฉ ์‹œ ์ƒํƒœ ๊ณต์œ  ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ํ•œ๊ณ„์™€, ์š”์ฒญ๋‹น ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” Pinia์˜ ๋ณด์•ˆ/๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์„ค๊ณ„ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. - [[TypeScript]] - ์—ฐ๊ฒฐ ์ด์œ : Pinia๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜์ธ '๊ฒฌ๊ณ ํ•œ ํƒ€์ž… ์ถ”๋ก '์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ทœ๋ชจ์˜ ์•ฑ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 4]. ### Deeper Research Questions - Pinia์˜ Composition-API ์Šคํƒ€์ผ ์Šคํ† ์–ด ์ •์˜ ๋ฐฉ์‹์ด ๊ธฐ์กด Vuex์˜ Options API ๋ฐฉ์‹(Mutations์™€ Actions์˜ ๊ตฌ๋ถ„ ๋“ฑ) ๋Œ€๋น„ ์ฝ”๋“œ ๊ตฌ์กฐ์˜ ๋ณต์žก์„ฑ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€? - ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ํ™˜๊ฒฝ์—์„œ ์ƒํƒœ ์œ ์ถœ์„ ๋ง‰๊ธฐ ์œ„ํ•ด Pinia๊ฐ€ ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์Šคํ† ์–ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋‚ด๋ถ€ ์ƒ๋ช…์ฃผ๊ธฐ(Lifecycle) ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ฌด์—‡์ธ๊ฐ€? - ์ปดํฌ๋„ŒํŠธ์˜ ์ฑ…์ž„์„ UI ๋ Œ๋”๋ง์œผ๋กœ๋งŒ ํ•œ์ •ํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ ๋น„๋™๊ธฐ ๋กœ์ง์„ ๋ชจ๋‘ Pinia์˜ Action์œผ๋กœ ์œ„์ž„ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๊ฒฐํ•ฉ๋„ ๋ณ€ํ™”์™€ ์„ค๊ณ„์ƒ์˜ ํ•œ๊ณ„๋Š” ์—†๋Š”๊ฐ€? - TypeScript ํ™˜๊ฒฝ์—์„œ Pinia์˜ ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์ถ”๋ก  ๊ธฐ๋Šฅ์ด ๋Œ€๊ทœ๋ชจ Vue 3 ๋ชจ๋…ธ๋ ˆํฌ(Monorepo) ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ๋ฐ ๋ฆฌํŒฉํ† ๋ง์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋ฌด์—‡์ธ๊ฐ€? - Pinia์™€ Vue DevTools์˜ ํ†ตํ•ฉ(ํƒ€์ž„ํŠธ๋ž˜๋ธ” ๋””๋ฒ„๊น… ๋“ฑ)์ด ๋ณต์žกํ•œ ์ƒํƒœ ์ „์ด๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** Vue 3 ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์— ์‚ฐ์žฌ๋œ API ํ˜ธ์ถœ ๋ฐ ๋น„๋™๊ธฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ Pinia์˜ ์•ก์…˜(Action) ๊ณ„์ธต์œผ๋กœ ์ถ”์ถœํ•˜์—ฌ, ํ”„๋ก ํŠธ์—”๋“œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋ Œ๋”๋ง์—๋งŒ ์ง‘์ค‘ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. [3] - **System Design:** ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋Œ€๊ทœ๋ชจ SPA ๋˜๋Š” SSR ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ ์‹œ, ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ƒํƒœ ๊ด€๋ฆฌ ๋ ˆ์ด์–ด๋กœ ์„ค๊ณ„์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. [3, 4] - **Operation / Maintenance:** Vue DevTools์™€์˜ ๋„ค์ดํ‹ฐ๋ธŒ ํ†ตํ•ฉ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์šด์˜ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žกํ•œ ์ƒํƒœ ๋ณ€ํ™”์˜ ํƒ€์ž„๋ผ์ธ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ํƒ€์ž„ํŠธ๋ž˜๋ธ” ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์›ํ™œํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. [1] - **Learning Path:** ์ตœ์‹  Vue ํ”„๋ ˆ์ž„์›Œํฌ ํ•™์Šต ์‹œ Vuex๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ , Composition API๋ฅผ ์ตํžŒ ํ›„ ์ฆ‰์‹œ Pinia๋ฅผ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ํ‘œ์ค€์œผ๋กœ ์ฑ„ํƒํ•˜์—ฌ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. [2] - **My Project Relevance:** ํ˜„๋Œ€์ ์ธ Vue ํ”„๋ก ํŠธ์—”๋“œ ํ™˜๊ฒฝ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•  ๋•Œ ๋„์ž…ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ๋กœ ์—ฐ๊ด€๋ฉ๋‹ˆ๋‹ค. ### Adjacent Topics - [[Vite]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Pinia์™€ ํ•จ๊ป˜ ๋ชจ๋˜ Vue ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ทน๋„๋กœ ๊ฐ€์†ํ™”ํ•˜๋Š” ์ฐจ์„ธ๋Œ€ ๋นŒ๋“œ ๋ฐ ์ตœ์ ํ™” ๋„๊ตฌ๋กœ ์ดํ•ด๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6]. - [[React Query (TanStack Query)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Vue ์ง„์˜์˜ Pinia์ฒ˜๋Ÿผ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ '์„œ๋ฒ„ ์ƒํƒœ(Server State)' ๊ด€๋ฆฌ ์ฑ…์ž„์„ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•ด๋‚ด๋Š” React ์ƒํƒœ๊ณ„์˜ ์œ ์‚ฌํ•œ ์‹ค์ „ ํŒจํ„ด ๋„๊ตฌ๋กœ ๋น„๊ต ์—ฐ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. --- *Last updated: 2026-05-03*