ย
ย
api router๋ ๋น์ฐํ build์ ์๋ฒ๊ฐ ์คํ๋์ง ์๊ธฐ๋๋ฌธ์ ์ ๊ทผํ ์ ์์
๋๋ useEffect๋ด์์ ํธ์ถํ๋๊ฒ์ผ๋ก ํด๊ฒฐ.
ย
(ํด๋ผ์ด์ธํธ๋ก์ง์)
์๋ฒ ์ปดํฌ๋ํธ๋ getServerSideProps์์ ๋ก์ปฌ API๋ฅผ ํธ์ถํ๋ ค๊ณ ํ๋ฉด ๋น๋ ํ์์ ์๋ฒ๊ฐ ๋์ํ์ง ์์ผ๋ฏ๋ก ์คํจํฉ๋๋ค.
ย
1. ์๋ฒ ์ฌ์ด๋ ๋ก์ง์ ์ง์ ํธ์ถ
๋ฌธ์ ์ฝ๋ (์๋ชป๋ ์ ๊ทผ ๋ฐฉ์)
export default async function Page() { const res = await fetch("http://localhost:3000/api/user?uid=123456"); const user = await res.json(); return <div>{user?.name}</div>; }
ํด๊ฒฐ ์ฝ๋ (์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์)
์ฌ๊ธฐ์๋
fetch๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.import { prisma } from '~/lib/prisma'; export default async function Page() { const user = await prisma.user.findUnique({ where: { id: 123456 } }); return <div>{user?.name}</div>; }
2. getServerSideProps์์ ์ง์ ํธ์ถ
๋ฌธ์ ์ฝ๋ (์๋ชป๋ ์ ๊ทผ ๋ฐฉ์)
export async function getServerSideProps() { const res = await fetch("http://localhost:3000/api/user?uid=123456"); const user = await res.json(); return { props: { user }, }; }
ํด๊ฒฐ ์ฝ๋ (์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์)
์ฌ๊ธฐ์๋
fetch๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.import { prisma } from '~/lib/prisma'; export async function getServerSideProps() { const user = await prisma.user.findUnique({ where: { id: 123456 } }); return { props: { user }, }; }
3. ํด๋ผ์ด์ธํธ ์ธก์์ API ํธ์ถ
ํด๋ผ์ด์ธํธ ์ธก์์๋
fetch๋ axios๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, useEffect๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์
๋๋ค.import { useEffect, useState } from 'react'; const ProductList = () => { const [products, setProducts] = useState([]); useEffect(() => { const fetchData = async () => { const res = await fetch('/api/product_list'); const data = await res.json(); setProducts(data); }; fetchData(); }, []); return ( <div> {products.map((product) => ( <div key={product.id}>{product.name}</div> ))} </div> ); }; export default ProductList;
์์ฝ
- ์๋ฒ ์ปดํฌ๋ํธ๋ ์๋ฒ ์ฌ์ด๋ ํจ์: ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ:
fetch๋axios๋ฅผ ์ฌ์ฉํ์ฌ API ๊ฒฝ๋ก๋ฅผ ํธ์ถํฉ๋๋ค.
- API ๊ฒฝ๋ก: ํด๋ผ์ด์ธํธ ์ธก์์๋ง ์ฌ์ฉํ๋๋ก ์ค๊ณํฉ๋๋ค.
ย

