๐Ÿค” next/router์˜ push("/") ๋ฌธ์ œ ๋ฐ ํ•ด๊ฒฐ ( ์›์ธ๋ถˆ๋ช… )

๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ๋ฒ—์–ด๋‚˜ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๊ฐ•์ œ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋กœ์ง์„ ๋งŒ๋“œ๋Š” ์ค‘ ์ƒ๊ธด ๋ฒ„๊ทธ(?)์ž…๋‹ˆ๋‹ค.
npm run dev๋กœ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉฐ, npm run build, npm run start๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹ค์ œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๋งฅ๋ฝ์€ ๊ฑฐ์˜ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒํ•˜๊ฒŒ๋„ "/"๋ฅผ ์‚ฌ์šฉ ์‹œ ๋ธŒ๋ผ์šฐ์ €์˜ ํ˜„์žฌ ํƒญ ์ž์ฒด๊ฐ€ ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๊ณ  ์•„๋ฌด ๋™์ž‘๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์—๋Ÿฌ ๋กœ๊ทธ๋„ ์ „ํ˜€ ์—†์–ด์„œ ๋ฌธ์ œ์˜ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ค์„œ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

import { useRouter } from "next/router";

// ๋Œ€์ถฉ ํŠน์ • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
const Enter = () => {
  const router = useRouter();
  
  // ๋กœ๊ทธ์ธ ๊ฒฐ๊ด๊ฐ’
  const [response, setResponse] = useState(null);
  // ๋กœ๊ทธ์ธ ์š”์ฒญ ๋ฐ ๊ฒฐ๊ด๊ฐ’ ๋ฐ›๊ธฐ
  useEffect(() => {
    fetch("/api/users/confirm")
      .then(res => res.json())
      .then(data => setResponse(data));
  }, [setResponse])
  
  // ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ ์‹คํ–‰
  useEffect(() => {
    if(response?.ok) {
        // ์•„๋ž˜ ์ฝ”๋“œ ์‚ฌ์šฉ ์‹œ ๋ธŒ๋ผ์šฐ์ € ์ž์ฒด๊ฐ€ ๋ฉˆ์ถค
        router.push("/");
    	// ์œ„ ์ฝ”๋“œ ๋Œ€์ฒด๋กœ ์•„๋ž˜ ์ฝ”๋“œ ์‚ฌ์šฉ
    	router.push("/#");
    }
  }, [response, router])
  
  return (
    <article>
      // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฏธ๋Š” jsx
    </article>
  )
}

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