4๊ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ ์์ฝ ์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ๋ ์ค, ์ธ์ด๋ฅผ ๋ฐ๊ฟ๋ ๋ ์ง์ ์์ผ ํ๊ธฐ๋ง ๊ทธ๋๋ก ๋จ๋ ์ด์๋ฅผ ๋ฐ๊ฒฌํ๋ค. ์์ธ์ i18n๊ณผ moment.js๊ฐ ์๋ก ๋ค๋ฅธ ๋ก์ผ์ผ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ด์๋ค. ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ์ด ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ก ๋๊ธฐํํ๊ณ , ์ค๊ตญ์ด weekday๋
Next.js ยท Vite ยท Astro๋ก ๋ง๋ค์ด์ง 6๊ฐ ์ฑ๊ณผ 3๊ฐ์ ๊ณต์ ํจํค์ง(UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ, API ์๋น์ค, ๋ค๊ตญ์ด ๋ฆฌ์์ค)๋ฅผ ํ๋์ pnpm ์ํฌ์คํ์ด์ค๋ก ๋ฌถ์ ์์ ๊ธฐ๋ก์ด๋ค.pnpm-workspace.yaml์ ์ถ๊ฐํ๋ ์์ค์ด ์๋๋ผ, ๋ค์ค ํ๋ ์์ํฌ๊ฐ ๊ณต์กด

์์ ๋ฑ๋ก ํ๋ก์ฐ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ฌ์ง ์ ๋ก๋๊ฐ UX ๋ณ๋ชฉ์ด ๋ ์ ์๋ค๋ ๊ฑธ ์ธ์ํ๋ค. ์๋ณธ ํ์ผ์ ๊ทธ๋๋ก ์ฌ๋ฆฌ๋ฉด ๋๋ฆฌ๊ณ , 10์ฅ์ ์์ฐจ ์ฒ๋ฆฌํ๋ฉด ๋๊ธฐ ์๊ฐ์ด ์ ํ์ผ๋ก ๋์ด๋๋ค. ์งํ ์ํฉ๋ ์์ผ๋ ์ฌ์ฉ์๋ ๋ฒํผ์ ๋ค์ ๋๋ฅธ๋ค. ์ด์ฐจํผ ๋ง๋ค ๊ธฐ๋ฅ์ด๋ผ๋ฉด ์ ๋๋ก ๋ง๋ค์๋ ์

๊ฐ์ธ ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ(Next.js 15 / App Router)๋ฅผ ๋ง๋ค๊ณ Lighthouse๋ฅผ ๋๋ ค๋ณด๋์ฒซ ํ์ธํธ ์์ , ๋ฉ์ธ ์ค๋ ๋ ์ ์ ์๊ฐ, ํฐํธ ๋ก๋ฉ ์ ๋ ์ด์์ ์ํํธ ๋ฑ์์๊ฐ์ ํ ๋งํ ์ง์ ๋ค์ด ๋ณด์๋ค.์ด๋ฒ ๊ธ์์๋ LCP / TBT / CLS ์ธ ๊ฐ์ง ์งํ

์๋ฐ ํ๋ซํผ์์ ์ด๋ฉ๋ํฐ ์์ด์ฝ ์์คํ ์ ์ค๊ณํ์ต๋๋ค. ๋จ์ํ ์์ด์ฝ์ ๋ ๋๋งํ๋ ๊ฒ์์ ๋๋์ง ์๊ณ , ๊ตฌํํ๋ฉด์ ๋ฐ๊ฒฌํ ๋ฌธ์ ๋ค์ ์ง์ ๊ฐ์ ํ๋ ๊ณผ์ ๊น์ง ๊ฒช์์ต๋๋ค. SVG ๋ณํ ์๋ํ, id ์ถฉ๋ ๋ฐฉ์ง, ๋ฒ๋ค ์ต์ ํ ๋ฑ ๊ทธ ๊ณผ์ ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.์์ ํ ์๋น์ค๋ ์ธ
Vercel๋ก ๋ฐฐํฌํ ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ์์ Lighthouse SEO ์ ์๊ฐ 100์ ์์ 63์ ์ผ๋ก ๊ธ๋ฝํ๋ค. ์ฝ๋๋ฅผ ์๋ฌด๋ฆฌ ๋ฏ์ด๋ด๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ์์ธ์ ์์ธ๋ก ๋จ์ํ๋ค.ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ๋ฅผ Vercel์ ๋ฐฐํฌํ ํ Lighthouse๋ก ์ฑ๋ฅ์ ์ธก์

