React Router에서는 CSR(Client Side Rendering), SSR(Server Side Rendering), Static Pre-rendering을 지원한다. 각각의 특징과 사용법을 살펴보자.
초기 로드 후, 모든 라우팅과 데이터 로딩을 클라이언트에서 처리한다.
SPA(Single Page Application)를 만들 때 사용한다.
특징
사용법
import type { Config } from "@react-router/dev/config";
export default {
ssr: false, // 서버 사이드 렌더링 비활성화
} satisfies Config;
페이지를 요청할 때마다 서버에서 HTML을 생성해 클라이언트에 전달한다.
특징
사용법
import type { Config } from "@react-router/dev/config";
export default {
ssr: true, // 서버 사이드 렌더링 활성화
} satisfies Config;
💡 추가 팁
clientLoader
를 통해 클라이언트 측 데이터 로딩 가능.빌드 시점에 미리 HTML을 생성해 정적으로 호스팅한다.
SEO 최적화와 빠른 로딩 속도를 위해 사용된다.
특징
사용법
import type { Config } from "@react-router/dev/config";
export default {
async prerender() {
return ["/", "/about", "/contact"]; // 빌드 시 미리 렌더링할 경로 목록
},
} satisfies Config;
"/"
, "/about"
, "/contact"
페이지를 정적 HTML로 생성.렌더링 방식 비교
CSR | SSR | Static Pre-rendering | |
---|---|---|---|
🌐 SEO | ❌ 불리 | ✅ 유리 | ✅ 매우 유리 |
⚡ 첫 페이지 로딩 속도 | 느림 | 빠름 | 매우 빠름 |
🔁 페이지 전환 속도 | 빠름 | 느림 (서버 호출) | 빠름 |
💾 서버 필요 여부 | ❌ | ✅ | ❌ |
🏗️ 빌드 타임 데이터 | 불가 | 불가 | 가능 |
🔄 실시간 데이터 | 가능 | 가능 | 불가 |
🎯 언제 어떤 방식을 사용할까?
💡 Tip: