React๋ฅผ โํฌ์โํ๊ธฐ: ์ฑ์ ์ค์ ๋ชจ์์ ๋ง์ถ ๊ฒฝ๋ ๋ฐํ์ ์คํ
Tanner Linsley๋ TanStack Start๋ฅผ ๋ง๋ค๋ฉฐ React์ ํด๋ผ์ด์ธํธ ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ๊ณ์ ๋ง์์ ๊ฑธ๋ ธ๋ค๊ณ ๋งํ๋ค. Vite๋ก ๋ฒ๋ค๋งํ๋ฉด React๋ ์ฑ ์ฝ๋๊ฐ ํ๋๋ ์คํ๋๊ธฐ ์ ๋ถํฐ ์ฝ 60KB gzip์ ์ฐจ์งํ๋ค. TanStack Router, Query, Store, Form, Virtual์ ๋ชจ๋ ํฉ์น ๊ฒ๋ณด๋ค โ์ ๊ฑฐํ ์ ์๋ ๊ฐ์ฅ ์์ ์กฐ๊ฐโ์ธ React๊ฐ ๋ ์ปธ๋ค๋ ์ ์ด ๋ฌธ์ ์ ์ถ๋ฐ์ ์ด๋ค.
์ฒ์ ๋ ์ฌ๋ฆฐ ํด๋ฒ์ Preact์๋ค. ํ์ง๋ง preact/compat์ React 19์ use() ์๋ฏธ๋ก , server actions, portals, error boundaries, hydration edge์ ์ถฉ๋ถํ ๋ง์ง ์์๋ค. ๊ณ์ shim์ ์๋ ๋ฐฉ์์ด ๋๊ณ , ๊ทธ๋ ๋ฌธ์ ๋ฅผ ๋ค๋ฅด๊ฒ ๋ณด๊ธฐ ์์ํ๋ค. ํ์ํ ๊ฒ์ Preact๊ฐ ์๋๋ผ โReact์ ๊ณต๊ฐ API๋ฅผ ํน์ ๋ฒ์์ ๋ง๊ฒ ๋ค์ ํฌ์ํ ๊ตฌํโ์ด์๋ค.
๊ธ์ ํต์ฌ ๋น์ ๋ โ์ฝ๋๋ materialized viewโ๋ผ๋ ๊ด์ ์ด๋ค. ์์ ์๋ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ๋ ๋น์ฉ์ด ๋๋ฌด ์ปค์ ์ฝ๋ ์์ฒด๋ฅผ ์ง์ค์ ์์ฒ์ฒ๋ผ ๋ค๋ค๋ค. ํ์ง๋ง AI coding agent๊ฐ ์ถฉ๋ถํ ์ธ๊ณ ๋นจ๋ผ์ง๋ฉด, ์๊ณ ๋ฆฌ์ฆยทํ๋กํ ์ฝยทsemantic contract ๊ฐ์ ์์ด๋์ด๊ฐ base table์ด ๋๊ณ , ์ฝ๋๋ ๊ทธ ์์ด๋์ด์ ์ฌ๋ฌ projection ์ค ํ๋๊ฐ ๋ ์ ์๋ค.
๊ทธ๋ React์ public API๋ฅผ base table๋ก ๋ณด๊ณ , TanStack Start์ ํ์ํ ๊ธฐ๋ฅ๋ง ๊ตฌํํ ๋ฐํ์์ ๋ง๋ค์๋ค. concurrent rendering, time slicing, lane scheduler, React DevTools, ์ผ๋ถ Flight client machinery๋ ์ ์ธํ๋ค. ๋์ element model, hooks, keyed diffing, SSR streaming, Suspense, hydration ๋ฑ ํ์ํ ํต์ฌ ํ๋ฉด์ ๋ง์ท๋ค. ๊ธฐ๋ฅ์ core์ toggleable feature๋ก ๋๋ , portal/context/suspense/memo/forwardRef/lazy/class components/hydration ๋ฑ์ ์ฑ ํ์์ ๋ฐ๋ผ stub ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ค.
์ธก์ ๊ฒฐ๊ณผ๋ ๊ณผ๊ฐํ๋ค. React 19 ๊ธฐ์ค react-dom/client๋ ์ฝ 60.3KB gzip์ธ๋ฐ, projection full์ 9.39KB, nano๋ 7.08KB ์์ค์ด๋ค. ๊ฐ์ธ ์ฌ์ดํธ์ tanstack.com์์ ์ค์ ๋ก ๋๋ ค ๋ณธ ๊ฒฐ๊ณผ JS ์ ์ก๋๊ณผ FCP๊ฐ ์ค์๊ณ , TanStack ๊ท๋ชจ ์ฑ์์๋ ๋๋ถ๋ถ parity ์ด์์ ๋ณด์๋ค. ๋จ, RSC-heavy ํ์ด์ง์ LCP๋ ์ผ๋ถ ์
ํ๋๊ณ ์ด๋ known regression์ผ๋ก ๋จ๊ฒผ๋ค.
์ค์ํ ์ ์ ์ด๊ฒ์ โ๋์ฒด Reactโ๋ก ๋ง์ผํ
ํ์ง ์๋๋ค๋ ํ๋๋ค. ํน์ ์๋น์์๊ฒ ๋ง์ถ projection์ ๊ทธ ๋ฒ์์์๋ง ์๋ฏธ๊ฐ ์๊ณ , ์ผ๋ฐ ๋ชฉ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌ๊ธฐํ ์ ์๋ ๋ฒ์ฉ์ฑ์ ๋ด๋ ค๋์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ค. ๊ธ์ React core๋ฅผ ๋ฐ๊พธ์๋ ์ ์์ด๋ผ๊ธฐ๋ณด๋ค, AI ์๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋น์๊ฐ ์๊ธฐ ์ฑ์ shape๋ฅผ ๋ ์ ๊ทน์ ์ผ๋ก ์ดํดํ๊ณ ์ฑ
์์ ธ์ผ ํ๋ค๋ ์ฃผ์ฅ์ ๊ฐ๊น๋ค.
๋น์ฅ ํ ์ฑ์์ React๋ฅผ ์ง์ ํฌ์ํ์๋ ๋ป์ ์๋๋ค. ๋ค๋ง โ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ์ฐ๋ ๊ธฐ๋ฅ์ ๋ฌด์์ด๊ณ , ๋ฒ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ด๋ค ๋น์ฉ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ด๊ณ ์๋๊ฐ?โ๋ฅผ ๋ฌผ์ด๋ณผ ๊ฐ์น๋ ์๋ค. ํนํ ํ๋ ์์ํฌยท๋์์ธ์์คํ
ยทSDK๋ฅผ ๋ง๋๋ ํ์ด๋ผ๋ฉด ๊ธฐ๋ฅ ๋จ์ opt-in, adapter layer, narrow runtime ๊ฐ์ ์ค๊ณ๋ฅผ ๋ ์ง์งํ๊ฒ ๋ณผ ์์ ์ด๋ค.