ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ ์ƒํ™ฉ

vercel์—์„œ github๋ฅผ ์—ฐ๋™ํ•˜์—ฌ main ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์„ ๋ฐฐํฌํ•˜์˜€๋‹ค.

๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ 404 ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค.

 

 

์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์‹œ๋„

 

๐Ÿ“์‹œ๋„ 1 : route path="/*" ์„ค์ •

Home, Dex, Detail ๋ฃจํŠธ ์™ธ์—๋„ ๊ทธ ์™ธ ๋‹ค๋ฅด๊ฒŒ ์ž…๋ ฅ๋˜๋Š” ๋ชจ๋“  ์ฃผ์†Œ์˜ ์ ‘๊ทผ์„ "/*" ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค.

 

path="/*" (์ •์˜๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ) element={<Home />} /> (Home ์ปดํฌ๋„ŒํŠธ๋กœ ๋Œ์•„๊ฐ€๋„๋ก ์ฒ˜๋ฆฌ)

๋”๋ณด๊ธฐ

1๏ธโƒฃ path="/*"

 

  • path="/*"๋Š” **๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•˜๋Š” "์™€์ผ๋“œ์นด๋“œ(Wildcard) ๊ฒฝ๋กœ"**๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ฆ‰, ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ๋กœ(404 ํŽ˜์ด์ง€) ๋˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์ฃผ๋กœ 404 Not Found ํŽ˜์ด์ง€๋‚˜ ํŠน์ • ํŒจํ„ด์„ ๊ฐ€์ง„ ํŽ˜์ด์ง€์˜ ํ•˜์œ„ ๋ผ์šฐํŠธ ์ฒ˜๋ฆฌ์— ํ™œ์šฉ๋œ๋‹ค.

2๏ธโƒฃ ํŠน์ • ๊ฒฝ๋กœ ํ•˜์œ„์—์„œ๋งŒ /* ์‚ฌ์šฉ ์‹œ

  • ํ•˜์œ„ ๊ฒฝ๋กœ์—์„œ์˜ 404 ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • <Route path="/dashboard/*" element={<NotFound />} />   ๐Ÿ‘‰๐Ÿป ๋Œ€์‹œ๋ณด๋“œ ๋‚ด๋ถ€ 404 ์ฒ˜๋ฆฌ
  • /dashboard/other-page (์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ๋กœ)  ๐Ÿ‘‰๐ŸปNotFound ์ปดํฌ๋„ŒํŠธ

 

const Router = () => {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/dex" element={<Dex />} />
        <Route path="/detail" element={<Detail />} />
        <Route path="/*" element={<Home />} />
      </Routes>
    </BrowserRouter>
  );
};

 

 

๐Ÿ“์‹œ๋„ 2 : element์™€ import ํ™•์ธ

path์— ์—ฐ๊ฒฐ๋œ element ํŽ˜์ด์ง€๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” import๋ฅผ ์ •๋ฆฌํ–ˆ๋‹ค.

 

 

 

์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

 

๐Ÿ“vercel.json ์œผ๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ

๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ vercel.json ์œผ๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ

https://vercel.com/docs/projects/project-configuration#buildcommand

 

์‚ฌ์ดํŠธ ๋‚ด์—๋Š” ๋‹ค์–‘ํ•œ json ํŒŒ์ผ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๊ทธ ์ค‘ rewrites ๋ฅผ ์‚ดํŽด๋ณด๋ฉด

ํ•œ๊ตญ์–ด๋กœ ๋ณ€์—ญํ•œ ํŽ˜์ด์ง€

 

source์˜ ๊ฒฝ๋กœ๋ฅผ destination์˜ ๊ฒฝ๋กœ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๋“ฏํ•˜๋‹ค.

 

์ด ์˜ค๋ฅ˜์˜ ์›์ธ์€ Vercel์˜ ์ •์  ํŒŒ์ผ ์„œ๋น„์Šค ๋ฐฉ์‹ ๋•Œ๋ฌธ์ธ๋ฐ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ์ ‘์€ ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.

๋”๋ณด๊ธฐ

๋ฌธ์ œ ์›์ธ: Vercel์˜ ์ •์  ํŒŒ์ผ ์„œ๋น„์Šค ๋ฐฉ์‹

 

๐Ÿ‘‰ React Router๋Š” "ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ผ์šฐํŒ…(Client-Side Routing)"์„ ์‚ฌ์šฉ
๐Ÿ‘‰ ํ•˜์ง€๋งŒ Vercel์€ "์ •์  ํŒŒ์ผ ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„ ๋ผ์šฐํŒ…(Server-Side Routing)"์„ ์‚ฌ์šฉ
๐Ÿ‘‰ /about ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด, Vercel์€ /about/index.html์„ ์ฐพ์ง€๋งŒ, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ 404 ์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

โœ… ์ฆ‰, React Router๋Š” index.html ํ•˜๋‚˜๋กœ ๋ชจ๋“  ๋ผ์šฐํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, Vercel์€ ์ด๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ๊ณ ์นจ ์‹œ 404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ“Œ์•„๋ฌดํŠผ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • src์™€ ๋™์ผํ•œ ์„ ์ƒ์—์„œ vercel.json ํŒŒ์ผ ์ƒ์„ฑ
  • ํŒŒ์ผ ๋‚ด์— ์•„๋ž˜ ๋กœ์ง ์ž‘์„ฑ (Vercel์ด ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ index.html๋กœ ๋ฆฌ๋””๋ ‰ํŠธํ•˜๋„๋ก ์„ค์ •)
    • "/(.*)" → ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธ (์ •๊ทœ์‹)
    • destination: "/index.html" → ์š”์ฒญ๋œ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ index.html๋กœ ๋ฆฌ๋””๋ ‰ํŠธ
  • add, commit, push, PR์„ ํ†ตํ•ด ๋ฐฐํฌ ์‚ฌ์ดํŠธ์— ์ ์šฉ
{
  "rewrites": [
    { "source": "/(.*)", "destination": "/index.html" }
  ]
}

 


์ฐธ๊ณ  ์ž๋ฃŒ :

velog

vercel

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