์์ด์ฝ 36๊ฐ๋ฅผ ์ด๋์ ๋ถ๋ฌ์ค๋๋๋ก Lighthouse ์ ์๊ฐ 87์ ์์ 75์ ๊น์ง ๋จ์ด์ก์ต๋๋ค. ์์ธ์ loading="lazy" ํ ์ค์ด์์ต๋๋ค.ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ์ ๊ธฐ์ ์คํ ์น์ ์ ๊ฐ๋ฐํ๋ฉด์ ์์ด์ฝ ์ฒ๋ฆฌ ๋ฐฉ์์ด ์ฑ๋ฅ์ ์ด๋ ๊ฒ๊น์ง ์ํฅ์ ๋ฏธ์น ๊ฑฐ๋ผ๊ณ ๋ ์๊ฐํ์ง ๋ชปํ

์น ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ํ์ด์ง ๋ก๋ฉ ์ ํฐํธ๊ฐ ๊ฐ์๊ธฐ ๋ฐ๋๋ ๊ฒฝํ์ ํ ์ ์ด ์์ ๊ฒ์ด๋ค.์ด ํ์์ FOUT(Flash of Unstyled Text)๋ผ๊ณ ํ๋ค.์ด๋ฒ ๊ธ์์๋ FOUT์ด ๋ฌด์์ธ์ง, ์ ๋ฐ์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค๋ฌด์์ ์ด๋ป๊ฒ ๋ฐฉ์งํ๋์ง ์ ๋ฆฌํด๋ณธ๋ค.FOUT (F

Next.js์์ ํ๊ฒฝ ๋ณ์(Environment Variables)๋๋จ์ ์ค์ ๊ฐ์ด ์๋๋ผ ๋ณด์, ๋ฐฐํฌ, ํ๊ฒฝ ๋ถ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ํต์ฌ ์์์ด๋ค.ํนํ Next.js๋ Server์ Client๊ฐ ํจ๊ป ์กด์ฌํ๊ธฐ ๋๋ฌธ์ํ๊ฒฝ ๋ณ์์ ์ฌ์ฉ ๋ฒ์๋ฅผ ๋ช ํํ ๊ตฌ๋ถํด์ผ ํ๋ค.Next.j

Next.js ๋ฐฐํฌ๋ ๋จ์ํ ์๋ฒ์ ์ฌ๋ฆฌ๋ ๊ณผ์ ์ด ์๋๋ผ ๋น๋, ์ต์ ํ, ํ๊ฒฝ ๋ถ๋ฆฌ, ์คํ๊น์ง ํฌํจ๋ ๊ณผ์ ์ด๋ค. 1. Vercel ๋ฐฐํฌ Next.js๋ Vercel์์ ๊ฐ์ฅ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋ค. ๋ฐฐํฌ ํ๋ฆ GitHub์ ์ฝ๋ push Vercel์์ ํ๋ก์ ํธ import ์๋ ๋น๋ ๋ฐฐํฌ ์๋ฃ (URL ์์ฑ) ํน์ง Next.js์ ๋์ ํธํ์ฑ S...

์น ์๋น์ค์์ SEO(Search Engine Optimization)๋๊ฒ์ ์์ง ๋ ธ์ถ๊ณผ ์ ์ ์ ์ง์ ์ ์ธ ์ํฅ์ ์ค๋ค.Next.js(App Router ๊ธฐ์ค)๋ Metadata API๋ฅผ ํตํดSEO ์ค์ ์ ๋งค์ฐ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.์ด ๊ธ์์๋ ๋ค์ 3๊ฐ์ง๋ฅผ

Next.js๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ํ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฅ์ ๋ด์ฅํ๊ณ ์๋ค.ํนํ ์ด๋ฏธ์ง, ํฐํธ, ๋ฒ๋ค ํฌ๊ธฐ ์ต์ ํ๋ ์ค์ ์๋น์ค์์ ๋ก๋ฉ ์๋์ UX์ ํฐ ์ํฅ์ ์ค๋ค.์ด ๊ธ์์๋ ๋ค์ 3๊ฐ์ง๋ฅผ ํต์ฌ์ผ๋ก ์ ๋ฆฌํ๋ค:next/imagenext/font๋ฒ๋ค ์ต์ ํ ๊ฐ๋ ์ผ๋ฐ <

Next.js App Router๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ ์์ฃผ ๋ณด๊ฒ ๋๋ค."Middleware๋ Edge Runtime์์ ์คํ๋๋ค"์ฌ๊ธฐ์ ์์ฐ์ค๋ฝ๊ฒ ์ด๋ฐ ์๋ฌธ์ด ์๊ธด๋ค.๐ Edge Runtime์ ์ ํํ ๋ฌด์์ด๊ณ , ์ธ์ ์ฌ์ฉํด์ผ ํ ๊น?์ด ๊ธ์์๋ Edg

Next.js App Router๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ง์ ํ๊ธฐ ์ ์ ๊ณตํต ๋ก์ง์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฐ์ํ๋ค.์๋ฅผ ๋ค์ด:๋ก๊ทธ์ธ ์ฌ๋ถ ํ์ธ (์ธ์ฆ)ํน์ ํ์ด์ง ์ ๊ทผ ์ ํ์์ฒญ ๋ก๊น ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฐ ๋ก์ง์ ํ์ด์ง๋ API๋ง๋ค ๋ฐ๋ณต ๊ตฌํํ๋ฉด ์ฝ๋

Next.js App Router๋ฅผ ์ฌ์ฉํ๋ฉด์ ์๋ฒ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.Route Handlers (API Routes)Server Actions๋ ๋ฐฉ์ ๋ชจ๋ ์๋ฒ์์ ์คํ๋์ง๋ง,๐ ์ฌ์ฉ ๋ชฉ์ ๊ณผ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ถํด์ ์ดํดํ๋ ๊ฒ์ด ์ค

Next.js App Router๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ด๋ฐ ์ํฉ์ ์์ฃผ ๊ฒช๊ฒ ๋๋ค."๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟจ๋๋ฐ ์ ํ๋ฉด์ด ๊ทธ๋๋ก์ง?""์ ์ด๋ค ์์ฒญ์ ๋ค์ ์ ๋๊ฐ์ง?""revalidate๋ฅผ ํ๋๋ฐ ์ ์ ๋ฐ๋์ง?"์ด๋ฐ ๋ฌธ์ ์ ๋๋ถ๋ถ์๐ Next.js์ ์บ์ฑ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ดํดํ

๐ Next.js 13+์์ ์ถ๊ฐ๋ ํต์ฌ ๊ธฐ๋ฅ์ผ๋ก,๐ ํด๋ผ์ด์ธํธ โ ์๋ฒ ๋ฐ์ดํฐ ๋ณ๊ฒฝ(Mutation)์ ๋จ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.๊ธฐ์กด์๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ํด API Route๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ผ ํ์ง๋ง,Server Actions๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ์์ ์ง์ ์๋ฒ ๋ก์ง

์ฌ์ฉ์ ๊ฒฝํ(UX)์ ํฌ๊ฒ ์ข์ฐํ๋ ์์ ์ค ํ๋๋ ๋ก๋ฉ ์ํ์ ์๋ฌ ์ฒ๋ฆฌ UI์ด๋ค.ํนํ Next.js(App Router)์์๋ ์ด๋ฅผ ํ์ผ ๋จ์๋ก ๊ตฌ์กฐํํ์ฌ ๋งค์ฐ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.์ฒ์์๋ ๋จ์ํ ๋ณด์กฐ UI๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ง์ ์ ์ฉํด๋ณด๋ฉด์Streaming๋ง

Next.js 13๋ถํฐ ๋์ ๋ App Router์์๋ ๊ธฐ์กด Page Router์ ๋ฌ๋ฆฌ์ ํ๋ฆฌ์ผ์ด์ ์ UI๋ฅผ ํ์ด์ง๊ฐ ์๋ Layout ์ค์ฌ์ผ๋ก ์ค๊ณํ๋ค.์ด ๊ธ์์๋ ๋ค์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค.layout.tsxtemplate.tsxNested Layout ๊ตฌ์กฐ๊ณตํต UI ๊ด

Webpack Dev Server ์นํฉ ๋ฐ๋ธ ์๋ฒ(Webpack Dev Server)๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ฉ ์๋ฒ๋ก, ๋น๋ ๋์ ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ๋งค๋ฒ ์นํฉ ๋ช ๋ น์ด๋ฅผ ๋ค์ ์คํํ์ง ์์๋ ์ฝ๋ ๋ณ๊ฒฝ ํ ์ ์ฅ ์ ์๋์ผ๋ก ๋น๋ํ๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ก๊ณ ์นจํ์ฌ ๋ณ๊ฒฝ ๋ด