TestForge | Aidevops | ๐Ÿ“Š Plogger โœ๏ธ Blog ๐Ÿ“š Docs
plogger

AI DevOps Korea

AI ์„œ๋น„์Šค ๊ฐœ๋ฐœ, ์šด์˜, ์„ฑ๋Šฅ๊ฐœ์„ ์„ ํ•˜๋‚˜์˜ ๋ฃจํ”„๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค

aidevops.kr์—์„œ LLMOps, RAG, AI Agent, ๊ด€์ธก์„ฑ, ํ‰๊ฐ€, ๋น„์šฉ-์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์‹ค์ „ ์šด์˜ ๊ด€์ ์œผ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–ฅ๏ธ Frontend / Vue ์•„ํ‚คํ…์ฒ˜

Vue ์•„ํ‚คํ…์ฒ˜

Frontend ์•ˆ์—์„œ ์„œ๋กœ ์—ฐ๊ฒฐํ•ด ์ฝ๊ธฐ ์ข‹์€ ๊ธ€์„ ์ด ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ฌธ, ๋น„๊ต, ์‹ฌํ™” ํƒ์ƒ‰์„ ํ•œ ํ๋ฆ„์œผ๋กœ ์ด์–ด๊ฐ€๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ๊ทธ๋ฃน์—๋Š” ํ˜„์žฌ 12๊ฐœ์˜ ๊ธ€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Start Here

์ด ๊ทธ๋ฃน์—์„œ ๋จผ์ € ์ฝ์œผ๋ฉด ์ข‹์€ ๊ธ€

Nuxt ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Nuxt ๊ธฐ๋ฐ˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ Œ๋”๋ง ์ „๋žต, ๋ฐ์ดํ„ฐ ๊ณ„์ธต, ๋ผ์šฐํŒ… ๊ฒฝ๊ณ„, ์บ์‹ฑ, ์šด์˜ ๋ชจ๋ธ์„ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Group Archive

๊ทธ๋ฃน์— ์†ํ•œ ์ „์ฒด ๊ธ€

Nuxt ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Nuxt ๊ธฐ๋ฐ˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ Œ๋”๋ง ์ „๋žต, ๋ฐ์ดํ„ฐ ๊ณ„์ธต, ๋ผ์šฐํŒ… ๊ฒฝ๊ณ„, ์บ์‹ฑ, ์šด์˜ ๋ชจ๋ธ์„ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Vue.js ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue.js ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹จ์ˆœ ์ปดํฌ๋„ŒํŠธ ๋ชจ์Œ์ด ์•„๋‹ˆ๋ผ ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ํ”„๋ŸฐํŠธ์—”๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ๊ฒฝ๊ณ„, ๋ผ์šฐํŒ…, ๋ฐ์ดํ„ฐ ํ๋ฆ„, ํด๋” ๊ตฌ์กฐ, ์„ฑ๋Šฅ๊ณผ ํ˜‘์—… ๊ด€์ ๊นŒ์ง€ ์‹ค๋ฌด ์ค‘์‹ฌ์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Vue + SPA ์•„ํ‚คํ…์ฒ˜ ๊ฐ€์ด๋“œ

Vue ๊ธฐ๋ฐ˜ SPA๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ, ์˜ค๋ž˜ ์šด์˜ ๊ฐ€๋Šฅํ•œ ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํŒ…, ์ƒํƒœ, ๋ฐ์ดํ„ฐ ํŒจ์นญ, ์บ์‹ฑ, ๋ฐฐํฌ์™€ ์„ฑ๋Šฅ๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Vue + SSR ์•„ํ‚คํ…์ฒ˜ ๊ฐ€์ด๋“œ

Vue ๊ธฐ๋ฐ˜ SSR ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ธ์ œ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š”์ง€, SPA์™€ ๋ฌด์—‡์ด ๋‹ฌ๋ผ์ง€๋Š”์ง€, ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ๊ณผ ์บ์‹ฑ, hydration, ๋ฐฐํฌ ๋ชจ๋ธ๊นŒ์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Vue ์ƒํƒœ๊ด€๋ฆฌ ์ „๋žต ๊ฐ€์ด๋“œ

Vue ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Pinia์™€ ๋กœ์ปฌ ์ƒํƒœ, ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•˜๊ณ  ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Vue Router 4 ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue Router 4๋ฅผ ๋‹จ์ˆœ ๋ผ์šฐํŒ… ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ํ™”๋ฉด ์ „ํ™˜๊ณผ ๊ถŒํ•œ ํ๋ฆ„์„ ์„ค๊ณ„ํ•˜๋Š” ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ค‘์ฒฉ ๋ผ์šฐํŠธ, ๊ฐ€๋“œ, lazy loading, URL ์„ค๊ณ„ ๊ธฐ์ค€๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Pinia ์ƒํƒœ ๊ด€๋ฆฌ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue 3์—์„œ Pinia๋ฅผ ๋„์ž…ํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ํ•ต์‹ฌ ์„ค๊ณ„ ํฌ์ธํŠธ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. store ๊ฒฝ๊ณ„, ์„œ๋ฒ„ ์ƒํƒœ์™€ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ๋ถ„๋ฆฌ, action ์ฑ…์ž„, TypeScript ํ™œ์šฉ๊นŒ์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Vue 3 ์ปดํฌ๋„ŒํŠธ ํ†ต์‹  ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue 3์—์„œ props, emit, provide/inject, store๋ฅผ ์–ธ์ œ ์จ์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ ๋ฌธ๋ฒ• ์„ค๋ช…๋ณด๋‹ค ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ ์ปดํฌ๋„ŒํŠธ ๊ฒฝ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ• ์ง€์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

Vue 3 + TypeScript ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue 3 ํ”„๋กœ์ ํŠธ์—์„œ TypeScript๋ฅผ ์‹ค๋ฌด์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. defineProps, defineEmits, ref/reactive ํƒ€์ž…, ์ปดํฌ์ €๋ธ” ํƒ€์ž… ๋ชจ๋ธ๋ง, ๊ณผํ•œ ์ผ๋ฐ˜ํ™”๋ฅผ ํ”ผํ•˜๋Š” ๊ธฐ์ค€๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Vite + Vue 3 ํ”„๋กœ์ ํŠธ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vite์™€ Vue 3๋กœ ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ๋•Œ ํ•„์š”ํ•œ ํ•ต์‹ฌ ํŒ๋‹จ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. alias, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ํ”„๋ก์‹œ, ๋นŒ๋“œ ์ „๋žต, ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ๋ฐฐํฌ ์•ˆ์ •์„ฑ์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.