NEXT.JS : The Basic of NEXT.JS

<angeLog/>ยท2024๋…„ 3์›” 5์ผ
0

NEXT.JS

๋ชฉ๋ก ๋ณด๊ธฐ
1/7
post-thumbnail

๐Ÿ’ก๋…ธ๋งˆ๋“œ์ฝ”๋” ๋‹ˆ๊ผฌ์Œค์˜ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.

install(์ˆ˜๋™)

npm init -y //package.json์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ช…๋ น์–ด
npm install react@latest next@latest react-dom@latest //๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „ ์ธ์Šคํ†จ

react@latest : UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€๋ถ„
next@latest : ๋ฆฌ์•กํŠธ ๊ธฐ๋ฐ˜์˜ Framework
react-dom@latest : ๋ฆฌ์•กํŠธ์—์„œ ๊ตฌ์„ฑํ•œ ๊ฒƒ๋“ค์„ ๋ธŒ๋ผ์šฐ์ €์˜ DOM์— ๋ Œ๋”

์‹คํ–‰

package.json์— script๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

"dev": "next dev"

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•˜๋ฉด Next JS๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

page

"dev": "next dev"๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Next JS๋Š” appํด๋” ์•ˆ์˜ page.tsx(jsx)๋ฅผ ์ฐพ๋Š”๋‹ค.
์ˆ˜๋™์„ค์น˜์ด๋ฏ€๋กœ ํ˜„์žฌ์˜ ํŒŒ์ผ๊ตฌ์กฐ์—๋Š” appํด๋”๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋‹ˆ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
VSC์—์„œ ์—๋Ÿฌ๋ฅผ ํ‘œ๊ธฐํ–ˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด TypeScript์„ค์ •์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์‹œํ•ด๋„ ๋œ๋‹ค. (ํ•ด๋‹น ์—๋Ÿฌ๋Š” ํ™•์žฅ์ž๊ฐ€ tsx์ผ ๋•Œ๋งŒ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ์ด๋‹ค.)
๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ๋ง์ด ๋˜๊ธฐ ์ „์— ์ด๋Ÿฐ ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โš  Your page app/page.tsx did not have a root layout. We created app\layout.tsx for you.
root layout์ด ์—†์–ด์„œ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์คฌ๋‹ค๋Š” ๋ฉ”์„ธ์ง€์ด๋‹ค.

layout.tsx(jsx)๊ตฌ์กฐ

layout.tsx๋ฅผ ์‚ดํŽด๋ณด๋ฉด RootLayout๊ฐ€ export default ๋˜๊ณ  ์žˆ๊ณ , metadata๋Š” export๋งŒ ๋˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋Š” export default๊ฐ์ฒด๋Š” ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

layout.tsx(jsx)ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํŒŒ์ผ์ด ์‚ญ์ œ๋ผ์—ˆ๋‹ค๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  ์‚ญ์ œ๋œ layout.tsx(jsx)ํŒŒ์ผ์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์ค€๋‹ค.

profile
์ผ๋‹จ ํ•ด๋ณผ๊ฒŒ์š”!โœ๐Ÿป

0๊ฐœ์˜ ๋Œ“๊ธ€