
[2025. 03. 11 화요일]
next.js를 배우면서 렌더링에 대해서만 한참을 배우고 구분했다.
뭐가 이렇게 많죠..?
사용자 요청시 마다 최신 데이터를 렌더링하기 때문에 실시간 정보를 제공할 때 유리하다.
export default async function SSRPage() {
const res = await fetch('https://api.example.com/data', {
cache: 'no-store',
});
const data = await res.json();
return <div>{data.message}</div>
}
'use client';
import { useEffect, useState } from 'react';
export default function CSRPage() {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
const res = await fetch('https://api.example.com/data');
const data = await res.json();
setData(data);
}
fetchData();
}, []);
return <div>{data ? data.message : 'Loading...'}</div>;
}
쓱
export default async function Page() {
const res = await fetch('https://api.example.com/data', {
cache: 'force-cache'
});
const data = await res.json();
return <div>{data.message}</div>;
}
const ONE_MINUTE_SECONDS = 60;
export default async function Page() {
const res = await fetch('https://api.example.com/data', {
next: {
revalidate: ONE_MINUTE_SECONDS,
}
});
const data = await res.json();
return <div>{data.message}</div>;
}
| 렌더링 방식 | 데이터 최신성 | 성능 | 추천 사용 사례 | SEO 필요성 |
|---|---|---|---|---|
| SSR | 높음 | 중간 | 자주 바뀌는 실시간 데이터 | SEO 유리 |
| CSR | 중간 | 높음 | 사용자 상호작용이 많은 앱 | x |
| SSG | 낮음 | 매우 높음 | 거의 바뀌지 않는 마케팅 페이지 | SEO 유리 |
| ISR | 중간 | 높음 | 블로그나 뉴스 사이트 |