Next.js ๋ฌธ์ ๊ธฐ์ฌ ๊ฐ์ด๋์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค! ์ฌ๋ฌ๋ถ์ ๋ง๋๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์ด ํ์ด์ง๋ Next.js ๋ฌธ์๋ฅผ ํธ์งํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ปค๋ฎค๋ํฐ์ ๋ชจ๋ ์ฌ๋์ด ๋ฌธ์๋ฅผ ๊ธฐ์ฌํ๊ณ ๊ฐ์ ํ ์ ์๋ ๊ถํ์ ๊ฐ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์คํ์์ค ์์ ์ ๊ฒฐ์ฝ ๋๋์ง ์์ผ๋ฉฐ ๋ฌธ์ํ ์ญ์ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ฌธ์์ ๊ธฐ์ฌํ๋ ๊ฒ์ ์ด๋ณด์๊ฐ ์คํ์์ค์ ์ฐธ์ฌํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ฉฐ, ์๋ จ๋ ๊ฐ๋ฐ์๋ ์ปค๋ฎค๋ํฐ์ ์ง์์ ๊ณต์ ํ๋ฉด์ ๋ ๋ณต์กํ ์ฃผ์ ๋ฅผ ๋ช ํํ ํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
Next.js ๋ฌธ์์ ๊ธฐ์ฌํจ์ผ๋ก์จ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋์ฑ ๊ฐ๋ ฅํ ํ์ต ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ์ฃผ์ค ์ ์์ต๋๋ค. ์คํ๋ ํผ๋์ค๋ฌ์ด ์น์ ์ ๋ฐ๊ฒฌํ๊ฑฐ๋ ํน์ ์ฃผ์ ๊ฐ ๋๋ฝ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋๋ผ๋ ์ฌ๋ฌ๋ถ์ ๊ธฐ์ฌ๋ฅผ ํ์ํ๊ณ ๊ฐ์ฌํ๊ฒ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ์ฝํ ์ธ ๋ Next.js ๋ ํฌ์งํ ๋ฆฌ์์ ์ฐพ์ ์ ์์ต๋๋ค. ๊ธฐ์ฌํ๋ ค๋ฉด GitHub์์ ์ง์ ํ์ผ์ ํธ์งํ๊ฑฐ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ์ฌ ๋ก์ปฌ์์ ํ์ผ์ ํธ์งํ ์ ์์ต๋๋ค.
GitHub๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GitHub ์คํ ์์ค ๊ฐ์ด๋๋ฅผ ์ฝ๊ณ ๋ ํฌ์งํ ๋ฆฌ ํฌํฌ, ๋ธ๋์น ์์ฑ ๋ฐ ํ ๋ฆฌํ์คํธ ์ ์ถ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐธ๊ณ : ๊ธฐ๋ณธ ๋ฌธ์ ์ฝ๋๋ ๋น๊ณต๊ฐ ์ฝ๋๋ฒ ์ด์ค์ ์์ผ๋ฉฐ, ์ด ์ฝ๋๋ฒ ์ด์ค๋ Next.js ๊ณต๊ฐ ๋ ํฌ์งํ ๋ฆฌ์ ๋๊ธฐํ๋ฉ๋๋ค. ์ฆ, ๋ก์ปฌ์์ ๋ฌธ์๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณํฉํ ํ์๋ nextjs.org์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค.
๋ฌธ์๋ JSX ๊ตฌ๋ฌธ์ ์ง์ํ๋ ๋งํฌ๋ค์ด ํ์์ธ MDX๋ก ์์ฑ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์์ React ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ๋งํฌ๋ค์ด ๊ตฌ๋ฌธ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์๋ GitHub ๋งํฌ๋ค์ด ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
VSCode์๋ ํธ์ง ๋ด์ฉ์ ๋ก์ปฌ์์ ํ์ธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋งํฌ๋ค์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. MDX ํ์ผ์ ๋ํด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉ์ ์ค์ ์ ๊ตฌ์ฑ ์ต์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๋ช
๋ น ํ๋ ํธ(Mac์ ๊ฒฝ์ฐ โ + โง + P, Windows์ ๊ฒฝ์ฐ Ctrl + Shift + P)๋ฅผ ์ด๊ณ Preferences: Open User Settings (JSON)์ ๊ฒ์ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ settings.json ํ์ผ์ ๋ค์ ์ค์ ์ถ๊ฐํฉ๋๋ค:
{
"files.associations": {
"*.mdx": "markdown"
}
}๊ทธ๋ฐ ๋ค์ ๋ช
๋ น ํ๋ ํธ๋ฅผ ๋ค์ ์ด๊ณ Markdown: Preview File ๋๋ Markdown: Open Preview to the Side์ ๊ฒ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ์์ด ์ง์ ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ํ์ธํ ์ ์๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค.
๋ํ VSCode ์ฌ์ฉ์์๊ฒ๋ ๋ค์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๊ถ์ฅํฉ๋๋ค:
- MDX: MDX์ฉ ์ธํ ๋ฆฌ์ผ์ค ๋ฐ ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์.
- Grammarly: ๋ฌธ๋ฒ ๋ฐ ๋ง์ถค๋ฒ ๊ฒ์ฌ
- Prettier: ์ ์ฅ์ MDX ํฌ๋งท์ ๋ง์ถฐ ์ ์ฅ
๊ธฐ์ฌ๋ฅผ ์ ์ถํ๋ฉด Next.js ๋๋ ๊ฐ๋ฐ์ ๊ฒฝํ ํ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ฉฐ ํ ๋ฆฌํ์คํธ๊ฐ ์ค๋น๋๋ฉด ๋ณํฉํฉ๋๋ค.
๊ถ๊ธํ ์ ์ด ์๊ฑฐ๋ PR ์๊ฒฌ์ ์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ ์๋ ค์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. Next.js ๋ฌธ์์ ๊ธฐ์ฌํ๊ณ ์ปค๋ฎค๋ํฐ์ ์ผ์์ด ๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
Tip: PR์ ์ ์ถํ๊ธฐ ์ ์
pnpm prettier-fix๋ฅผ ์คํํ์ฌ Prettier๋ฅผ ์คํํ์ธ์.
๋ฌธ์์์๋ ํ์ผ ์์คํ
๋ผ์ฐํ
์ ์ฌ์ฉํฉ๋๋ค. /docs ๋ด๋ถ์ ๊ฐ ํด๋์ ํ์ผ์ ํ๋์ ๊ฒฝ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ๋ํ๋
๋๋ค. ์ด๋ฌํ ์ธ๊ทธ๋จผํธ๋ URL ๊ฒฝ๋ก, ํ์ ๋ฐ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ผ ๊ตฌ์กฐ๋ ์ฌ์ดํธ์ ํ์๋๋ ํ์์ ๋ฐ์ํ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ํญ๋ชฉ์ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋ ๋๋ ํ์ผ ์ด๋ฆ ์์ ๋ ์๋ฆฌ ์ซ์(00-)๋ฅผ ์ถ๊ฐํ์ฌ ํญ๋ชฉ์ ์์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ํจ์ API ๋ ํผ๋ฐ์ค์์๋ ๊ฐ๋ฐ์๊ฐ ํน์ ํจ์๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ํ์ด์ง๊ฐ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค:
03-functions
โโโ cookies.mdx
โโโ draft-mode.mdx
โโโ fetch.mdx
โโโ ...๊ทธ๋ฌ๋ ๋ผ์ฐํ ์น์ ์์๋ ํ์ผ ์์ ๋ ์๋ฆฌ ์ซ์๊ฐ ๋ถ์ด์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ๊ฐ๋ ์ ์ตํ์ผ ํ๋ ์์๋๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค:
02-routing
โโโ 01-defining-routes.mdx
โโโ 02-pages-and-layouts.mdx
โโโ 03-linking-and-navigating.mdx
โโโ ...ํ์ด์ง๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ผ๋ ค๋ฉด โ + P(Mac) ๋๋ Ctrl + P(Windows)๋ฅผ ์ฌ์ฉํ์ฌ VSCode์์ ๊ฒ์์ฐฝ์ ์ด ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฐพ๊ณ ์๋ ํ์ด์ง์ ์ฌ๋ฌ๊ทธ๋ฅผ ์
๋ ฅํฉ๋๋ค. ์: defining-routes
์ ๋งค๋ํ์คํธ๋ฅผ ์ฌ์ฉํ์ง ์๋์?
๋ฌธ์ ํ์์ ์์ฑํ๋ ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ๋ฐฉ๋ฒ์ธ ๋งค๋ํ์คํธ ํ์ผ ์ฌ์ฉ์ ๊ณ ๋ คํ์ง๋ง ๋งค๋ํ์คํธ๊ฐ ํ์ผ๊ณผ ๋น ๋ฅด๊ฒ ๋๊ธฐํ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ํ์ผ ์์คํ ๋ผ์ฐํ ์ ๋ฌธ์์ ๊ตฌ์กฐ์ ๋ํด ์๊ฐํ๊ฒ ํ๊ณ Next.js์ ๋ ๋ค์ดํฐ๋ธํ ๋๋์ ์ค๋๋ค.
๊ฐ ํ์ด์ง์๋ ํ์ผ ์๋จ์ ๋์ ์ธ ๊ฐ๋ก ๊ตฌ๋ถ๋ ๋ฉํ๋ฐ์ดํฐ ๋ธ๋ก์ด ์์ต๋๋ค.
๋ค์ ํ๋๋ ํ์ ์ ๋ ฅ ์ฌํญ์ ๋๋ค:
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
title |
SEO ๋ฐ OG ์ด๋ฏธ์ง์ ์ฌ์ฉ๋๋ ํ์ด์ง์ <h1> ์ ๋ชฉ์
๋๋ค. |
description |
SEO์ฉ <meta name="description"> ํ๊ทธ์ ์ฌ์ฉ๋๋ ํ์ด์ง์ ์ค๋ช
์
๋๋ค. |
---
tile: ํ์ด์ง ์ ๋ชฉ
description: ํ์ด์ง ์ค๋ช
---ํ์ด์ง ์ ๋ชฉ์ 23๋จ์ด(์: ์ด๋ฏธ์ง ์ต์ ํ)๋ก, ์ค๋ช
์ 12๋ฌธ์ฅ(์: Next.js์์ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ ๋ฐฐ์ฐ๊ธฐ)์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ค์ ํ๋๋ ์ ํ ์ฌํญ์ ๋๋ค:
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
nav_title |
ํ์์์ ํ์ด์ง์ ์ ๋ชฉ์ ์ฌ์ ์ํฉ๋๋ค. ํ์ด์ง ์ ๋ชฉ์ด ๋๋ฌด ๊ธธ์ด ๋ง์ง ์์ ๋ ์ ์ฉํฉ๋๋ค. ์ ๊ณตํ์ง ์์ผ๋ฉด title ํ๋๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
source |
์ฝํ ์ธ ๋ฅผ ๊ณต์ ํ์ด์ง๋ก ๊ฐ์ ธ์ต๋๋ค. ๊ณต์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. |
related |
๋ฌธ์ ํ๋จ์ ๊ด๋ จ ํ์ด์ง ๋ชฉ๋ก์ด ์์ต๋๋ค. ์ด ํ์ด์ง๋ค์ ์๋์ผ๋ก ์นด๋๋ก ์ ํ๋ฉ๋๋ค. ๊ด๋ จ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ธ์. |
---
nav_title: Nav ํญ๋ชฉ ์ ๋ชฉ
source: app/building-your-application/optimizing/images
related:
description: ์ด๋ฏธ์ง ์ปดํฌ๋ํธ API ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
links:
- app/api-reference/components/image
---์ฑ ๋ผ์ฐํฐ์ ํ์ด์ง ๋ผ์ฐํฐ์ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ ๋ํ ๋ฌธ์๋ ๋ณ๋์ ์น์
(02-app ๋ฐ 03-pages)์ ๋ณด๊ด๋์ด ์์ต๋๋ค. ํ์ง๋ง ๋ ๊ธฐ๋ฅ ๊ฐ์ ๊ณต์ ๋๋ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
๊ณต์ ํ์ด์ง
์ฝํ
์ธ ์ค๋ณต์ ๋ฐฉ์งํ๊ณ ์ฝํ
์ธ ๊ฐ ๋๊ธฐํ๋์ง ์์ ์ํ์ ๋ฐฉ์งํ๊ธฐ ์ํด source ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ํ ํ์ด์ง์ ์ฝํ
์ธ ๋ฅผ ๋ค๋ฅธ ํ์ด์ง๋ก ๊ฐ์ ธ์ต๋๋ค. ์๋ฅผ ๋ค์ด <Link> ์ปดํฌ๋ํธ๋ ์ฑ๊ณผ ํ์ด์ง์์ ๊ฑฐ์ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. ์ฝํ
์ธ ๋ฅผ ๋ณต์ ํ๋ ๋์ app/.../link.mdx์์ pages/.../link.mdx๋ก ์ฝํ
์ธ ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค:
---
title: <Link>
description: <Link> ์ปดํฌ๋ํธ์ ๋ํ API ์ฐธ์กฐ์
๋๋ค.
---
์ด API ๋ ํผ๋ฐ์ค๋ ๋งํฌ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๋ ์ํ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ
๋ฐ ๋งํฌ ์ปดํฌ๋ํธ์ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์ฑ ์ต์
์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.---
title: <Link>
description: <Link> ์ปดํฌ๋ํธ์ ๋ํ API ์ฐธ์กฐ์
๋๋ค.
source: app/api-reference/components/link
---๋ฐ๋ผ์ ํ ๊ณณ์์ ์ฝํ ์ธ ๋ฅผ ํธ์งํ์ฌ ๋ ์น์ ์ ๋ชจ๋ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ณต์ ํ์ด์ง์๋ ๋๋๋ก ์ฑ ๋ผ์ฐํฐ ๋๋ ํ์ด์ง ๋ผ์ฐํฐ ์ ์ฉ ์ฝํ
์ธ ๊ฐ ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, <Link> ์ปดํฌ๋ํธ์๋ Pages์์๋ง ์ฌ์ฉํ ์ ์๊ณ App์์๋ ์ฌ์ฉํ ์ ์๋ shallow prop์ด ์์ต๋๋ค.
์ฝํ ์ธ ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ผ์ฐํฐ์๋ง ํ์๋๋๋ก ํ๋ ค๋ฉด ์ฝํ ์ธ ๋ธ๋ก์ <์ฑ ์ ์ฉ> ๋๋ <ํ์ด์ง ์ ์ฉ> ์ปดํฌ๋ํธ๋ก ๋ํํ๋ฉด ๋ฉ๋๋ค:
์ด ์ฝํ
์ธ ๋ App๊ณผ Pages ๊ฐ์ ๊ณต์ ๋ฉ๋๋ค.
<PagesOnly>
์ด ์ฝํ
์ธ ๋ Pages ๋ฌธ์์๋ง ํ์๋ฉ๋๋ค.
</PagesOnly>
์ด ์ฝํ
์ธ ๋ App๊ณผ Pages ๊ฐ์ ๊ณต์ ๋ฉ๋๋ค.์์ ๋ฐ ์ฝ๋ ๋ธ๋ก์ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ฝ๋ ๋ธ๋ก์๋ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ์ ์๋ ์ต์ํ์ ์์ ์์ ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ฆ, ์ถ๊ฐ ๊ตฌ์ฑ ์์ด ์ฝ๋๊ฐ ์คํ๋ ์ ์์ด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด <Link> ์ปดํฌ๋ํธ ์ฌ์ฉ๋ฒ์ ์ค๋ช
ํ๋ ๊ฒฝ์ฐ import ๋ฌธ๊ณผ <Link> ์ปดํฌ๋ํธ ์์ฒด๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
import Link from 'next/link'
export default function Page() {
return <Link href="/about">About</Link>
}์์ ๋ฅผ ์ปค๋ฐํ๊ธฐ ์ ์ ํญ์ ๋ก์ปฌ์์ ์คํํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋๊ฐ ์ต์ ์ํ์ด๊ณ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ฝ๋ ๋ธ๋ก์๋ ์ธ์ด์ filename์ ํฌํจํ๋ ํค๋๊ฐ ์์ด์ผ ํฉ๋๋ค. filename ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ช
๋ น์ ์
๋ ฅํ ์์น๋ฅผ ์๋ ค์ฃผ๋ ํน์ ํฐ๋ฏธ๋ ์์ด์ฝ์ ๋ ๋๋งํฉ๋๋ค. ์:
```bash filename="Terminal"
npx create-next-app
```๋ฌธ์์ ์๋ ๋๋ถ๋ถ์ ์์ ๋ tsx์ jsx๋ก ์์ฑ๋์์ผ๋ฉฐ, ์ผ๋ถ๋ bash๋ก ์์ฑ๋์์ต๋๋ค. ํ์ง๋ง ์ง์๋๋ ๋ชจ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ ์ฒด ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
JavaScript ์ฝ๋ ๋ธ๋ก์ ์์ฑํ ๋ ๋ค์๊ณผ ๊ฐ์ ์ธ์ด ๋ฐ ํ์ฅ์ ์กฐํฉ์ ์ฌ์ฉํฉ๋๋ค.
| ์ธ์ด | ํ์ฅ์ | |
|---|---|---|
| JavaScript ํ์ผ with JSX code | jsx | .js |
| JavaScript ํ์ผ without JSX | js | .js |
| TypeScript ํ์ผ with JSX | tsx | .tsx |
| TypeScript ํ์ผ without JSX | ts | .ts |
์ธ์ด ์ ํ๊ธฐ๋ฅผ ์ถ๊ฐํ์ฌ ํ์ ์คํฌ๋ฆฝํธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฌ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์ฝ๋ ๋ธ๋ก์ ์ฌ์ฉ์๋ฅผ ์ํด JavaScript ๋ฒ์ ๊ณผ ํจ๊ป TypeScript๋ก ๋จผ์ ์์ฑํด์ผ ํฉ๋๋ค.
ํ์ฌ๋ TS์ JS ์์ ๋ฅผ ์ฐจ๋ก๋ก ์์ฑํ๊ณ switcher prop์ผ๋ก ์ฐ๊ฒฐํฉ๋๋ค:
```tsx filename="app/page.tsx" switcher
```
```jsx filename="app/page.js" switcher
```์ฐธ๊ณ : ํฅํ์๋ ํ์ ์คํฌ๋ฆฝํธ ์ค๋ํซ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์๋ ์ปดํ์ผํ ๊ณํ์ ๋๋ค. ๊ทธ์ ๊น์ง๋ transform.tools๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฝ๋ ์ค์ ๊ฐ์กฐ ํ์ํ ์ ์์ต๋๋ค. ์ฝ๋์ ํน์ ๋ถ๋ถ์ ์ฃผ์๋ฅผ ํ๊ธฐ์ํค๊ณ ์ถ์ ๋ ์ ์ฉํฉ๋๋ค. highlight prop์ ์ซ์๋ฅผ ์ ๋ฌํ์ฌ ์ค์ ๊ฐ์กฐ ํ์ํ ์ ์์ต๋๋ค.
ํ์ค: highlight={1}
import Link from 'next/link'
export default function Page() {
return <Link href="/about">About</Link>
}์ฌ๋ฌ์ค: highlight={1,3}
import Link from 'next/link'
export default function Page() {
return <Link href="/about">About</Link>
}๋ฒ์: highlight={1-5}
import Link from 'next/link'
export default function Page() {
return <Link href="/about">About</Link>
}๋ฌธ์์์ ์ฌ์ฉํ ์ ์๋ ์์ด์ฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
<Check size={18} />
<Cross size={18} />์ ํฌ๋ ๋ฌธ์์ ์ด๋ชจํฐ์ฝ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ค์ํ์ง๋ง ์ค์ํ์ง ์์ ์ ๋ณด๋ ๋ฉ๋ชจ๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฉ๋ชจ๋ ์ฌ์ฉ์์ ์ฃผ์๋ฅผ ๋ถ์ฐ์ํค์ง ์์ผ๋ฉด์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
> **์ฐธ๊ณ **: ํ ์ค ๋ฉ๋ชจ์
๋๋ค.
> **์ฐธ๊ณ **:
>
> - ์ฌ๋ฌ ์ค๋ก ๋ ๋
ธํธ์๋ ์ด ํ์์ ์ฌ์ฉํฉ๋๋ค.
> - ์์๋๊ฑฐ๋ ๋ช
์ฌํด์ผ ํ ํญ๋ชฉ์ด ์ฌ๋ฌ ๊ฐ ์์ ๋๊ฐ ์์ต๋๋ค.Output:
์ฐธ๊ณ : ํ ์ค ๋ฉ๋ชจ์ ๋๋ค.
์ฐธ๊ณ :
- ์ฌ๋ฌ ์ค๋ก ๋ ๋ ธํธ์๋ ์ด ํ์์ ์ฌ์ฉํฉ๋๋ค.
- ์์๋๊ฑฐ๋ ๋ช ์ฌํด์ผ ํ ํญ๋ชฉ์ด ์ฌ๋ฌ ๊ฐ ์์ ๋๊ฐ ์์ต๋๋ค.
๊ด๋ จ ๋งํฌ๋ ๋ ผ๋ฆฌ์ ์ธ ๋ค์ ๋จ๊ณ๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์์ ํ์ต ์ฌ์ ์ ์๋ดํฉ๋๋ค.
- ๋งํฌ๋ ํ์ด์ง์ ๊ธฐ๋ณธ ์ฝํ ์ธ ์๋์ ์นด๋์ ํ์๋ฉ๋๋ค.
- ๋งํฌ๋ ํ์ ํ์ด์ง๊ฐ ์๋ ํ์ด์ง์ ๋ํด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ต์ ํ ์น์
์๋ ๋ชจ๋ ํ์ ํ์ด์ง์ ๋ํ ๋งํฌ๊ฐ ์์ต๋๋ค. ํ์ด์ง ๋ฉํ๋ฐ์ดํฐ์
relatedํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ๋งํฌ๋ฅผ ๋ง๋ญ๋๋ค.
ํ์ด์ง ๋ฉํ๋ฐ์ดํฐ์ related ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ๋งํฌ๋ฅผ ๋ง๋ญ๋๋ค.
---
related:
description: ์ฒซ ๋ฒ์งธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ์์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
links:
- app/building-your-application/routing/defining-routes
- app/building-your-application/data-fetching
- app/api-reference/file-conventions/page
---| ํญ๋ชฉ | ํ์? | ์ค๋ช |
|---|---|---|
title |
์ ํ | ์นด๋ ๋ชฉ๋ก์ ์ ๋ชฉ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๋ค์ ๋จ๊ณ์ ๋๋ค. |
description |
์ ํ | ์นด๋ ๋ชฉ๋ก์ ๋ํ ์ค๋ช ์ ๋๋ค. |
links |
ํ์ | ๋ค๋ฅธ ๋ฌธ์ ํ์ด์ง์ ๋ํ ๋งํฌ ๋ชฉ๋ก์
๋๋ค. ๊ฐ ๋ชฉ๋ก ํญ๋ชฉ์ ์๋ URL ๊ฒฝ๋ก(์ ํ ์ฌ๋์ ์ ์ธ)์ฌ์ผ ํฉ๋๋ค. ์: app/api-reference/file-conventions/page |
๋ค์ด์ด๊ทธ๋จ์ ๋ณต์กํ ๊ฐ๋ ์ ์ค๋ช ํ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ ํฌ๋ Vercel์ ๋์์ธ ๊ฐ์ด๋์ ๋ฐ๋ผ Figma ์ฌ์ฉํ์ฌ ๋ค์ด์ด๊ทธ๋จ์ ๋ง๋ญ๋๋ค.
ํ์ฌ ์ด ๋ค์ด์ด๊ทธ๋จ์ ๋น๊ณต๊ฐ Next.js ์ฌ์ดํธ์ /public ํด๋์ ์์ต๋๋ค. ๋ค์ด์ด๊ทธ๋จ์ ์
๋ฐ์ดํธํ๊ฑฐ๋ ์ถ๊ฐํ๊ณ ์ถ์ผ์๋ฉด ์์ด๋์ด์ ํจ๊ป GitHub ์ด์๋ฅผ ์ด์ด์ฃผ์ธ์.
๋ค์์ ๋ฌธ์์ ์ฌ์ฉํ ์ ์๋ React ์ปดํฌ๋ํธ์
๋๋ค: <Image /> (next/image), <PagesOnly />, <AppOnly />, <Cross />, <Check />.์
๋๋ค. ๋ฌธ์์ <details> ํ๊ทธ ์ธ์ ์์ HTML์ ํ์ฉ๋์ง ์์ต๋๋ค.
์๋ก์ด ์ปดํฌ๋ํธ์ ๋ํ ์์ด๋์ด๊ฐ ์์ผ์๋ฉด GitHub ์ด์๋ฅผ ๊ฐ์คํด ์ฃผ์ธ์.
์ด ์น์ ์๋ ๊ธฐ์ ๋ฌธ์ ์์ฑ์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๋ฌธ์ ์์ฑ ๊ฐ์ด๋๋ผ์ธ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด ์น์ ์๋ ๊ธฐ์ ๋ฌธ์ ์์ฑ์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๋ฌธ์ ์์ฑ ๊ฐ์ด๋๋ผ์ธ์ด ํฌํจ๋์ด ์์ต๋๋ค:
- ๊ฐ์: ํ์ด์ง์ ์ฒซ ๋จ๋ฝ์ ์ฌ์ฉ์์๊ฒ ํด๋น ๊ธฐ๋ฅ์ด ๋ฌด์์ด๋ฉฐ ์ด๋ค ์ฉ๋๋ก ์ฌ์ฉ๋๋์ง ์๋ ค์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ ๋ค์์๋ ์ต์ํ์ ์๋ ์์ ๋๋ ํด๋น API ์ฐธ์กฐ๊ฐ ๋์์ผ ํฉ๋๋ค.
- ๊ท์น: ๊ธฐ๋ฅ์ ๊ท์น์ด ์๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ์ค๋ช ํด์ผ ํฉ๋๋ค.
- ์์ : ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์์ ํด๋น ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
- API ํ ์ด๋ธ: API ํ์ด์ง์๋ ์น์ ์ผ๋ก ๋ฐ๋ก ๊ฐ๊ธฐ ๋งํฌ(๊ฐ๋ฅํ ๊ฒฝ์ฐ)๊ฐ ์๋ ๊ฐ์ ํ ์ด๋ธ์ด ํ์ด์ง ๋งจ ์์ ์์ด์ผ ํฉ๋๋ค.
- ๋ค์ ๋จ๊ณ(๊ด๋ จ ๋งํฌ): ์ฌ์ฉ์์ ํ์ต ์ฌ์ ์ ์๋ดํ๊ธฐ ์ํด ๊ด๋ จ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ํ์์ ๋ฐ๋ผ ์ด ์น์ ์ ์์ ๋กญ๊ฒ ์ถ๊ฐํ์ธ์.
๋ฌธ์ ํ์ด์ง๋ ๋ ๊ฐ์ง ์นดํ ๊ณ ๋ฆฌ๋ก ๋๋ฉ๋๋ค: ๊ฐ๋ ๊ณผ ์ฐธ์กฐ์ ๋๋ค.
๊ฐ๋ ํ์ด์ง๋ ๊ฐ๋ ์ด๋ ๊ธฐ๋ฅ์ ์ค๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐธ์กฐ ํ์ด์ง๋ณด๋ค ๋ ๊ธธ๊ณ ๋ ๋ง์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค. Next.js ๋ฌธ์์์ ๊ฐ๋ ํ์ด์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ์น์ ์ ์์ต๋๋ค. ์ฐธ์กฐ ํ์ด์ง๋ ํน์ API๋ฅผ ์ค๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ์งง๊ณ ์ง์ค์ ์ธ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค. Next.js ๋ฌธ์์์ ์ฐธ์กฐ ํ์ด์ง๋ API ์ฐธ์กฐ ์น์ ์ ์์ต๋๋ค.
์ฐธ๊ณ : ๊ธฐ์ฌํ๋ ํ์ด์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ชฉ์๋ฆฌ์ ์คํ์ผ์ ๋ฐ๋ผ์ผ ํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ๋ ํ์ด์ง๋ ๋ณด๋ค ๊ต์ก์ ์ธ ์ฑ๊ฒฉ์ด ๊ฐํ๋ฉฐ ์ฌ์ฉ์๋ฅผ ์ง์นญํ ๋ ๊ทํ๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐธ์กฐ ํ์ด์ง๋ ์ข ๋ ๊ธฐ์ ์ ์ธ ํ์ด์ง๋ก, '๋ง๋ค๊ธฐ, ์ ๋ฐ์ดํธ, ์๋ฝ'๊ณผ ๊ฐ์ ๋ช ๋ นํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ ๊ทํ๋ผ๋ ๋จ์ด๋ฅผ ์๋ตํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
๋ค์์ ๋ฌธ์ ์ ์ฒด์์ ์ผ๊ด๋ ์คํ์ผ๊ณผ ์ต์์ ์ ์งํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ง์นจ์ ๋๋ค:
- ๋ช
ํํ๊ณ ๊ฐ๊ฒฐํ ๋ฌธ์ฅ์ ์์ฑํ์ธ์. ์ ์ ์ ํผํ์ธ์.
- ์ผํ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฌธ์ฅ์ ์ฌ๋ฌ ๋ฌธ์ฅ์ผ๋ก ๋๋๊ฑฐ๋ ๋ชฉ๋ก์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋ณต์กํ ๋จ์ด๋ฅผ ๋ ๊ฐ๋จํ ๋จ์ด๋ก ๋ฐ๊พธ์ธ์. ์๋ฅผ ๋ค์ด ํ์ฉํ๋ค ๋์ ์ฌ์ฉํ๋ค๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ด๊ฒ์ ์ฃผ์ํ์ธ์. ๋ชจํธํ๊ณ ํผ๋์ค๋ฌ์ธ ์ ์์ผ๋ฏ๋ก ๋ถ๋ถ๋ช
ํ ๊ฒฝ์ฐ ๋ฌธ์ฅ์ ์ฃผ์ด๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ๋ง์ธ์.
- ์๋ฅผ ๋ค์ด, Next.js๋ ์ด๊ฒ์ ์ฌ์ฉํ๋ ๋์ React๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์๋ํ ๋์ ๋ฅ๋ํ๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฅ๋ํ ๋ฌธ์ฅ์ด ๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค.
- ์๋ฅผ ๋ค์ด Next.js๋ React๊ฐ ์๋ React๋ฅผ ์ฌ์ฉํฉ๋๋ค
- ์ฌ์ด, ๋น ๋ฅธ, ๊ฐ๋จํ, ๊ทธ๋ฅ ๋ฑ๊ณผ ๊ฐ์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. ์ด๋ ์ฃผ๊ด์ ์ธ ํํ์ด๋ฉฐ ์ฌ์ฉ์์๊ฒ ์ค๋ง๊ฐ์ ์ค ์ ์์ต๋๋ค.
- ํ์ง ์์, ํ ์ ์์, ๋ถ๊ฐ๋ฅ ๋ฑ๊ณผ ๊ฐ์ ๋ถ์ ์ ์ธ ๋จ์ด๋ ํผํ์ธ์. ์ด๋ ๋
์์๊ฒ ์ค๋ง๊ฐ์ ์ค ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด "ํ์ด์ง ๊ฐ์ ์ฐ๊ฒฐํ๋๋ฐ
<a>ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์" ๋์ *"Link์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง ๊ฐ ๋งํฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค."*๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด "ํ์ด์ง ๊ฐ์ ์ฐ๊ฒฐํ๋๋ฐ
- 2์ธ์นญ(๋น์ )์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ๊ฐ์ธ์ ์ด๊ณ ๋งค๋ ฅ์ ์ ๋๋ค.
- ์ฑ ์ค๋ฆฝ์ ์ธ ์ธ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฒญ์ค์ ์ง์นญํ ๋๋ ๊ฐ๋ฐ์, ์ฌ์ฉ์ ๋๋ ๋ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฝ๋ ์์ ๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ํ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ๋์ด ์๊ณ ์๋ํ๋์ง ํ์ธํ์ธ์.
์ด ๊ฐ์ด๋๋ผ์ธ์ด ๋ชจ๋ ๊ฒ์ ๋ด๊ณ ์์ง๋ ์์ง๋ง ์์ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๊ธฐ์ ๋ฌธ์ ์์ฑ์ ๋ํด ๋ ์์ธํ ์์๋ณด๊ณ ์ถ๋ค๋ฉด Google ๊ธฐ์ ๋ฌธ์ ์์ฑ ๊ณผ์ ์ ํ์ธํ์ธ์.
๋ฌธ์์ ๊ธฐ์ฌํ๊ณ Next.js ์ปค๋ฎค๋ํฐ์ ์ผ์์ด ๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!