Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

Vue js์™€ UI๋ฅผ ํ•œ๋ฒˆ์— ํ•™์Šต/Nuxt3 + OpenWeatherMap ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋‚ ์”จ ์•ฑ ์ œ์ž‘

Nuxt UI, Nuxt SEO, Nuxt Server Api, Pinia, PWA, Firebase, Email Login, Google Login๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ์ˆ˜ ์žˆ์–ด์š”~~

11๋ช… ์ด ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žˆ์–ด์š”.

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์›น ๊ฐœ๋ฐœ, ํ’€์Šคํƒ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Vue ๊ธฐ๋ฐ˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ Nuxt 3 ๊ธฐ์ดˆ ํ•™์Šต

  • Nuxt 3 ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœํ›„ ๋ฐฐํฌ

  • Firebase Firestore v11

  • Nuxt ๊ณต์‹์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋ฆฌ Pinia

  • vite-pwa/nuxt PWA(Progressive Web App)

  • Nuxt SEO(๊ฒ€์ƒ‰์—”์ง„์ตœ์ ํ™”)

  • .env(API ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๋ณดํ˜ธ)

  • Login, Signup

  • tailwindcss

  • vue.js

  • Geolocation API

  • Pinia HMR

Nuxt3 + OpenWeatherMap์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋‚ ์”จ ์•ฑ ์ œ์ž‘ ?

(Vue.js์™€ UI๋ฅผ ํ•œ ๋ฒˆ์— ํ•™์Šต)๐Ÿค”

์ผ์ƒ์ƒํ™œ์— ๊ผญ ํ•„์š”ํ•œ ๊ธฐ์ƒ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น/์•ฑ์„ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ Vue js ๊ธฐ๋ฐ˜ Nuxt 3์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•™์Šตํ•˜๊ณ , Pinia ์ƒํƒœ ๊ด€๋ฆฌ, API ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, SSR์„ ์ ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Tailwind CSS๋กœ ๋ฐ˜์‘ํ˜• UI๋ฅผ ๋””์ž์ธํ•˜๊ณ , Vercel์„ ํ†ตํ•ด ๋ฐฐํฌ๊นŒ์ง€ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด Vue.js ๊ธฐ๋ฐ˜ Nuxt 3์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ตํžˆ๊ณ , Pinia์™€ Firebase, PWA๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค๋ฌด์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ•˜์„ธ์š”!"

๐Ÿ’กNuxt 3 ํ•ต์‹ฌ๊ธฐ๋Šฅ ํ™œ์šฉ ๊ฐ•์ขŒ

  • Vue.js์™€ UI๋ฅผ ํ•œ๋ฒˆ์— ํ•™์Šตํ• ์ˆ˜ ์žˆ์–ด์š”

  • Nuxt 3์œผ๋กœ ๋‚ ์”จ ์•ฑ ๋งŒ๋“ค๊ธฐ: ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผ ๋ฐฐ์šธ์ˆ˜ ์žˆ์–ด์š”



  • Nuxt 3์˜ ์ฃผ์š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋ฐฐ์›Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”

  • ๋‚ ์”จ API ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ ๊นŒ์ง€ ์ „์ฒด๋ฅผ ๊ตฌ์„ฑ


์ด ๊ฐ•์˜์˜ ํŠน์ง•

๐Ÿ“Œ์‹ค์ „ ํ”„๋กœ์ ํŠธ ์ค‘์‹ฌ - Nuxt 3์„ ํ™œ์šฉํ•œ ์‹ค์šฉ์ ์ธ ๋‚ ์”จ ์•ฑ์„ ์ง์ ‘ ๊ฐœ๋ฐœ.

๐Ÿ“Œ API ์—ฐ๋™ํ•™์Šต - OpenWeatherMap๊ณผ ๊ฐ™์€ ๋‚ ์”จ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํ™œ์šฉ.

๐Ÿ“Œ Firebase DB - ๊ธฐ์ƒ์ •๋ณด๋ฅผ DBํ™” ํ•˜์—ฌ ๊ธฐ์ƒ์ •๋ณด ๊ด€๋ฆฌ.

๐Ÿ“Œ ์ดˆ.์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•˜๋ฉฐ ์‹ค์Šต์œ„์ฃผ ํ•™์Šต.

๐Ÿ“Œ๋ฐฐํฌ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅ - ๋ฏผ๋“  ์•ฑ์„ ์‹ค์ œ ์„œ๋น„์Šค๋กœ ๋ฐฐํฌํ•˜๊ณ , ์ถ”ํ›„ ์ถ”๊ฐ€๊ธฐ๋Šฅ ํ™•์žฅ ๊ฐ€๋Šฅ.

๐Ÿ“Œ Vue.js + UI + Nuxt + Tailwind CSS - ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ UI๊ฐœ๋ฐœ

