์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

Next.js๋ฅผ Vercel์— ๋ฐฐํฌํ•˜๊ธฐ

React

by loeybho 2024. 5. 31. 19:51

๋ณธ๋ฌธ

๊ณต๋ถ€ ๊ณ„๊ธฐ ๐Ÿ“š

- ์ง€๊ธˆ๊นŒ์ง€ Netlify๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ–ˆ๋Š”๋ฐ, Vercel์„ ํ†ตํ•ด ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์—ฌ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

- ๋‹ˆ๊ผฌ์Œค ์ˆ˜์—… ์ค‘ ์ •๋ฆฌ.

 

๊ฐœ๋… ๐Ÿ“ƒ

 

 

.module.css

๋ฐฐํฌ์ „, CSS๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž.

์—ฌ๊ธฐ์—์„œ ์ค‘์š”ํ•œ ๊ฑด .module.css๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์ด๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ์ด ํŒŒ์ผ์„ import ํ•ด์ฃผ๊ณ , ์ ์šฉํ•˜๊ณ ์žํ•˜๋Š” ๊ณณ์— class์ด๋ฆ„์„ ์ ์šฉํ•œ๋‹ค.

import styles from "../styles/navigation.module.css"
    <nav className={styles.nav}>

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด class๊ฐ„์˜ ์ด๋ฆ„ ๊ฒน์นจ ์ถฉ๋Œ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

cssํŒŒ์ผ ๋‚ด์—์„œ๋Š” ํด๋ž˜์Šค๋‚˜ id๋ช…์ด ๋ฐ˜๋“œ์‹œ ๋“ค์–ด๊ฐ€์•ผ๋งŒ ์ ์šฉ์ด ๋œ๋‹ค.

๋‹ค๋ฅธ configuration์€ ํ•„์š” ์—†๋‹ค. ๋‹จ์ง€ ํŒŒ์ผ ๋ช…์„ ๋ช…ํ™•ํžˆ ์ž‘์„ฑํ•˜๊ณ , ์ž„ํฌํŠธ ํ›„ ํด๋ž˜์Šค๋ช…์„ ์ง€์ •ํ•ด์ฃผ๋ฉด 

 

.nav {
  background-color: red;
  padding: 50px 100px;
}

.nav ul {
  display: flex;
}

 

 

generateMetadata

๋™์ ์œผ๋กœ title์„ ์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ Metadata๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

export async function generateMetadata({ params: { id } }: IParams) {
  const movie = await getMovie(id);
  return {
    title: movie.title,
  };
}

 

 

์ •์ ์œผ๋กœ ์ •ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด?

export const metadata = {
	title: "Home"
};

 

 

 

prefetch

์œ ์ €๊ฐ€ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด๋†“๋Š” ๊ฒƒ. ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

    <div className={styles.movie}>
      <img src={poster_path} alt={title} onClick={onClick} />
      <Link prefetch href={`/movies/${id}`}>
        {title}
      </Link>
    </div>

 

 

 

 

ํ™œ์šฉ ์˜ˆ์‹œ ๐Ÿช„

๋ณธ๊ฒฉ์ ์ธ ๋ฐฐํฌ์— ์•ž์„œ package.json์—์„œ scripts๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.

 

    "build": "next build",
    "start": "next start",

 

build - ์•ฑ์„ ์‹ค์ œ production์šฉ์œผ๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

start - ์•ฑ์„ production ๋ชจ๋“œ๋กœ ์‹œ์ž‘ํ•ด์ค€๋‹ค.

 

-> vercel์ด ํ˜ธ์ถœํ•ด์ค€๋‹ค.

 

vercel์— ๋กœ๊ทธ์ธ ํ›„, ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

* vercel์—์„œ ๋ฐฐํฌํ•˜๊ธฐ ์ „์—, ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ VS code์—์„œ ์ง์ ‘ npm run build๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ฐฐํฌ ๋งํฌ

 

https://next-movies-three-beryl.vercel.app/

'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Next.js ์ž…๋ฌธํ•˜๊ธฐ  (0) 2024.05.15
Styled-component์˜ CSS Resetํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2024.05.04
useCallback  (0) 2024.03.12
useMemo()  (0) 2024.03.12
useReducer()  (0) 2024.03.11

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