React, Vue, Angular, Svelte, Solid์ ๋ํ ์ค์ ํ๊ฒฝ ์ฑ๋ฅ ๋ฒค์น๋งํฌ ์ฌ์ธต ๋ถ์. ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ๋ช ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ์ธ์.
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ์ฑ๋ฅ ๋๊ฒฐ: ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ค์ ํ๊ฒฝ ๋ฒค์น๋งํฌ
์ญ๋์ ์ธ ์น ๊ฐ๋ฐ์ ์ธ๊ณ์์ ์ด๋ค ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๊ฐ '์ต๊ณ '์ธ์ง์ ๋ํ ๋ ผ์์ ๋์์์ด ๊ณ์๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ข ์ข ๊ฐ๋ฐ์ ๊ฒฝํ, ์ํ๊ณ ๊ท๋ชจ, ํ์ต ๊ณก์ ๋ฑ์ ์ด์ ๋ก ์์ ์ด ์ ํธํ๋ ํ๋ ์์ํฌ๋ฅผ ์นํธํฉ๋๋ค. ํ์ง๋ง ์ต์ข ์ฌ์ฉ์์ ๋น์ฆ๋์ค์๊ฒ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ณด๋ค ์ค์ํ ์งํ๊ฐ ํ๋ ์์ต๋๋ค. ๋ฐ๋ก ์ฑ๋ฅ์ ๋๋ค. ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ์ข์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํ๊ณผ ์ดํ, ์ฌ์ฉ์์ ๋ง์กฑ๊ณผ ๋ถ๋ง์ ๊ฐ๋ฅด๋ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค.
TodoMVC์ ๊ฐ์ ํฉ์ฑ ๋ฒค์น๋งํฌ๋ ๋๋ฆ์ ์ญํ ์ด ์์ง๋ง, ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ์ ํฌ์ฐฉํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ๋ฒค์น๋งํฌ๋ ์ค์ ์ด์ ํ๊ฒฝ์์๋ ๊ฑฐ์ ๋ง์ฃผ์น์ง ์๋ ์๋๋ฆฌ์ค์ธ, ๊ณ ๋ฆฝ๋ ๊ธฐ๋ฅ์ ๋จ๋ ์ผ๋ก ํ ์คํธํฉ๋๋ค. ์ด ๊ธ์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก ํธ์๋ ์ธ๊ณ์ ๊ฑฐ์ธ๋ค์ธ React, Vue, Angular์ ์ฐจ์ธ๋ ๋์ ์๋ค์ธ Svelte, SolidJS๋ฅผ ๋น๊ตํ๋ฉฐ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒค์น๋งํฌ๋ฅผ ์ฌ์ธต์ ์ผ๋ก ๋ถ์ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ด๋ก ์ ์ธ ๋ ผ์์ ๋์ด, ์ฌ๋ฌ๋ถ์ด ๋ค์ ํ๋ก์ ํธ๋ฅผ ์ํด ์ ๋ณด์ ๊ธฐ๋ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋ ์ค์ง์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ค์ ํ๊ฒฝ ๋ฒค์น๋งํฌ๊ฐ ์ค์ํ ์ด์
๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ธฐ์ ์์, ํฉ์ฑ ๋ฒค์น๋งํฌ์ ์ค์ ํ๊ฒฝ ๋ฒค์น๋งํฌ์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํฉ์ฑ ํ ์คํธ๋ ์ข ์ข 1,000๊ฐ์ ํ ์ผ ๋ชฉ๋ก ํญ๋ชฉ์ ์์ฑํ๊ณ ์ญ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋จ์ผํ๊ณ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ด์ ์ ๋ง์ถฅ๋๋ค. ์ด๋ ํ๋ ์์ํฌ์ ๋ ๋๋ง ์์ง์ ์คํธ๋ ์ค ํ ์คํธํ๋ ๋ฐ๋ ํ๋ฅญํ์ง๋ง, ๋ค์๊ณผ ๊ฐ์ ์ ์ ๋ํด์๋ ๊ฑฐ์ ์๋ ค์ฃผ์ง ์์ต๋๋ค:
- ์ด๊ธฐ ๋ก๋ฉ ์ฑ๋ฅ: ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ์์ ์ฒ์ ๋ฐฉ๋ฌธํ๋ ์ฌ์ฉ์์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅํด์ง๋๊ฐ? ์ฌ๊ธฐ์๋ ๋ฒ๋ค ํฌ๊ธฐ, ํ์ฑ ์๊ฐ, ํ์ด๋๋ ์ด์ ์ ๋ต์ด ํฌํจ๋ฉ๋๋ค.
- ๋ณต์กํ ์ํ ๊ด๋ฆฌ: ํ๋ ์์ํฌ๊ฐ ์ ์ญ ์ํ๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ๊ด๋ จ ์๋ ์ปดํฌ๋ํธ ๊ฐ์ ์ํธ์์ฉ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋๊ฐ?
- API ์ง์ฐ ์๊ฐ ํตํฉ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ ๋ ๋๋งํด์ผ ํ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ด๋ ํ๊ฐ?
- ๋ผ์ฐํ ์ฑ๋ฅ: ์ฌ์ฉ์๊ฐ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA) ๋ด์์ ๋ค๋ฅธ ํ์ด์ง๋ ๋ทฐ ์ฌ์ด๋ฅผ ์ผ๋ง๋ ๋น ๋ฅด๊ณ ๋ถ๋๋ฝ๊ฒ ์ด๋ํ ์ ์๋๊ฐ?
์ค์ ํ๊ฒฝ ๋ฒค์น๋งํฌ๋ ์ด๋ฌํ ์๋๋ฆฌ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์ ํฉ๋๋ค. ๊ฐ ํ๋ ์์ํฌ๋ก ๋์ผํ๊ณ ์ ๋นํ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํจ์ผ๋ก์จ, ์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๋น์ฆ๋์ค ๋ชฉํ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ์ฑ๋ฅ ์งํ๋ฅผ ์ธก์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์งํ๋ค์ ์ด์ ๊ตฌ๊ธ ๊ฒ์ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ถ๊ฐ ๋ ์ฝ์ด ์น ๋ฐ์ดํ(CWV)๊ณผ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์์ต๋๋ค. ์์ปจ๋, ์ฑ๋ฅ์ ๋จ์ํ ๊ธฐ์ ์ ์ธ ๊ด์ฌ์ฌ๊ฐ ์๋๋ผ SEO ๋ฐ ๋น์ฆ๋์ค ํ์ ์์์ ๋๋ค.
์ฐธ๊ฐ์: ๊ฐ๋ตํ ๊ฐ์
์ฐ๋ฆฌ๋ ์ค๋๋ ์ํ๊ณ์์ ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๊ณ ํฅ๋ฏธ๋ก์ด ๋ค์ฏ ๊ฐ์ง ํ๋ ์์ํฌ๋ฅผ ์ ํํ์ต๋๋ค. ๊ฐ๊ฐ์ ๋ค๋ฅธ ์ฒ ํ๊ณผ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ ์ฑ๋ฅ ํน์ฑ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
React (v18)
Meta๊ฐ ๊ฐ๋ฐํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ React๋ ํ๊ณ ํ ์์ฅ ์ ๋์ฃผ์์ ๋๋ค. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๊ฐ์ DOM(VDOM)์ ๋์คํํ์ต๋๋ค. VDOM์ ์ค์ DOM์ ์ธ๋ฉ๋ชจ๋ฆฌ ํํ ์ญํ ์ ํ์ฌ React๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ผ๊ด ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ฐฉ๋ํ ์ํ๊ณ์ ์ธ์ฌ ํ ๋๋ถ์ ์ ์ธ๊ณ ๋ง์ ๊ธฐ์ ์์ ๊ธฐ๋ณธ ์ ํ์ง๊ฐ ๋๊ณ ์์ต๋๋ค.
Vue (v3)
Vue๋ ์ข ์ข ์ ์ง์ ์ธ ํ๋ ์์ํฌ๋ก ๋ฌ์ฌ๋ฉ๋๋ค. ์ ๊ทผํ๊ธฐ ์ฌ์ด ํ์ต ๊ณก์ , ํ๋ฅญํ ๋ฌธ์, ์ ์ฐ์ฑ์ผ๋ก ์ ๋ช ํฉ๋๋ค. Vue 3๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์๋ก์ด ๋ฐ์์ฑ ์์คํ ๊ณผ ํ ํ๋ฆฟ์ ๊ณ ๋๋ก ์ต์ ํํ ์ ์๋ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ์๋นํ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ์์ต๋๋ค. React์ ์ ์ฌํ๊ฒ ๊ฐ์ DOM์ ์ฌ์ฉํฉ๋๋ค.
Angular (v16)
Google์ Angular๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ธฐ๋ณด๋ค๋ ํ๋ซํผ์ ๊ฐ๊น์ต๋๋ค. ๋ผ์ฐํ ๋ถํฐ ์ํ ๊ด๋ฆฌ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ํฌ๊ด์ ์ด๊ณ ๋ ์์ ์ธ ๊ท์น์ ๊ฐ์ง(opinionated) ํ๋ ์์ํฌ์ ๋๋ค. ์ญ์ฌ์ ์ผ๋ก ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ํฐ ๊ฒ์ผ๋ก ์๋ ค์ก์ง๋ง, Ivy ์ปดํ์ผ๋ฌ, ํธ๋ฆฌ ์์ดํน, ๊ทธ๋ฆฌ๊ณ ์๊ทธ๋๊ณผ ๋ ๋ฆฝํ ์ปดํฌ๋ํธ์ ๋์ ์ผ๋ก ์ต์ ๋ฒ์ ์์๋ ์ฑ๋ฅ ๋ฉด์์ ํจ์ฌ ๋ ๊ฒฝ์๋ ฅ ์๊ฒ ๋์์ต๋๋ค.
Svelte (v4)
Svelte๋ ๊ธ์ง์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. ๋น๋ ์์ ์ ์คํ๋๋ ์ปดํ์ผ๋ฌ๋ก, Svelte ์ปดํฌ๋ํธ๋ฅผ ๊ณ ๋๋ก ์ต์ ํ๋ ๋ช ๋ นํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํํ์ฌ DOM์ ์ง์ ์กฐ์ํฉ๋๋ค. ์ด๋ ๊ฐ์ DOM์ด ์์ผ๋ฉฐ, ํ๋ก๋์ ๋ฒ๋ค์ ํ๋ ์์ํฌ ์ข ์์ ์ธ ๋ฐํ์ ์ฝ๋๊ฐ ๊ฑฐ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์ ๋ถ๋ด์ ๋ธ๋ผ์ฐ์ ์์ ๋น๋ ๋จ๊ณ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ์ฒ ํ์ ๋๋ค.
SolidJS (v1.7)
SolidJS๋ ์ข ์ข ์ฑ๋ฅ ์ฐจํธ์์ ์์๊ถ์ ์ฐจ์งํ๋ฉฐ ์๋นํ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค. JSX๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ React ๊ฐ๋ฐ์์๊ฒ ์น์ํ๊ฒ ๋๊ปด์ง์ง๋ง, ๊ฐ์ DOM์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋์ , ๋ง์น ์คํ๋ ๋์ํธ์ฒ๋ผ ์ธ๋ถํ๋ ๋ฐ์์ฑ ์์คํ ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ์ดํฐ ์กฐ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ ์ฒด ์ปดํฌ๋ํธ ํจ์๋ฅผ ๋ค์ ์คํํ์ง ์๊ณ , ๊ทธ ๋ฐ์ดํฐ์ ์์กดํ๋ DOM์ ์ ํํ ๋ถ๋ถ๋ง ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ด๋ ์ธ๊ณผ์์ ๊ณผ ๊ฐ์ ์ ๋ฐํจ๊ณผ ๋๋ผ์ด ์๋๋ฅผ ๊ฒฐ๊ณผ๋ก ๋ณ์ต๋๋ค.
๋ฒค์น๋งํฌ ์ ํ๋ฆฌ์ผ์ด์ : "๊ธ๋ก๋ฒ ์ธ์ฌ์ดํธ ๋์๋ณด๋"
์ด ํ๋ ์์ํฌ๋ค์ ํ ์คํธํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ "๊ธ๋ก๋ฒ ์ธ์ฌ์ดํธ ๋์๋ณด๋"๋ผ๋ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์์ต๋๋ค. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๋น์ฆ๋์ค ๋๊ตฌ๋ฅผ ๋ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ค์ ๊ธฐ๋ฅ๋ค์ ํฌํจํฉ๋๋ค:
- ์ธ์ฆ: ๋ชจ์ ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ํ๋ฆ.
- ๋์๋ณด๋ ํํ์ด์ง: ๋ชจ์ API์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ก ์ฌ๋ฌ ์์ฝ ์นด๋์ ์ฐจํธ๋ฅผ ํ์ํฉ๋๋ค.
- ๋์ฉ๋ ๋ฐ์ดํฐ ํ ์ด๋ธ ํ์ด์ง: 1,000๊ฐ์ ํ๊ณผ 10๊ฐ์ ์ด๋ก ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ ๋๋งํ๋ ํ์ด์ง.
- ์ธํฐ๋ํฐ๋ธ ํ ์ด๋ธ ๊ธฐ๋ฅ: ํด๋ผ์ด์ธํธ ์ธก ์ ๋ ฌ, ํํฐ๋ง ๋ฐ ํ ์ ํ.
- ์์ธ ๋ณด๊ธฐ: ํ ์ด๋ธ์์ ์ ํ๋ ํ์ ์์ธ ํ์ด์ง๋ก ํด๋ผ์ด์ธํธ ์ธก ๋ผ์ฐํ .
- ์ ์ญ ์ํ: ์ธ์ฆ๋ ์ฌ์ฉ์์ UI ํ ๋ง(๋ผ์ดํธ/๋คํฌ ๋ชจ๋)๋ฅผ ์ํ ๊ณต์ ์ํ.
์ด ์ค์ ์ ํตํด ์ด๊ธฐ ๋ก๋ฉ ๋ฐ API ๋ฐ์ดํฐ ๋ ๋๋ง๋ถํฐ ๋์ฉ๋ ๋ฐ์ดํฐ์ ์์์ ๋ณต์กํ UI ์ํธ์์ฉ์ ๋ฐ์์ฑ๊น์ง ๋ชจ๋ ๊ฒ์ ์ธก์ ํ ์ ์์ต๋๋ค.
๋ฐฉ๋ฒ๋ก : ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ
๊ณต์ ํ ๋น๊ต๋ฅผ ์ํด ํฌ๋ช ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํ ์คํธ ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋๊ตฌ: Google Lighthouse (์ํฌ๋ฆฟ ์ฐฝ์์ ์คํ) ๋ฐ Chrome DevTools ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ.
- ํ๊ฒฝ: ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ์ฉ์ผ๋ก ๋น๋๋์ด ๋ก์ปฌ์์ ์ ๊ณต๋์์ต๋๋ค.
- ํ ์คํธ ์กฐ๊ฑด: ์ค์ ๋ชจ๋ฐ์ผ ์ฌ์ฉ์๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ๋ชจ๋ ํ ์คํธ๋ 4๋ฐฐ CPU ์๋ ์ ํ์ ๋น ๋ฅธ 3G ๋คํธ์ํฌ ์ค๋กํ๋ง ์กฐ๊ฑด์์ ์คํ๋์์ต๋๋ค. ์ด๋ ๊ฒฐ๊ณผ๊ฐ ๊ณ ์ฑ๋ฅ ๊ฐ๋ฐ์ ํ๋์จ์ด์ ์ํด ์๊ณก๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ์ฃผ์ ์ธก์ ์งํ:
- ์ด๊ธฐ JS ๋ฒ๋ค ํฌ๊ธฐ (gzipped): ๋ธ๋ผ์ฐ์ ๊ฐ ์ฒซ ๋ฐฉ๋ฌธ ์ ๋ค์ด๋ก๋, ํ์ฑ, ์คํํด์ผ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์.
- ์ต์ด ์ฝํ ์ธ ํ ํ์ธํธ (FCP): ์ฒซ ๋ฒ์งธ DOM ์ฝํ ์ธ ์กฐ๊ฐ์ด ๋ ๋๋ง๋๋ ์์ ์ ํ์ํฉ๋๋ค.
- ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ (LCP): ๋ทฐํฌํธ์์ ๊ฐ์ฅ ํฐ ๊ฐ์์ ์ฝํ ์ธ ์์๊ฐ ๋ ๋๋ง๋๋ ์์ ์ ์ธก์ ํฉ๋๋ค. ํต์ฌ ์ฝ์ด ์น ๋ฐ์ดํ์ ๋๋ค.
- ์ํธ์์ฉ๊น์ง์ ์๊ฐ (TTI): ํ์ด์ง๊ฐ ์์ ํ ์ํธ์์ฉ ๊ฐ๋ฅํด์ง๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ.
- ์ด ์ฐจ๋จ ์๊ฐ (TBT): ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ฐจ๋จ๋์ด ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐฉํดํ ์ด ์๊ฐ์ ์ธก์ ํฉ๋๋ค. ์๋ก์ด INP(Interaction to Next Paint) ์ฝ์ด ์น ๋ฐ์ดํ๊ณผ ์ง์ ์ ์ธ ์๊ด๊ด๊ณ๊ฐ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋: ์ด๊ธฐ ๋ก๋ฉ ํ์ ์ฌ๋ฌ ์ํธ์์ฉ ํ์ ์ธก์ ๋ ํ ํฌ๊ธฐ.
๊ฒฐ๊ณผ: ์ ๋ฉด ๋น๊ต
๋ฉด์ฑ ์กฐํญ: ์ด ๊ฒฐ๊ณผ๋ ์ ํฌ์ ํน์ ๋ฒค์น๋งํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด ์์น๋ ๊ฐ ํ๋ ์์ํฌ์ ์ฑ๋ฅ ํน์ฑ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ, ์ฌ๋ฌ๋ถ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ ์ ์์ต๋๋ค.
๋ผ์ด๋ 1: ์ด๊ธฐ ๋ก๋ฉ ๋ฐ ๋ฒ๋ค ํฌ๊ธฐ
์๋ก์ด ์ฌ์ฉ์์๊ฒ ์ฒซ์ธ์์ ๋ชจ๋ ๊ฒ์ ๋๋ค. ์ด ๋ผ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ๋ ๋๋งํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ ์ ๋ก๋๋ค.
- Svelte: ์น์. gzipped JS ๋ฒ๋ค์ด ๋ถ๊ณผ ~9 KB์ ๋ถ๊ณผํ Svelte๊ฐ ํ์คํ ์ ๋์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ์ฒ๋ฆฌํด์ผ ํ ํ๋ ์์ํฌ ์ฝ๋๊ฐ ๊ฑฐ์ ์์๊ธฐ ๋๋ฌธ์ FCP์ LCP ์ ์๊ฐ ๋ฐ์ด๋ฌ์ต๋๋ค. ๋์๋ณด๋๋ ๊ฑฐ์ ์ฆ์ ๋ํ๋ฌ์ต๋๋ค.
- SolidJS: ๊ทผ์ํ 2์. ๋ฒ๋ค ํฌ๊ธฐ๋ ~12 KB๋ก ์ฝ๊ฐ ๋ ์ปธ์ต๋๋ค. ์ฑ๋ฅ์ Svelte์ ๊ฑฐ์ ๋์ผํ์ฌ ๋งค์ฐ ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋ฉ ๊ฒฝํ์ ์ ๊ณตํ์ต๋๋ค.
- Vue: ๊ฐ๋ ฅํ ์ฑ๋ฅ. Vue์ ๋ฒ๋ค์ ~35 KB๋ก ์ค์ํ ์์ค์ด์์ต๋๋ค. ์ปดํ์ผ๋ฌ ์ต์ ํ๊ฐ ๋น์ ๋ฐํ์ฌ ๋งค์ฐ ๊ฒฝ์๋ ฅ ์๋ ๋น ๋ฅธ LCP์ TTI๋ฅผ ์ ๊ณตํ์ต๋๋ค.
- React: ์ค์๊ถ. `react`์ `react-dom`์ ์กฐํฉ์ผ๋ก ๋ฒ๋ค ํฌ๊ธฐ๋ ~48 KB๊ฐ ๋์์ต๋๋ค. ๊ฒฐ์ฝ ๋๋ฆฌ์ง๋ ์์์ง๋ง, VDOM์ ๊ตฌ์ถํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ด๋๋ ์ด์ ํ๋ ์์ ๋๋ฌธ์ TTI๊ฐ ์ ๋ ์ฃผ์๋ค๋ณด๋ค ๋์ ๋๊ฒ ๊ธธ์์ต๋๋ค.
- Angular: ๊ฐ์ ๋์์ง๋ง ์ฌ์ ํ ๊ฐ์ฅ ํผ. Angular์ ๋ฒ๋ค์ ~65 KB๋ก ๊ฐ์ฅ ์ปธ์ต๋๋ค. ์ด๋ ์ด์ ๋ฒ์ ์ ๋นํด ์์ฒญ๋ ๊ฐ์ ์ด์ง๋ง, ์ด๊ธฐ ํ์ฑ ๋ฐ ๋ถํธ์คํธ๋ํ ๋น์ฉ์ด ์ฌ์ ํ ๊ฐ์ฅ ๋์ ์ด ํ ์คํธ์์ ๊ฐ์ฅ ๋๋ฆฐ FCP์ LCP๋ฅผ ๊ธฐ๋กํ์ต๋๋ค.
ํต์ฐฐ: ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ด ์ ๋์ ์ผ๋ก ์ค์ํ ํ๋ก์ ํธ(์: ์ ์์๊ฑฐ๋ ๋๋ฉ ํ์ด์ง, ๋ง์ผํ ์ฌ์ดํธ)์ ๊ฒฝ์ฐ, Svelte๋ Solid์ ๊ฐ์ ์ปดํ์ผ๋ฌ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ ์ต์ํ์ ๋ฐํ์ ๊ณต๊ฐ ๋๋ถ์ ๋๋ ทํ๊ณ ์ธก์ ๊ฐ๋ฅํ ์ด์ ์ ๊ฐ์ง๋๋ค.
๋ผ์ด๋ 2: ๋ฐํ์ ๋ฐ ์ํธ์์ฉ ์ฑ๋ฅ
์ฑ์ด ๋ก๋๋ ํ ์ฌ์ฉ์ฑ์ ์ด๋ค๊ฐ์? ์ฐ๋ฆฌ๋ 1,000๊ฐ ํ์ ๋ฐ์ดํฐ ํ ์ด๋ธ์์ ์ง์ค์ ์ธ ์์ ์ ์ํํ์ฌ ์ด๋ฅผ ํ ์คํธํ์ต๋๋ค: ์ด ๊ธฐ์ค ์ ๋ ฌ๊ณผ ๋ชจ๋ ์ ์ ๊ฒ์ํ๋ ํ ์คํธ ํํฐ ์ ์ฉ.
- SolidJS: ์น์. Solid์ ์ฑ๋ฅ์ ๊ฒฝ์ด์ ์ด์์ต๋๋ค. ์ ๋ ฌ๊ณผ ํํฐ๋ง์ ์ฆ๊ฐ์ ์ธ ๋๋์ด์์ต๋๋ค. ์ธ๋ถํ๋ ๋ฐ์์ฑ ๋๋ถ์ ๋ณ๊ฒฝ์ด ํ์ํ DOM ๋ ธ๋๋ง ๊ฑด๋๋ ธ์ต๋๋ค. TBT๋ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ๋ฎ์์ผ๋ฉฐ, ์ด๋ ๋ฌด๊ฑฐ์ด ๊ณ์ฐ ์ค์๋ ๋ธ๋กํน ์๋ UI๋ฅผ ์๋ฏธํฉ๋๋ค.
- Svelte: ํ์ํ ์ฑ๋ฅ. Svelte๋ Solid ๋ฐ๋ก ๋ค๋ฅผ ์ด์์ต๋๋ค. ์ปดํ์ผ๋ ์ง์ ์ ์ธ DOM ์กฐ์์ ๋งค์ฐ ํจ์จ์ ์ด์์ต๋๋ค. ์ฌ์ฉ์ ๊ฒฝํ์ ์ ์ฐํ๊ณ ๋ฐ์์ฑ์ด ์ข์์ผ๋ฉฐ TBT๋ ๋งค์ฐ ๋ฎ์์ต๋๋ค.
- Vue: ๋งค์ฐ ์ข์ ์ฑ๋ฅ. Vue์ ๋ฐ์์ฑ ์์คํ ์ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ์ต๋๋ค. Solid๋ Svelte์ ๋นํด ํํฐ๋ง ์ ๊ฑฐ์ ๊ฐ์งํ ์ ์๋ ๋ฏธ์ธํ ์ง์ฐ์ด ์์์ง๋ง, ์ ๋ฐ์ ์ธ ๊ฒฝํ์ ํ๋ฅญํ๊ณ ๋๋ค์์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ง์กฑ์ํฌ ๊ฒ์ ๋๋ค.
- React: ์ข์ง๋ง, ์ต์ ํ ํ์. ๊ธฐ๋ณธ ์ค์ ์ React ๊ตฌํ์ ํฐ ํ ์ด๋ธ์ ํํฐ๋งํ ๋ ๋์ ๋๋ ์ง์ฐ์ ๋ณด์์ต๋๋ค. 1,000๊ฐ ํ ์ปดํฌ๋ํธ๋ฅผ ๋ค์ ๋ ๋๋งํ๋ ๋น์ฉ์ด ๋ง์ด ๋ค์ด ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ ์ ์ฐจ๋จ๋์์ต๋๋ค. ์ด๋ ํ ์ปดํฌ๋ํธ์ `React.memo`๋ฅผ, ํํฐ๋ง ๋ก์ง์ `useMemo`๋ฅผ ์๋์ผ๋ก ์ ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์์ต๋๋ค. ์ต์ ํ ํ ์ฑ๋ฅ์ ์ข์์ก์ง๋ง, ์ถ๊ฐ์ ์ธ ๊ฐ๋ฐ์ ๋ ธ๋ ฅ์ด ํ์ํ์ต๋๋ค.
- Angular: ์ข์ง๋ง, ๋ฏธ๋ฌํ ์ฐจ์ด ์กด์ฌ. Angular์ ๊ธฐ๋ณธ ๋ณ๊ฒฝ ๊ฐ์ง ๋ฉ์ปค๋์ฆ๋ React์ ์ ์ฌํ๊ฒ ํํฐ๋ง ์์ ์์ ์ฝ๊ฐ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ํ์ง๋ง ํ ์ด๋ธ ์ปดํฌ๋ํธ๋ฅผ `OnPush` ๋ณ๊ฒฝ ๊ฐ์ง ์ ๋ต์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํ์ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์ด ๋งค์ฐ ๋ฐ์์ฑ์ด ์ข์์ก์ต๋๋ค. Angular์ ์๋ก์ด ์๊ทธ๋ ๊ธฐ๋ฅ์ ์๋ง๋ ์ด๋ฅผ ์ ๋ ์ฃผ์๋ค๊ณผ ๋๋ฑํ ์์ค์ผ๋ก ๋์ด์ฌ๋ฆด ๊ฒ์ ๋๋ค.
ํต์ฐฐ: ์ํธ์์ฉ์ด ๋ง๊ณ ๋ฐ์ดํฐ ์ง์ฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, Solid์ Svelte์ ์ํคํ ์ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ธ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. React๋ Vue์ ๊ฐ์ VDOM ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ถฉ๋ถํ ๋ฅ๋ ฅ์ด ์์ง๋ง, ๋ณต์ก์ฑ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ฐ๋ฐ์๊ฐ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ์ ์ ๋ํด ๋ ์์ํด์ผ ํ ์ ์์ต๋๋ค.
๋ผ์ด๋ 3: ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
์ต์ ๋ฐ์คํฌํฑ์์๋ ๋ ์ค์ํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ์ฌ์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ ์ฅ์๊ฐ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ ค์ง๊ณผ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ์ฌ์ ํ ์ค์ํฉ๋๋ค.
- Svelte & SolidJS: ๊ฐ์ฅ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ๊ณต๋ ์ ๋๋ฅผ ์ฐจ์งํ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ VDOM์ด ์๊ณ ์ต์ํ์ ๋ฐํ์๋ง ์์ด ๊ฐ๋ณ๊ณ ํจ์จ์ ์ด์์ต๋๋ค.
- Vue: VDOM ๋ฐ ๋ฐ์์ฑ ์์คํ ์ผ๋ก ์ธํด ์ ๋ ์ฃผ์๋ค๋ณด๋ค ์ฝ๊ฐ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ์ง๋ง, ์ฌ์ ํ ๋งค์ฐ ํจ์จ์ ์ด์์ต๋๋ค.
- React: VDOM๊ณผ ํ์ด๋ฒ ์ํคํ ์ฒ ์ค๋ฒํค๋๋ก ์ธํด ๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ์ต๋๋ค.
- Angular: ํฌ๊ด์ ์ธ ํ๋ ์์ํฌ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ๊ฐ์ง๋ฅผ ์ํ Zone.js์ ๊ฒฐ๊ณผ๋ก ๊ฐ์ฅ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ธฐ๋กํ์ต๋๋ค.
ํต์ฐฐ: ๋ฆฌ์์ค๊ฐ ์ ํ๋ ๊ธฐ๊ธฐ๋ฅผ ๋์์ผ๋ก ํ๊ฑฐ๋ ๋งค์ฐ ๊ธด ์ธ์ ๋์ ์ด์ด๋์ด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, Svelte์ Solid์ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํค๋๋ ์๋นํ ์ด์ ์ด ๋ ์ ์์ต๋๋ค.
์์น ๊ทธ ๋๋จธ: ์ ์ฑ์ ์์ธ
์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ ์ด์ผ๊ธฐ์ ์ค์ํ ๋ถ๋ถ์ ๋งํด์ฃผ์ง๋ง ์ ๋ถ๋ ์๋๋๋ค. ํ๋ ์์ํฌ ์ ํ์ ํ, ํ๋ก์ ํธ ๋ฒ์, ์ฅ๊ธฐ ๋ชฉํ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
๊ฐ๋ฐ์ ๊ฒฝํ(DX) ๋ฐ ํ์ต ๊ณก์
- Vue์ Svelte๋ ์ข ์ข ๊ฐ์ฅ ์พ์ ํ DX์ ๊ฐ์ฅ ์๋งํ ํ์ต ๊ณก์ ์ ๊ฐ์ง ๊ฒ์ผ๋ก ์นญ์ฐฌ๋ฐ์ต๋๋ค. ๋ฌธ๋ฒ์ด ์ง๊ด์ ์ด๊ณ ๋ฌธ์๊ฐ ์ต๊ณ ์์ค์ ๋๋ค.
- React์ JSX์ ํ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๊ฐ๋ ฅํ์ง๋ง, ํนํ ๋ฉ๋ชจ์ด์ ์ด์ ์ด๋ ์ดํํธ ์์กด์ฑ ๊ฐ์ ๊ฐ๋ ์ฃผ๋ณ์์ ๋ ๊ฐํ๋ฅธ ํ์ต ๊ณก์ ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- SolidJS๋ React ๊ฐ๋ฐ์๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ์ตํ ์ ์์ง๋ง, ์ธ๋ถํ๋ ๋ฐ์์ฑ์ ์ดํดํ๊ธฐ ์ํด ์ ์ ๋ชจ๋ธ์ ์ ํ์ด ํ์ํฉ๋๋ค.
- Angular์ ๋ ์์ ์ธ ๊ท์น๊ณผ ํ์ ์คํฌ๋ฆฝํธ ๋ฐ ์์กด์ฑ ์ฃผ์ ๊ณผ ๊ฐ์ ๊ฐ๋ ์ ๋ํ ์์กด์ฑ์ ๊ฐ์ฅ ๊ฐํ๋ฅธ ํ์ต ๊ณก์ ์ ์ ์ํ์ง๋ง, ์ด๋ฌํ ๊ตฌ์กฐ๋ ๋๊ท๋ชจ ํ์์ ์ผ๊ด์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ํ๊ณ ๋ฐ ์ปค๋ฎค๋ํฐ ์ง์
- React๋ ์ด ๋ถ์ผ์์ ๋ ๋ณด์ ์ธ ์ ๋์ฃผ์์ ๋๋ค. ๋ง์ฃผ์น ์ ์๋ ๊ฑฐ์ ๋ชจ๋ ๋ฌธ์ ์ ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ ๋๋ ํํ ๋ฆฌ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ๊ฑฐ๋ํ ๊ธ๋ก๋ฒ ์ปค๋ฎค๋ํฐ๋ ๋๋ผ์ด ์์ ๋ง์ ์ ๊ณตํฉ๋๋ค.
- Vue์ Angular๋ ๊ฐ๋ ฅํ ๊ธฐ์ ์ ์ง์๊ณผ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ปค๋ฎค๋ํฐ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ถ ๋งค์ฐ ํฌ๊ณ ์ฑ์ํ ์ํ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- Svelte์ SolidJS๋ ๋ ์์ง๋ง ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์ํ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ชจ๋ ํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ฌ์ ์ ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ฐพ์ง ๋ชปํ ์๋ ์์ง๋ง, ์ปค๋ฎค๋ํฐ๋ ์ด์ ์ ์ด๊ณ ๋งค์ฐ ํ๋์ ์ ๋๋ค.
๊ฒฐ๋ก : ์ด๋ค ํ๋ ์์ํฌ๊ฐ ๋น์ ์๊ฒ ์ ํฉํ ๊น?
๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ์ ์ฑ์ ์์ธ์ ๊ณ ๋ คํ ๊ฒฐ๊ณผ, ๋จ ํ๋์ '์ต๊ณ ์' ํ๋ ์์ํฌ๋ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ์ต์ ์ ์ ํ์ ์ ์ ์ผ๋ก ํ๋ก์ ํธ์ ์ฐ์ ์์์ ๋ฌ๋ ค ์์ต๋๋ค.
๋ค์ํ ์๋๋ฆฌ์ค์ ๋ฐ๋ฅธ ์ต์ข ๊ถ์ฅ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ๋์ ์ธ ์ต๊ณ ์ฑ๋ฅ๊ณผ ๊ฐ๋ฒผ์ด ๋น๋๋ฅผ ์ํด: Svelte ๋๋ SolidJS๋ฅผ ์ ํํ์ธ์. ๊ฐ์ฅ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ, ๊ฐ์ฅ ๋ฐ์์ฑ์ด ์ข์ UI, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์์ ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์ฃผ์ ๋ชฉํ๋ผ๋ฉด(์: ์ ์์๊ฑฐ๋ ์ฌ์ดํธ, ๋ชจ๋ฐ์ผ ์ฐ์ ์น ์ฑ, ์ธํฐ๋ํฐ๋ธ ์๊ฐํ), ์ด ํ๋ ์์ํฌ๋ค์ ๋ ๋ณด์ ์ ๋๋ค. SolidJS๋ ๋ณต์กํ๊ณ ๋ฐ์์ ์ธ ๋ฐ์ดํฐ ์กฐ์์์ ์ฐ์๋ฅผ ๊ฐ์ง๋ฉฐ, Svelte๋ ์ฝ๊ฐ ๋ ๊ฐ๋จํ๊ณ ๋ง๋ฒ ๊ฐ์ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฐฉ๋ํ ์ํ๊ณ์ ์ฑ์ฉ ์์ฅ์ ์ํด: React๋ฅผ ์ ํํ์ธ์. ํ๋ก์ ํธ๊ฐ ๊ฐ์ฅ ๊ด๋ฒ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ, ๊ฐ๋ฐ์์ ๋ํ ์ ๊ทผ์ ํ์๋ก ํ๋ค๋ฉด, React๋ ๊ฐ์ฅ ์์ ํ๊ณ ์ค์ฉ์ ์ธ ์ ํ์ ๋๋ค. ์ฑ๋ฅ๋ ๋งค์ฐ ์ข๊ณ , ์ฑ์ฉ ์์ฅ์์์ ์ง๋ฐฐ๋ ฅ ๋๋ถ์ ์ ์ธ๊ณ ์ด๋์๋ ๊ฐ๋ฐ ํ์ ํ์ฅํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ์ฑ๋ฅ๊ณผ ์ ๊ทผ์ฑ์ ๊ท ํ์ ์ํด: Vue๋ฅผ ์ ํํ์ธ์. Vue๋ ์ต์ ์ ์ง์ ์ ์ฐพ์์ต๋๋ค. React์ ๊ฒฝ์ํ ๋งํ ํ๋ฅญํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉด์๋, ๋ง์ ์ด๋ค์ด ๋ ์ง๊ด์ ์ด๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค๊ณ ๋๋ผ๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์๊ท๋ชจ๋ถํฐ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅด๊ธฐ๊น์ง ํ์์ ์ธ ๋ง๋ฅ ํ๋ ์์ํฌ์ ๋๋ค.
- ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด: Angular๋ฅผ ์ ํํ์ธ์. ๋๊ท๋ชจ ๊ฐ๋ฐ์ ํ๊ณผ ํจ๊ป ๋ณต์กํ๊ณ ์ค๋ ์ง์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์๋ค๋ฉด, Angular์ ๊ตฌ์กฐ์ ์ด๊ณ ๋ ์์ ์ธ ๊ท์น์ ํฐ ์์ฐ์ด ๋ ์ ์์ต๋๋ค. ์ผ๊ด์ฑ์ ๊ฐ์ ํ๊ณ ์ํฐํ๋ผ์ด์ฆ ์์ค์ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฌ๊ณ ํ๊ณ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ํ๋ซํผ์ ์ ๊ณตํ๋ฉฐ, ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๊ฐ์ ๋๊ณ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ์ธ๊ณ๋ ๊ทธ ์ด๋ ๋๋ณด๋ค ๋น ๋ฅด๊ฒ ์งํํ๊ณ ์์ต๋๋ค. Svelte์ SolidJS ๊ฐ์ ๋์ ์๋ค์ ์ํ ์ปดํ์ผ๋ฌ์ ๋ถ์๊ณผ ๊ฐ์ DOM์ผ๋ก๋ถํฐ์ ํํผ๋ ์ ์ฒด ์ํ๊ณ๋ฅผ ์์ผ๋ก ๋์๊ฐ๊ฒ ํ๊ณ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก, 'ํ๋ ์์ํฌ ์ ์'์ ์ข์ ๊ฒ์ ๋๋ค. ์ด๋ ํ์ , ๋ ๋์ ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ค์ด ์ฐจ์ธ๋ ์น ๊ฒฝํ์ ๊ตฌ์ถํ ์ ์๋ ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก ์ด์ด์ง๋๋ค. ํ๋ก์ ํธ์ ๊ณ ์ ํ ์ ์ฝ ์กฐ๊ฑด๊ณผ ๋ชฉํ์ ๊ฐ์ฅ ์ ๋ง๋ ๋๊ตฌ๋ฅผ ์ ํํ๋ฉด, ์ฑ๊ณต์ผ๋ก ๊ฐ๋ ๊ธธ์ ์์กฐ๋กญ๊ฒ ์ค๋ฅผ ๊ฒ์ ๋๋ค.