Skip to content

1wos/Nextjs.kr

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Next.js ๋ฌธ์„œ ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์—ฌ๋Ÿฌ๋ถ„์„ ๋งŒ๋‚˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๋Š” Next.js ๋ฌธ์„œ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฌธ์„œ๋ฅผ ๊ธฐ์—ฌํ•˜๊ณ  ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์™œ ๊ธฐ์—ฌํ•ด์•ผ ํ•˜๋‚˜์š”?

์˜คํ”ˆ์†Œ์Šค ์ž‘์—…์€ ๊ฒฐ์ฝ” ๋๋‚˜์ง€ ์•Š์œผ๋ฉฐ ๋ฌธ์„œํ™” ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์€ ์ดˆ๋ณด์ž๊ฐ€ ์˜คํ”ˆ์†Œ์Šค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ฉฐ, ์ˆ™๋ จ๋œ ๊ฐœ๋ฐœ์ž๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ง€์‹์„ ๊ณต์œ ํ•˜๋ฉด์„œ ๋” ๋ณต์žกํ•œ ์ฃผ์ œ๋ฅผ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Next.js ๋ฌธ์„œ์— ๊ธฐ์—ฌํ•จ์œผ๋กœ์จ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋”์šฑ ๊ฐ•๋ ฅํ•œ ํ•™์Šต ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํƒ€๋‚˜ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์„น์…˜์„ ๋ฐœ๊ฒฌํ–ˆ๊ฑฐ๋‚˜ ํŠน์ • ์ฃผ์ œ๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋”๋ผ๋„ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•˜๊ณ  ๊ฐ์‚ฌํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌธ์„œ ์ฝ˜ํ…์ธ ๋Š” Next.js ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๋ ค๋ฉด GitHub์—์„œ ์ง์ ‘ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Workflow

GitHub๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GitHub ์˜คํ”ˆ ์†Œ์Šค ๊ฐ€์ด๋“œ๋ฅผ ์ฝ๊ณ  ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํฌํฌ, ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ œ์ถœ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๊ธฐ๋ณธ ๋ฌธ์„œ ์ฝ”๋“œ๋Š” ๋น„๊ณต๊ฐœ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์žˆ์œผ๋ฉฐ, ์ด ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” Next.js ๊ณต๊ฐœ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋กœ์ปฌ์—์„œ ๋ฌธ์„œ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณ‘ํ•ฉํ•œ ํ›„์—๋Š” nextjs.org์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MDX ์ž‘์„ฑ

๋ฌธ์„œ๋Š” JSX ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜๋Š” ๋งˆํฌ๋‹ค์šด ํ˜•์‹์ธ MDX๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ์— React ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ๊ฐœ์š”๋Š” GitHub ๋งˆํฌ๋‹ค์šด ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

VSCode

๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

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
---

App ๋ฐ Pages ๋ฌธ์„œ

์•ฑ ๋ผ์šฐํ„ฐ์™€ ํŽ˜์ด์ง€ ๋ผ์šฐํ„ฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์€ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ๋ณ„๋„์˜ ์„น์…˜(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

TS ๋ฐ JS Switcher

์–ธ์–ด ์ „ํ™˜๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์ด๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ธ”๋ก์€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด 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 ์ด์Šˆ๋ฅผ ์—ด์–ด์ฃผ์„ธ์š”.

์‚ฌ์šฉ์ž ์ •์˜ ์ปดํฌ๋„ŒํŠธ ๋ฐ HTML

๋‹ค์Œ์€ ๋ฌธ์„œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 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 ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ผ์›์ด ๋˜์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

About

Next.js Docs

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 65.8%
  • TypeScript 30.2%
  • Rust 3.8%
  • CSS 0.2%
  • MDX 0.0%
  • SCSS 0.0%