NEXT.JS : Defining Routes

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

NEXT.JS

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

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

React์—์„œ ๋ผ์šฐํŒ…ํ•  ๋•Œ๋Š” url์„ ์ง€์ •ํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ render๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์˜ react-router๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

//๊ฐ path์— ์—ฐ๊ฒฐ๋œ ์ปดํฌ๋„ŒํŠธ๋กœ render
path: "/" => <Home />
path: "/about" => <About />

์ผ์ผ์ด ์ปดํฌ๋„ŒํŠธ์™€ path๋ฅผ ์—ฐ๊ฒฐ์ง€์–ด์•ผํ•ด์„œ ๊ต‰์žฅํžˆ ์ˆ˜๋™์ ์ธ ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
BUT, NEXT.JS๋Š” ์ง์ ‘ url์„ ์ ์–ด์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค!

Routes

NEXT.JS์—์„œ์˜ ๋ผ์šฐํ„ฐ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์ด์šฉํ•œ๋‹ค.
๋งŒ์•ฝ /about์ด๋ผ๋Š” ๊ฒฝ๋กœ๋กœ ๋ผ์šฐํŠธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹น๊ฒฝ๋กœ๋ฅผ ์ด๋ฆ„์œผ๋กœ ํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๋ฉด 404์—๋Ÿฌ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, UI๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” aboutํด๋” ์•ˆ์— page.tsx(jsx)ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋„ฃ์–ด์•ผํ•œ๋‹ค.
url์ด ๋ณ€๊ฒฝ๋˜๊ณ , ๋‚ด์šฉ๋„ ์ œ๋Œ€๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์š”์•ฝ

๊ฐ๊ฐ์˜ ํด๋”๋ช…์„ url๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น url์— ๋งž๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ๊ฐ์˜ ํด๋” ์•ˆ์— page.tsx๊ฐ€ ์žˆ์–ด์•ผ๋งŒ ํ•œ๋‹ค.

Not found

์—†๋Š” ๊ฒฝ๋กœ๋ฅผ url์— ์ž…๋ ฅํ–ˆ์„ ๋•Œ 404ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค.
404ํŽ˜์ด์ง€ ๋Œ€์‹  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋””์ž์ธ์˜ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด, appํด๋” ์•ˆ์— not-found.tsx๋ผ๋Š” ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์…ฉํ•˜๊ณ  ์Šคํƒ€์ผ๋ง ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
not-found.tsx์€ Next์˜ ํŠน์ˆ˜ํŒŒ์ผ ์ค‘์— ํ•˜๋‚˜์ด๋ฉฐ ํŠน์ˆ˜ํŒŒ์ผ์˜ ์ข…๋ฅ˜์™€ ๊ธฐ๋Šฅ์€ ๊ณต์‹๋ฌธ์„œ์— ์ž‘์„ฑ๋˜์–ด์žˆ๋‹ค.
๐Ÿ‘‰๐ŸปNEXT.JS ๊ณต์‹๋ฌธ์„œ

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

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