좋아! 이해하려고 하는 자세 너무 좋아👏
그럼 아~주 쉽게 풀어서 말해줄게!
“풀스택 라우터처럼 진화했다?”
“Remix에서 가져온 아이디어?”
“React Router가 Next.js처럼?”
이게 뭔 말이냐는 거지?
이전에는 React Router가 그냥 “페이지 이동기”였어.
근데 이제는
👉 데이터 가져오기 + 제출 처리 + 에러 처리까지 해주는 진짜 똑똑한 녀석이 됐어!
| 기능 | 예전 버전 (v5~v6 초기) | 지금 (v6.19+) |
|---|---|---|
| 페이지 이동 | ✅ | ✅ |
| 서버에서 데이터 가져오기 | ❌ 직접 fetch 써야 했음 | ✅ loader로 처리 |
| 폼 제출 처리 | ❌ 직접 onSubmit 해야 함 | ✅ action으로 처리 |
| 에러 처리 | ❌ try-catch 해야 함 | ✅ errorElement 자동 적용 |
| 상태 없는 컴포넌트들 | ✅ | ✅ |
| 상태 있는 뷰/UI 처리 (ex. 로딩중) | ❌ | ✅ useFetcher()로 가능 |
| 예전 방식 | 지금 방식 |
|---|---|
| React Router | 📦 단순한 배달원: "이 URL엔 이 컴포넌트 보여줘" |
| React Router 6.19+ | 🍳 요리사 + 종업원 + 계산까지 다 하는 레스토랑 |
Remix는 React 기반 풀스택 프레임워크야.
페이지 이동뿐 아니라 데이터 로딩, 제출, 인증, 에러처리도 다 해줘.
React Router는 Remix 팀이 만들었고,
이제 React Router에도 Remix 기능이 들어오기 시작한 거야!
| 특징 | Next.js | React Router 6.19+ |
|---|---|---|
| 페이지 기반 라우팅 | ✅ | ✅ (파일 기반도 실험중) |
| 서버 사이드 렌더링 (SSR) | ✅ | ⚠️ 일부 가능 (loader) |
| 데이터 pre-fetching | ✅ | ✅ (loader) |
| Form POST 처리 | ✅ (API Routes) | ✅ (action, Form) |
| 에러 페이지 | ✅ | ✅ (errorElement) |
이제는 React Router 하나로도 거의 Next.js 수준의 기능이 가능해진 거야.
“React Router는 이제 단순한 라우터가 아니라,
데이터와 UI 상태까지 통합 관리하는 ‘풀스택급 라우터’로 진화했다” 🎯
필요하면 Remix와 Next.js, React Router의 비교 표도 만들어줄 수 있어!
혹시 Form, loader, action을 직접 써본 적 있어?
실제 사용 예시로 보여줄까? ✨