๐Ÿ’กํ•ต์‹ฌ ํŠน์ง•๊ณผ ์ฐจ๋ณ„์ ์„ ์‚ดํŽด ๋ณด๋ฉด,

  • Nuxt 3 ์ตœ์‹  ๊ธฐ๋Šฅ ์ ์šฉ

  • Server Routes ํ™œ์šฉ: ๋ฐฑ์•ค๋“œ ์—†์ด Nuxt 3์˜ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ APIํ˜ธ์ถœ ์ตœ์ ํ™”

  • Pinia ์ƒํƒœ๊ด€๋ฆฌ: Vuex ์—†์ด ๊น”๋”ํ•œ ๋ฐ์ดํ„ฐ ์ƒํƒœ๊ด€๋ฆฌ ์ ์šฉ

  • SSR(์„œ๋ฒ„์‚ฌ์ด๋“œ ๋žœ๋”๋ง) & SEO ์ตœ์ ํ™” : Nuxt 3์˜ ํ•ต์‹ฌ๊ธฐ๋Šฅ ์ตœ๋Œ€ํ•œ ํ™œ์šฉ

  • PWA(Progressive Web App): ์›น๊ณผ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ์›น์•ฑ์œผ๋กœ ๋ชจ๋ฐ”์ผ๊ธฐ๊ธฐ์—์„œ ์ตœ์ 

  • Vercel ๋ฐฐํฌ: ์™„์„ฑ๋œ ์•ฑ์„ ๋ฐฐํฌ

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

๐Ÿ’ก์ด ๊ฐ•์˜๊ฐ€ ํ•„์š”ํ•  ์ˆ˜๊ฐ•์ƒ์€ ?

  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ UI๊ฐœ๋ฐœ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ.

  • ํฌํŠธํด๋ฆฌ์˜ค ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ.

  • ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API์—ฐ๋™ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ.

  • SaaS ๊ฐœ๋ฐœ์„ ์ค€๋น„ํ•˜๋Š” ์‚ฌ๋žŒ.

  • ์›น ์„œ๋น„์Šค ๋ฐฐํฌ ๊ฒฝํ—˜์ด ์—†๋Š” ๊ฐœ๋ฐœ์ž

  • CSS๊ฐ€ ์–ด๋ ค์šฐ์‹  ๋ถ„๋“ค์€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ Class๋กœ CSS์ž‘์„ฑ ์ตœ์†Œํ™”

Vuejs๋Š” ์•Œ์ง€๋งŒ Nuxt3์„ ์ฒ˜์Œ ์ ‘ํ•˜์‹œ๋Š” ๋ถ„.

Vue js๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„์ด Nuxt 3์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์œผ์‹  ๋ถ„

์‹ค์ „ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€๋ถ„.
๋‹จ์ˆœ ์ด๋ก ์„ ๋›ฐ์–ด๋„˜์–ด ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ๋‚ ์”จ ์•ฑ์„ ์‹ค๋ฌด ์ค‘์‹ฌ์˜ ๊ฐ•์ขŒ

Pinia & PWA ๊ถ๊ธˆํ•˜์‹ ๋ถ„.
Vuex๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋‹ค๊ฐ€ Pinia๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์œผ์‹ ๋ถ„, ์›น์•ฑ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€์‹  ๋ถ„

Vuex๋ณด๋‹ค ๊ฐ•๋ ฅํ•˜๊ณ  ์‰ฌ์šด Pinia

Vuex๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ•๋ ฅํ•œNuxt 3 ๊ณต์‹ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž„

SSR์ง€์›์œผ๋กœ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„œ๋„ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ง๊ด€์ ์ธ Store๊ตฌ์„ฑ

๋‹จ์ˆœํžˆ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‹ค์ œ๋กœ ๋ฐฐํฌํ• ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑ

์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ์Œ“๊ณ  ํ–ฅํ›„ API๊ธฐ๋ฐ˜ ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ดˆ๋ฅผ ํ•™์Šต

์™ธ๋ถ€ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ํšจ์œจ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›€

Open Weather Map, Dynamic Routes

์™ธ๋ถ€ API์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ „๊ธฐ์ˆ ์„ ์ตํž™๋‹ˆ๋‹ค.

Nuxt Dynamic Routes๋Š” pagesํ•˜์œ„์— ์ƒ์„ฑ๋œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์— ๋ผ์šฐํ„ฐ์ฃผ์†Œ๋Œ€์‹  ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์ด ๋ผ์šฐํ„ฐ ์ฃผ์†Œ๋ฅผ ๋Œ€์‹  ํ•ฉ๋‹ˆ๋‹ค.

Nuxt 3 + Firebase Firestore ํ™œ์šฉ

NoSQL ๊ธฐ๋ฐ˜ ํ™•์žฅ์„ฑ ๋†’์€ ํด๋ผ์šฐ๋“œ DB๊ด€๋ฆฌ

์„œ๋ฒ„ ์—†์ด๋„ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

Pinia์™€ Firestore๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํšจ์œจ์ ์ธ ์ƒํƒœ๊ด€๋ฆฌ๊ตฌํ˜„

Firebase Authentication์œผ๋กœ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ๊ฐ•์˜๋Š” Windows 10 ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ•์˜์—์„œ๋Š” Vscode, Node.js 22.

