--- category: Architecture tags: [auto-wikified, technical-documentation, architecture] title: Mixins description: "๋ฏน์Šค์ธ(Mixins)์€ Vue." last_updated: 2026-05-04 --- # Mixins ## ๐Ÿ“Œ Brief Summary ๋ฏน์Šค์ธ(Mixins)์€ Vue.js ํ”„๋ ˆ์ž„์›Œํฌ์˜ Options API ํ™˜๊ฒฝ์—์„œ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋˜ ์ „ํ†ต์ ์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค [1]. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ํ™•์žฅ๋˜๋Š” ํ˜„๋Œ€์ ์ธ Vue 3 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฏน์Šค์ธ์ด ๊ฐ€์ง„ ๊ตฌ์กฐ์ ์ธ ํ•œ๊ณ„๋กœ ์ธํ•ด ์‚ฌ์šฉ์ด ์ง€์–‘๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [2]. ์˜ค๋Š˜๋‚  ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ฐ˜์‘ํ˜• ๋กœ์ง์„ ๋” ํˆฌ๋ช…ํ•˜๊ณ  ํƒ€์ž… ์•ˆ์ „(type-safe)ํ•˜๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํฌ์ €๋ธ”(Composables) ํŒจํ„ด์œผ๋กœ ํšจ๊ณผ์ ์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค [2]. ## ๐Ÿ“– Core Content * **Options API์˜ ๊ธฐ๋ณธ ์žฌ์‚ฌ์šฉ ์ ‘๊ทผ๋ฒ•**: ๋ฏน์Šค์ธ์€ ์žฌ์‚ฌ์šฉ์„ฑ ์š”๊ตฌ๊ฐ€ ๋‚ฎ๊ณ  ๋‹จ์ผ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ Options API๊ฐ€ ์ฑ„ํƒํ•˜๋˜ ์ฃผ๋œ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค [1]. * **Composables๋กœ์˜ ์ง„ํ™”**: ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ทฐ(view) ๊ณ„์ธต์— ์ง‘์ค‘์‹œํ‚ค๊ณ  ์ƒํƒœ ์ €์žฅ ๋กœ์ง(stateful logic)์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฏน์Šค์ธ ๋Œ€์‹  ์ปดํฌ์ €๋ธ”์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [2]. * **์ƒ์†๋ณด๋‹ค ํ•ฉ์„ฑ(Composition over Inheritance)**: ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™ ๋“ฑ์„ ์บก์Аํ™”ํ•  ๋•Œ ๋ฏน์Šค์ธ๊ณผ ๊ฐ™์€ ์ƒ์† ๊ธฐ๋ฐ˜์˜ ํŒจํ„ด ๋Œ€์‹ , ๋…๋ฆฝ์ ์ธ ํ•จ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” '์ƒ์†๋ณด๋‹ค ํ•ฉ์„ฑ' ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ตœ์‹  ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค [3]. ## โš–๏ธ Trade-offs & Caveats ๋ฏน์Šค์ธ ํŒจํ„ด์€ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๊ธฐ์ˆ ์  ๋ถ€์ž‘์šฉ๊ณผ ์ œ์•ฝ ์‚ฌํ•ญ์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. * **์ด๋ฆ„ ์ถฉ๋Œ(Naming Collision) ๋ฌธ์ œ**: ์—ฌ๋Ÿฌ ๋ฏน์Šค์ธ์„ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์— ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๊ฐ ๋ฏน์Šค์ธ์ด ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ช…์ด๋‚˜ ๋ฉ”์„œ๋“œ๋ช…์ด ๋™์ผํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์‹œ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š” ๊ณ ์ „์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [3]. * **์ˆจ๊ฒจ์ง„ ๋ฐ์ดํ„ฐ(Hidden Data) ๋ฌธ์ œ**: ๋ฐ์ดํ„ฐ๋‚˜ ๋กœ์ง์˜ ์ถœ์ฒ˜๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•ด์ ธ ์–ด๋–ค ๋ฏน์Šค์ธ์—์„œ ํŠน์ • ์ƒํƒœ๊ฐ€ ์œ ๋ž˜ํ–ˆ๋Š”์ง€ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [3]. ์ด๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํ•ด์น˜๊ณ  ๋””๋ฒ„๊น…์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. * **ํƒ€์ž… ์•ˆ์ •์„ฑ์˜ ํ•œ๊ณ„**: ๋ฐ˜ํ™˜๋˜๋Š” ์ฐธ์กฐ(refs)์™€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๋Š” ์ปดํฌ์ €๋ธ”๊ณผ ๋น„๊ตํ•  ๋•Œ, ๋ฏน์Šค์ธ์€ ํƒ€์ž… ์•ˆ์ „์„ฑ(Type-safe)์ด ํฌ๊ฒŒ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค [2, 3]. ์ด๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์œ„ํ—˜์„ ๋†’์ž…๋‹ˆ๋‹ค [2]. --- *Last updated: 2026-05-03*