SSR ๊ฐ์
TanStack Router
ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ
Type-safe ๋ค๋น๊ฒ์ด์
Vite SSR
๋น ๋ฅธ ๋น๋HMR ์ง์
Direct API Call
HTTP ์ค๋ฒํค๋ ์์๋น ๋ฅธ ์๋ต
TanStack Query
Hydration ์๋ํ์บ์ฑ ํตํฉ
Sonamu SSR ์ํคํ ์ฒ
Sonamu๋ TanStack Router + Vite๋ฅผ ์ฌ์ฉํ์ฌ SSR์ ๊ตฌํํฉ๋๋ค.ํต์ฌ ๊ตฌ์ฑ ์์
web/src/TSX
entry-server.generated.tsx - ์๋ฒ ๋ ๋๋ง ์ํธ๋ฆฌ (์๋ ์์ฑ)TSX
entry-client.tsx - ํด๋ผ์ด์ธํธ ํ์ด๋๋ ์ด์
์ํธ๋ฆฌTS
routeTree.gen.ts - TanStack Router ๋ผ์ฐํธ ํธ๋ฆฌ (์๋ ์์ฑ)routes/ - ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํธTSX
__root.tsx - ๋ฃจํธ ๋ ์ด์์TSX
index.tsx - / ๊ฒฝ๋กusers/TSX
$id.tsx - /users/:id ๊ฒฝ๋กentry-server.generated.tsx
์๋ฒ์์ React๋ฅผ ๋ ๋๋งํ๋ ์ง์ ์ ์ ๋๋ค (์๋ ์์ฑ๋จ):entry-client.tsx
ํด๋ผ์ด์ธํธ์์ React๋ฅผ ํ์ด๋๋ ์ด์ ํ๋ ์ง์ ์ ์ ๋๋ค:TanStack Router ๋ผ์ฐํธ ๊ตฌ์กฐ
Root Route
ํ์ผ ๋ผ์ฐํธ
๋์ ๋ผ์ฐํธ
Vite ์ค์
SSR vs CSR
Sonamu๋ ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค:SSR ๋ ๋๋ง (๋ฐ์ดํฐ ํ๋ฆฌ๋ก๋ฉ ์)
- ๋น ๋ฅธ First Contentful Paint
- SEO ์ต์ ํ
- ์ด๊ธฐ ๋ฐ์ดํฐ ์ฆ์ ํ์
CSR ๋ ๋๋ง (๊ธฐ๋ณธ)
- ์๋ฒ ๋ถํ ๊ฐ์
- ๊ฐ๋จํ ๊ตฌํ
- ๋น ๋ฅธ ๊ฐ๋ฐ
๊ฐ๋ฐ vs ํ๋ก๋์
๊ฐ๋ฐ ๋ชจ๋
dev all: API ์๋ฒ๊ฐ Vite๋ฅผ ํตํฉํ์ฌ ํ๋์ ํฌํธ๋ก API + Web ์๋น (HMR ์ง์)dev api: API๋ง ์คํ. Web์ด ํ์ ์๊ฑฐ๋ Vite๋ฅผ ๋ณ๋๋ก ์คํํ๊ณ ์ถ์ ๋ ์ฌ์ฉdev web: Vite ๊ฐ๋ฐ ์๋ฒ๋ง ๋จ๋ ์คํ.--๋ค์ Vite ์ต์ ์ ๋ฌ ๊ฐ๋ฅ