ํ•™์Šต ์ž๋ฃŒ

  • ์ž๋ฃŒ์‹ค์—์„œ ๊ด€๋ จ ์ด๋ฏธ์ง€๋ฐ ๋ฐฐ๊ฒฝ mp4์ž๋ฃŒ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • javascript

  • Vue.js.

  • ๊ธฐ๋ณธ css ์ง€์‹

๐Ÿ’ก๊ฐ•์˜ ํ•™์Šต์— ํ•„์š”ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ

  1. ์‹ค์Šต ํ™˜๊ฒฝ

    • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 10 ์ด์ƒ

    • ์‚ฌ์šฉ ๋„๊ตฌ: Vscode,Github, Firebase, openWeatherMap๋“ฑ์€ ๋ชจ๋‘ ๋ฌด๋ฃŒ์ด์ง€๋งŒ ์ผ์ •์‚ฌ์šฉ๋Ÿ‰ ์ด์ƒ์ด๋ฉด ์š”๊ธˆ์ด ๋ถ€๊ณผ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌด๋ฃŒ ์‚ฌ์šฉ๋Ÿ‰์—์„œ ํ•™์Šต์ด ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


    • PC ์‚ฌ์–‘: CPU Intel i5 8์„ธ๋Œ€ ์ด์ƒ ๋˜๋Š” AMD Ryzen 5์ด์ƒ RAM: 8GB์ด์ƒ, ์ธํ„ฐ๋„ท์—ฐ๊ฒฐ

  2. ์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

    • HTML, CSS, JavaScript ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ํ•™์Šต์ด ๋” ์‰ฌ์›Œ์š”.

    • Vue.js๋ฅผ ๊ฐ„๋‹จํžˆ ๊ฒฝํ—˜ํ•ด๋ดค๋‹ค๋ฉด Nuxt 3 ํ•™์Šต์ด ์–ด๋‘‘ ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.

    • GihHub, Vercel, Google, openWeatherMap ๊ณ„์ •

    • openWeatherMap ๊ณ„์ •๋“ฑ๋ก์‹œ ๋ฌด๋ฃŒ์ด์ง€๋งŒ ์นด๋“œ ๋“ฑ๋ก์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์€ '๋ฐฐ๋‹ฌ์•ฑ์€ ์–ด๋–ป๊ฒŒ ๋‚ด ์ฃผ๋ณ€์˜ ๋ง›์ง‘์„ ์ฐพ์„๊นŒ?' ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • Vue ๊ธฐ๋ฐ˜ Nuxt์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹จ๊ธฐ๊ฐ„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„

  • ์›น๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ถ„

  • DB๊ฐ€ ์–ด๋ ค์šด ๋ถ„

  • PWA(Progressive Web App)์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€๋ถ„

  • Vue.js์— ๊ด€์‹ฌ์žˆ๋Š” ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • vue

  • javascript

์•ˆ๋…•ํ•˜์„ธ์š”
์ž„์ข…ํƒœ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ?

์ €๋Š” ๋“œ๋ก ๋งตํ•‘ ์ €์ž๋กœ์„œ, ํ˜„์žฌ ๋“œ๋ก ์„ ์ด์šฉํ•˜์—ฌ ๋งตํ•‘์— ๊ด€์‹ฌ์žˆ๋Š” ๋ถ„๋“ค์—๊ฒŒ ํ•„์š”ํ•œ ๊ฐ•์ขŒ๋ฅผ ๊ฐœ์„คํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋“œ๋ก ๋งตํ•‘์„ ํ•˜๊ณ  ์‹ถ์€๋ถ„๋“ค์€ ๋ฌด์—‡๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ๋ ์ง€ ๋ชจ๋ฅด๋Š”๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์ขŒ๋Š” ๊ทธ๋Ÿฐ ๋ถ„๋“ค์„ ์œ„ํ•˜์—ฌ ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•˜์—ฌ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์„ ์š”์•ฝํ•˜์—ฌ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค. 

๋˜ํ•œ, Nuxt 3๋ฅผ ํ™œ์šฉํ•œ ์›น ๊ฐœ๋ฐœ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜์—์„œ๋Š” Nuxt 3, Pinia, OpenWeatherMap API, Tailwind CSS๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ „ ํ”„๋กœ์ ํŠธ์ธ ๋‚ ์”จ ์•ฑ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค. API ์—ฐ๋™, ์ƒํƒœ ๊ด€๋ฆฌ, ๋ฐ˜์‘ํ˜• UI ์„ค๊ณ„, ๋ฐฐํฌ๊นŒ์ง€ ๋ฐฐ์›Œ ์‹ค๋ฌด์—์„œ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ์ตํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ณ  ์‹ค์šฉ์ ์ธ ๊ฐ•์˜๋กœ Nuxt 3์˜ ํ•ต์‹ฌ์„ ํ•จ๊ป˜ ๋งˆ์Šคํ„ฐํ•ด ๋ณด์„ธ์š”! ๐Ÿš€

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

39๊ฐœ โˆ™ (7์‹œ๊ฐ„ 31๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!