์ด ๊ธ์ ํตํด ์๋ก์ด ์๋ฐ์คํฌ๋ฆฝํธ ์น ํ๋ ์์ํฌ์ ํ์ฐ์ ๋ํด ์ดํดํ๊ณ , ๊ท๋ชจ์ ๋ฐ๋ฅธ ๋ฌธ์ ์ ์ต๊ทผ ํ์ ์ ์งํ์ ๋ํด ์์ธํ ์์๋ด ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์์ ์ต์ ์ ๋ฐ๋ฅด๋ ๊ฒ์ ์๊ฐ์ด๋ค์๋ ์ ํฉํ์ง ์์ต๋๋ค.
์ ๊ณ์ ์๋ก ์ง์ ํ๋ ์ฌ๋๋ค์ด ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ, ๊ฐ๋ ๋ฐ ๊ฐ๋ ฅํ ์๊ฒฌ ์ฌ์ด์์ ์ผ์ด๋๋ ์ผ๋ค์ ๋ฐ๋ผ๊ฐ๊ธฐ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ์ ๋๋ค.
์ฌ๋ฌ๋ถ์ด ๊ธฐ์ ์ ์ต์ ์ ์ ์๋ค๋ฉด, ๋ณดํต ์ฌ๋ฌ๋ถ์ด ๊ฐ์ฅ ๋ง์ ํฌ์์ ๊ฐ์ํ๋ ์ ๋ฐ์ฃผ์์ธ ๊ฒ์ ์๋ ๊ฒ ์ข์ต๋๋ค. ์ฌ๋ฌ๋ถ์๊ฒ ์ต์ํ โ๊ตฌ์โ ๊ธฐ์ ์ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ , ์๋ก์ด ๊ธฐ์ ์ ๋ํด ๋ฆ์ ์ฑํ์๊ฐ ๋๋ ๊ฒ์ด ํ๋ฅญํ ์ ํ์ผ ์ ์์ต๋๋ค.
๊ทธ๋ ๋๋ผ๋, ์ด ํฌ์คํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์์ ํ๋ ์์ํฌ์ ์ต์ ์ ์ ๋ํด์ ๋น ๋ฅด๊ฒ ์๋ ค์ค ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋๊ท๋ชจ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ๊ณผ๊ฑฐ์ ๋ฌธ์ ์ ๋ค์ ์ดํด๋ณด๋ฉด์ ํ์ฌ ์ํฉ์ ์ดํดํ ๊ฒ์ ๋๋ค.
์๋ฃจ์ ์ ํ์ฐ์ ์ด์ ์ ๋ง์ถ๊ธฐ๋ณด๋ค๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ์ ๋ํด์ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ฐ ํ๋ ์์ํฌ๋ ์๋ก ๋ค๋ฅธ ํด๊ฒฐ๋ฐฉ์๊ณผ ์๋ก ๋ค๋ฅธ ์ฅ๋จ์ ์ ์ ๊ณตํฉ๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ React, Svelte, Vue, Solid, Astro, Marko, Fresh, Next, Remix, Qwik ๋ฐ ์ค๋๋ ์ ํ๊ฒฝ์ ๋ง๋ โ๋ฉํ ํ๋ ์์ํฌโ์ ๊ฐ์ ์ธ๊ธฐ ํ๋ ์์ํฌ์ ์์ ์์ค ๋ชจ๋ธ์ ์ดํดํ ๊ฒ์ ๋๋ค.
ํ์ฌ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ๊ณผ๊ฑฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ ๋์์ด ๋ฉ๋๋ค. ๋ฏธ๋๋ฅผ ๋ณด๊ธฐ ์ํด ๊ธฐ์ต์ ๋ฐ๋ผ ๊ณผ๊ฑฐ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด๋ฉฐ ์์ํด๋ณด๊ฒ ์ต๋๋ค.
์ด์ ์ ์ด์ผ๊ธฐ ํ์ง๋ง, ์ด๋ฒ์๋ ๋์์ ์ธ ์ ๊ทผ ๋ฐฉ์๊ณผ ์ฌ๊ณ ๋ฐฉ์์ ์ด๋ฐํ ๋ ํฐ ํ๋ก์ ํธ์ ๋ฌธ์ ์ ์ด์ ์ ๋ง์ถฐ๋ณด๊ฒ ์ต๋๋ค.
์น์ ํจ๊ป ์ฐ๊ฒฐ๋ ์ ์ ๋ฌธ์๋ก ์์๋์์ต๋๋ค. ๋๊ตฐ๊ฐ ๋ฏธ๋ฆฌ ๋ฌธ์๋ฅผ ์ค๋นํ๊ณ ๊ทธ๊ฒ์ ์ปดํจํฐ์ ์ฌ๋ ค๋์ ์ ์์์ต๋๋ค.
์ด์ ๋ฉ์ง ์ ์ ๋ค๋ฅธ ์ฌ๋์ด ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ฅผ ์ด๋ํ์ง ์๊ณ ๋ ๊ทธ๊ฒ์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๊ฝค ๊น๋ํ์ต๋๋ค.
์ด๋ ์๊ฐ, ์ฐ๋ฆฌ๋ ์ด ๋ฌธ์๋ค์ ๋์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ด ๋ฉ์ง๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์์ฒญ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ ์ ์๋ CGI์ ๊ฐ์ ๊ธฐ์ ์ ์ป์์ต๋๋ค.
๊ทธ ๋ค์ Perl๊ณผ ๊ฐ์ ํํํ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ต๋๋ค. ์ด๊ฒ์ ๋ช ์์ ์ผ๋ก ์น์ ์ํด ๊ตฌ์ถ๋ ์ฒซ ๋ฒ์งธ ์ธ์ด์ธ PHP์ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค.
PHP์ ๋ฉ์ง ํ์ ์ HTML์ ๋ฐฑ์๋ ์ฝ๋์ ์ง์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด์์ต๋๋ค. ๋์ ์ธ ๊ฐ์ ํฌํจํ๋ ๋ฌธ์๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฝ๊ฒ ๋ง๋ค ์ ์๋๋ก ํ์ต๋๋ค.
์น์ ๊ฐ์ฅ ์ค์ํ ํ์ ์ค ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<html>
<body>
์ด ๋ฌธ์๋ ๋ฏธ๋ฆฌ ์ค๋น๋์ด ์์ต๋๋ค.
</body>
</html>
๋์ ์ธ ๊ฐ์ ์ฝ๊ฒ ํฌํจํ ์ ์๊ฒ ๋์์ต๋๋ค.
<html>
<body>
Y2K?
<?php echo time(); ?>
</body>
</html>
์ด๋ฌํ ๋์ ์ธ ํ์ด์ง๋ ํํธ๋ฅผ ์ณค์ต๋๋ค. ์ด์ ์ธ์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ฟ ํค ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์์๊ฒ ๋ณด๋ธ ๋ด์ฉ์ ์ฝ๊ฒ ์ปค์คํฐ๋ง์ด์ฆ ํ ์ ์๊ฒ ๋์์ต๋๋ค.
์๋ฒ ๊ธฐ๋ฐ ํ ํ๋ฆฟ ํ๋ ์์ํฌ๋ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ๋ ์ธ์ด ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฑ์ฅํ์ต๋๋ค. ์ด๋ฌํ ํ๋ ์์ํฌ๋ ์ ์ ํ์ด์ง๋ก ์์ํ์ฌ ๋์ ํ์ด์ง๋ก ์ฝ๊ฒ ํ์ฅํ ์ ์๋๋ก ํด์ฃผ์์ต๋๋ค.
์น์ ๋น ๋ฅด๊ฒ ์งํํ๊ณ ์์๊ณ , ์ฐ๋ฆฌ๋ ๋ ๋ง์ ์ํธ์์ฉ ๊ฒฝํ์ ์ํ์ต๋๋ค. ์ด๋ฅผ ์ํด Flash์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ํ๋ฌ๊ทธ์ธ์ ํ์ฉํ์ต๋๋ค. ์ด๋ฐ์ ๋ค๋ฅธ ๊ฒฝ์ฐ์ ์ฐ๋ฆฌ๋ ๋ฐฑ์๋์์ ์ ๊ณต๋๋ HTML ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์กฐ๊ฐ์ โ๋ฟ๋ฆฌ๊ณคโํ์ต๋๋ค.
jQuery
๋ Prototype
๊ณผ ๊ฐ์ ๋๊ตฌ๋ค์ ์น API์ ๋ค๋ฌ์ด์ง์ง ์์ ๋ถ๋ถ๋ค์ ๋งค๋๋ฝ๊ฒ ํ๊ณ , ๊ฒฝ์์ ์ธ ๋ธ๋ผ์ฐ์ ๋ค์ ๋จ์ ์ ๋ณด์ํ์์ต๋๋ค.
๋น ๋ฅด๊ณ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ์๋ฉด, ๊ธฐ์ ํ์ฌ๋ค์ ์ ์ ์ปค์ง๊ณ ์์๊ณ , ํ๋ก์ ํธ์ ํ์ด ์ฑ์ฅํจ์ ๋ฐ๋ผ ๋ ๋ง์ ๋น์ฆ๋์ค ๋ก์ง๋ค์ด ์ด๋ฌํ ํ ํ๋ฆฟ์ ์นจํฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์์ต๋๋ค.
์๋ฒ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ ํ ํ๋ฆฟ ์ธ์ด๋ก ์ฃผ๋ฌด๋ฅด๊ธฐ ์ํด ์์ฑ๋๊ณ ์์์ต๋๋ค. ํ ํ๋ฆฟ์ ์ข ์ข ๊ธ๋ก๋ฒ ๋ณ์์ ์ ๊ทผํ๋ ๋น์ฆ๋์ค ๋ก์ง์ ๋ค์ฃฝ๋ฐ์ฃฝ ํ ํํ๋ก ์งํํ์ต๋๋ค. SQL ์ฃผ์ ๊ณผ ๊ฐ์ ๊ณต๊ฒฉ์ด ์ผ์ํ๋๋ฉด์ ๋ณด์ ๋ฌธ์ ๊ฐ ๋๋๋๊ณ ์์์ต๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ โAjax ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ก์ด ์ ๊ทผ๋ฒโ์ ์ป์์ต๋๋ค.
์ด์ ๋๊ธฐ์ ์๋ก๊ณ ์นจ ๋์ ๋น๋๊ธฐ์ ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๊ฒ ๋์์ต๋๋ค.
์ด ํจํด์ Google maps๋ Google docs์ ๊ฐ์ ์ต์ด์ ๊ฑฐ๋ํ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ๋์คํ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ์คํฌํฑ ์คํ์ผ์ ์ํํธ์จ์ด๋ฅผ ์ํ ์น ๋ฐฐํฌ์ ํ์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ์ด๊ฒ์ CD ํํ์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ ํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ ๋, ์๋นํ ์ง์ ์ด์์ต๋๋ค.
๋ ธ๋๊ฐ ๋ฑ์ฅํ์ ๋, ๊ทธ๊ฒ์ด ๊ฐ์ ธ์จ ์๋ก์ด ๊ฒ์ ํ๋ฐํธ์๋์ ๋์ผํ ์ธ์ด๋ก ๋ฐฑ์๋๋ฅผ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ด์์ต๋๋ค. ๋น๋๊ธฐ ์ฐ์ ๋ชจ๋ธ ๊ฐ๋ฐ์ ๋ชจ๋๋ ๊ทธ๊ฒ์ ์ต์ํ์ต๋๋ค.
๋ ธ๋๋ (๊ทธ๋ฆฌ๊ณ ์ง๊ธ๋)๋งค๋ ฅ์ ์ด์์ต๋๋ค. ๋ ๋ง์ ๊ธฐ์ ์ด ์จ๋ผ์ธ์ผ๋ก ์ ํ๋๋ฉด์ ๊ฒฝ์ ์ฐ์๋ ๋น ๋ฅด๊ฒ ๋ฐฐ์กํ๊ณ ๊ทธ๊ฒ์ ๋ฐ๋ณตํ๋ ๊ฒ์ด ๋์์ต๋๋ค.
๋ ธ๋์ ์ํ๊ณ๋ ์์ ์ ์ํํ๊ธฐ ์ํด ์ ๋ฐ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ์์ ๋จ์ผ ๋ชฉ์ ํจํค์ง๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ์กฐํ์ต๋๋ค.
๋ฐ์คํฌํฑ๊ณผ ๋ชจ๋ฐ์ผ์ ํ์ ํ ์ ์๋ ์น์ ๋ํ ์ฐ๋ฆฌ์ ์๊ตฌ๋ ๊ณ์ ์ปค์ก์ต๋๋ค. jQuery UI
, Dojo
, Mootools
, ExtJs
๋ฐ YUI
๊ฐ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ โ์์ ฏโ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํธ๋ฆฌํฐ์ ๋ชจ์์ด ์์์ต๋๋ค.
์ฐ๋ฆฐ ์ด๋ฐ ์กฐ๊ฐ์ ๋๋ฌด ๋ง์ด ๋ฟ๋ฆฌ๊ณ ์์๊ณ , ํ๋ฐํธ์๋์์๋ ๋ ๋ง์ ๊ฒ์ ํ๊ณ ์์์ต๋๋ค. ์ด์ ๋ฐ๋ผ ์ข ์ข ํ๋ฐํธ์๋์ ๋ฐฑ์๋ ์ฌ์ด์์ ํ ํ๋ฆฟ์ด ์ค๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Backbone
์ด๋ Knockout
๋ฐ ๋ง์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ค์ด ๋ฑ์ฅํ์ต๋๋ค. ์ด๋ค์ MVC
, MVVM
๋ฑ์ ์ํคํ
์ฒ๋ฅผ ํตํด ํ๋ฐํธ์๋์ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์๊ณ , jQuery ํ๋ฌ๊ทธ์ธ ๋ฐ ๋ชจ๋ ์์ ฏ ๋ค๊ณผ ํธํ๋์์ต๋๋ค.
๊ตฌ์กฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ํ๋ฐํธ์๋ ์ฝ๋๋ฅผ ํ์ฅํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค. ๋ํ ๋ฐฑ์๋๋ก๋ถํฐ ํ ํ๋ฆฟ ์ด๋์ ๊ฐ์ํ์ต๋๋ค.
ํ์ง๋ง ์ฌ์ ํ ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๋๊ธฐํํ๊ธฐ ์ํด์ ๋ฏธ์ธ ์กฐ์ ๋ DOM์ ์กฐ์ํ๊ณ ์์์ต๋๋ค. ๋ฐ์ดํฐ ๋๊ธฐํ์ ๊ด๋ จ๋ ๋ฒ๊ทธ๋ ์์ฃผ ๋ฐ์ํ๊ณ ์ด ๋ฌธ์ ๋ ์ฌ์ํ์ง ์์์ต๋๋ค.
์ด๋, ๊ตฌ๊ธ์ ์ง์์ ๋ฐ์ Angular๊ฐ ๋ฑ์ฅํ์์ต๋๋ค. Angular๋ HTML์ ๋์ ์ผ๋ก ์๋์์ผ ์์ฐ์ฑ ํฅ์์ ๋๋ชจํ์์ต๋๋ค. ๊ทธ๊ฒ์ ์คํ๋ ๋์ํธ์์ ์๊ฐ์ ๋ฐ์ ๋ฐ์ํ ์์คํ ๊ณผ ํจ๊ป ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ์์ต๋๋ค.
์ ์ธ์ ์ธ ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ๋ฐ์ํ๋ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ์ ์๋น ๋ถ๋ถ์ ์ ๊ฑฐํ์ต๋๋ค. ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ข์๊ณ , ๊ฐ๋ฐ์๋ค์ ๋ ์์ฐ์ ์ผ๋ก ๋ง๋ค์์ต๋๋ค.
ํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ ๋ฌด์์ด ๋ณํํ๊ณ ์๋์ง ์ถ์ ํ๋ ๊ฒ์ด ์ด๋ ค์์ก๊ณ , ์ข ์ข ์ฑ๋ฅ ์ ํ๋ก ์ด์ด์ก์ต๋๋ค. ์ ๋ฐ์ดํธ ์ฌ์ดํด์ด ๋ฐ์ํ๋ ๊ณณ์์ ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ์งํ์ต๋๋ค. (์ค๋๋ Svelte๋ ๋จ์ ์ ์ํํ๋ฉด์ ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ ์งํฉ๋๋ค.)
๋ชจ๋ฐ์ผ์ ๋ถ์ ์ธ์๋ ์ด๋ฌํ ์์ฐ์ฑ์ ๋์ด์ฌ๋ฆฌ๋ ํ๋ ์์ํฌ๋ ํ๋ฐํธ์๋์ ๋ฐฑ์๋์ ๋ถ๋ฆฌ๋ฅผ ๊ฐ์ํ์ต๋๋ค.
์ด๋ฅผ ํตํด, ํ๋ฐํธ์๋์ ๋ฐฑ์๋์ ๋ถ๋ฆฌ๋ฅผ ๊ฐ์กฐํ๋ ๋ค์ํ ์ํคํ ์ฒ๋ฅผ ํ์ํ ์ ์๋ ๊ธธ์ ์ด์์ต๋๋ค.
์ด๊ฒ์ HTML์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด CDN์์ ์๋น์คํ๋ ๊ฒ์ ๊ฐ์กฐํ๋ Jamstack ์ฒ ํ์ ์ฃผ์ ๋ถ๋ถ์ด์์ต๋๋ค.
๊ทธ ๋น์, Jamstack์ ์ ์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋น์ทํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์ ๋ Git ๊ธฐ๋ฐ์ ์ํฌํ๋ก์ฐ, ๋ฉ๋ฆฌ ๋จ์ด์ง ์ค์ ์ง์ค์ ์๋ฒ์ ์์กดํ์ง ์๋ ๊ฐ๋ ฅํ CDN ์ธํ๋ผ, ๋ถ๋ฆฌ๋ ํ๋ฐํธ์๋์ ํต์ ํ๋ ๋ ๋ฆฝ๋ API๋ค์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. CDN์ ์ ์ ์์ฐ์ ์ฒํน(Chucking)ํ๋ ๊ฒ์ ์๋ฒ๋ฅผ ์ด์ํ๋ ๊ฒ๋ณด๋ค ์ด์ ๋น์ฉ์ด ํจ์ฌ ์ ๋ ดํ์ต๋๋ค.
์ค๋๋ Gatsby
, Next
๋ฑ ๋ง์ ๋ค๋ฅธ ํด๋ค์ด ์ด๋ฌํ ์์ด๋์ด๋ฅผ ํ์ฉํฉ๋๋ค.
์๊ณํ์ฝ์ ๋๋ ค ์ฐ๋ฆฌ๋ ๋น ํ ํฌ ์๋๋ฅผ ํฅํด ๋น ๋ฅด๊ฒ ์ง์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ฏผํ๊ฒ ์์ง์ด๊ณ ํ์ ๋ค์๊ธฐ ์ํด ๋ ธ๋ ฅํ์์ต๋๋ค.
์ ๊ณ์ ์ง์ ํ๋ ์ฌ๋๋ค์๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋งค์ฐ ์ค์ํ๊ณ , ๋ณ๋์ ๋ฐฑ์๋๋ก ์ง์๋๋ SPA๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ์ํฉ์ด ๋์์ต๋๋ค.
React๊ฐ ํ์ด์ค๋ถ์์ ํ์ํ๊ฒ ๋ ๋ช ๊ฐ์ง ๊ณผ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
React๊ฐ ๋ฑ์ฅํ๋ฉด์ ์ฌ๋ฌ๋ถ์ด ํ ์ ์๊ฒ ๋ ์๋ก์ด ๊ฒ์ ์ ์ธ์ ์ผ๋ก ํ๋ฐํธ์๋ ์ฝ๋๋ฅผ ์ฐ๋ ๊ฒ์ด์์ต๋๋ค.
MVC ํ๋ ์์ํฌ๊ฐ ํ์ฅ๋์ง ์์๋ ํ๋ฐํธ์๋์ ๋ํ ์ฐ๋ ค์ ๋ถ๋ฆฌ๋ฅผ ๋ค์ ์๊ฐํ๊ฒ ๋์์ต๋๋ค.
ํ ํ๋ฆฟ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ JSX๋ก ์ ํํ๋ ๊ฒ์ ์ฒ์์๋ ์ฝ์ง ์์์ต๋๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ ๊ทธ๋ ๊ฒ ํ์ต๋๋ค.
์ปดํฌ๋ํธ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ๋ค์ ๋ณ๋ ฌ๋ก ๋ณด๋ค ๋ ์ฝ๊ฒ ์์ ํ ์ ์๋ ๋ณ๋์ ํ๋ฐํธ์๋ ํ์ ๋ถ๋ฆฌํ ์ ์๊ฒ ํ์ต๋๋ค.
์ํคํ ์ฒ ๊ด์ ์์ ์ปดํฌ๋ํธ ๋ชจ๋ธ์ ๊ณต์ ๋ ๊ธฐ๋ณธ ์์(primitives)๋ถํฐ ํ์ด์ง์ ๋ฟ๋ฆฌ๊น์ง ๊ตฌ์ฑ๋ โ์ ๊ธฐ์ฒด(organisms)โ๊น์ง ์ปดํฌ๋ํธ์ ๊ณ์ธตํ๋ฅผ ํ์ฉํ์ต๋๋ค.
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ดํดํ๊ณ ์ถ์ ํ๊ณ ๋๋ฒ๊ทธํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์์ต๋๋ค. ์ด์ ์๋ ์ฐพ์๋ณด๊ธฐ ํ๋ค์๋ ์์ธก ๊ฐ๋ฅ์ฑ์ด ์ถ๊ฐ๋์์ต๋๋ค.
๊ฐ์ DOM์ UI์ ๋ํ ์ค๋ช ์ ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํ๊ณ , React๊ฐ ์ด๋ ค์ด ๋ถ๋ถ์(hard bits)๋ฅผ ํ์ ํ๋๋ก ํ ์ ์์์ ์๋ฏธํ์ต๋๋ค.
์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋ ๋์ ์ผ๊ด์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ ํ๋ฆฟ ๊ตฌ์ฑ์ ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ๋ง๋ค์์ต๋๋ค.
์๊ณํ์ฝ์ ๋ ๋น ๋ฅด๊ฒ ๊ฐ์๋ณด๊ฒ ์ต๋๋ค. React๋ ํํธํ๊ณ , ์ ๊ณ ํ์ค์ด ๋์์ต๋๋ค. ์ฌ์ง์ด๋ ์ฑ๋ฅ์ด ํ์ํ์ง ์์ ์ฌ์ดํธ์๋ ๋ง์ฐฌ๊ฐ์ง์์ต๋๋ค. ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ช ๊ฐ์ง ํ๊ณ์ ์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค.
DOM์ React์ ๋ชจ๋ธ์ ๋ฌธ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฐ์์ ์ธ ๋ ๋๋ง ์ฃผ๊ธฐ์์ DOM ๋ ธ๋๋ฅผ ์ง์ํด์ ์์ฑํ๊ณ ํ๊ดดํ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค.
์๋ก์ด ์์ค์ ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๋์ ํ์ฌ ํด๊ฒฐํ ์ ์๋ ๋ชจ๋ ๋ฌธ์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก React๋ ๊ฐ์ DOM ๋ค์ ์ถ์ํํ์ต๋๋ค.
๋งค๋๋ฝ๊ฒ ๋๊ปด์ง๋ ค๋ฉด ์ฌ๋๋ค์ 100ms ์ดํ์ ํผ๋๋ฐฑ์ ์ธ์ํด์ผ ํฉ๋๋ค. ์คํฌ๋กค๊ณผ ๊ฐ์ ์์ ์ ์ํํ ๋๋ ํจ์ฌ ๋ ๋ฎ์ต๋๋ค.
์ด๋ฌํ ์ต์ ํ๋ ๋จ์ผ ์ค๋ ๋ ํ๊ฒฝ๊ณผ ๊ฒฐํฉํ์ฌ ๋ํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ๋ณ๋ชฉ ํ์์ด ๋์์ต๋๋ค.
๊ฐ์ DOM๊ณผ ์ค์ DOM ๊ฐ์ ์กฐ์ ์ด ์ผ์ด๋๋ ๋์ ๋๊ท๋ชจ์ ๋ํํ ์ฑ์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ํ์ง ์๊ฒ ๋์์ต๋๋ค. Long task์ ๊ฐ์ ์ฉ์ด๊ฐ ๋ฑ์ฅํ๊ธฐ ์์ํ์ต๋๋ค.
์ด์ ๋ฐ๋ผ 2017๋ ์ ๋์(concurrent) ๋ชจ๋๋ฅผ ์ํ ๊ธฐ๋ฐ์ด ํฌํจ๋ React์ ์ ์ฒด์ ์ธ ์ฌ์์ฑ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
ํํธ, ๋ ๋นจ๋ฆฌ ์์ง์ธ๋ค๋ ๊ฒ์ ๋ ๋ง์ ์ฝ๋๋ฅผ ์ ์กํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ํํ๊ธฐ ์ํ ๋๋ฆฐ ์์ ์๊ฐ์ด ๋ฌธ์ ๊ฐ ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ HTML๊ณผ ๊ฐ์ DOM ๋ฟ๋ง ์๋๋ผ CSS๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ ์๋ฌต์ ์ธ ๋ฐํ์ ๋น์ฉ์ ์ฃผ๋ชฉํ๊ธฐ ์์ํ์ต๋๋ค.
์ปดํฌ๋ํธ ๋ชจ๋ธ์ CSS์ ๋ํ ์ฐ๋ฆฌ์ ๊ฒฝํ์ ๋ถ๋๋ฝ๊ฒ ํ์ต๋๋ค. ์คํ์ผ์ ์ปดํฌ๋ํธ์ ํจ๊ป ์์นํ ์ ์๊ฒ ํ์ฌ ์ญ์ ๊ฐ๋ฅ์ฑ์ ํฅ์ํ์ต๋๋ค. ์ด์ ์ CSS ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋๋ ค์ํ๋ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ ํ์์ ์ธ ํน์ฑ์ด์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ๊ณ ์๋ ์ข ์(cascade)๊ณผ ๊ทธ๊ฒ์ ํน์์ฑ์ ๋ํ ๋ฌธ์ ๋ค์ CSS in JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ์ถ์ํ๋์์ต๋๋ค.
์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ํ๋ฆ์ ์ข ์ข ์๋ฌต์ ์ธ ๋ฐํ์ ๋น์ฉ์ด ์๋ฐ๋์์ต๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ํด๋น ์คํ์ผ์ ํ์ด์ง์ ์ฝ์ ํด์ผ ํ์ต๋๋ค. ์ด์ ๋ฐ๋ผ ์คํ์ผ๋ง ๋ฌธ์ ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค์ ํฌํจ๋์์ต๋๋ค.
๋๊ท๋ชจ์์ ์ ์กฐํ ์ฑ๋ฅ์ ์ข ์ข ๋ฅ์ง์ฒ์ฐธ๊ณผ ๊ฐ์ด ๋์ฐํ๋ฉฐ, ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋น์ฉ์ด ๋ฐ์ํ๋ ๊ฒ์ ์ธ์งํ๊ณ ์์์ต๋๋ค. ์ด๊ฒ์ ์ดํ ์คํ์ผ์ํธ๋ฅผ ์ถ์ถํ๊ธฐ ์ํด ์ข ๋ ๋๋ํ ์ฌ์ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํจ์ผ๋ก ๋ฐํ์ ๋น์ฉ์ด ์๋๋ฐ ์ค์ ์ ๋ ์๋ก์ด CSS in JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ด์ด์ก์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ๋ ๋๋ง ํ ๋ CSS๋ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ๋ ๋๋ง ์ฐจ๋จ ๋ฆฌ์์ค๋ HTML์ ๋๋จธ์ง ๋ถ๋ถ์ ํ์ํ์ง ๋ชปํ๊ฒ ํ์ต๋๋ค.
๋ถ๋ชจ๋ ์ข ์ข ์ปดํฌ๋ํธ ๊ณ์ธต์ ์์ ์ปดํฌ๋ํธ์ ๋ํ ๋ ๋๋ง ์ฐจ๋จ์ ์์ธ์ด ๋์์ต๋๋ค. ์ค์ ๋ก ๋ง์ ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ์ (์ฝ๋ ์คํ๋ฆฌํ ์ ํตํ) CDN์ ์ฝ๋์ ์์กดํ๊ณ ์์์ต๋๋ค.
์ด๋ ์ข ์ข ์์ฐจ์ ์ธ ๋คํธ์ํฌ ์์ฒญ ์ฐจ๋จ์ ์ํฐํด๋ก ์ด์ด์ง๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ํ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋น๋๊ธฐ ํ์ ์ปดํฌ๋ํธ์ ์ ๊ธ์ ํด์ ํฉ๋๋ค. ๊ทธ๋ค์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ณตํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
UI๊ฐ ๋ก๋๋ ๋ ํ๋ฉด์ ๋ํ๋๋ โ์คํผ๋ ์ง์ฅ(spinner hell)โ ๋๋ ๋์ ๋ ์ด์์ ์ด๋์ ํํ ๋ณผ ์ ์์ต๋๋ค.
React๋ ์ดํ Suspense
๋ฅผ ์ถ์ํ์ฌ ํ์ด์ง ๋ก๋ ๋จ๊ณ๋ฅผ ์ํํ๊ฒ ์งํํ ์ ์๋๋ก ์ง์ํ์ต๋๋ค. ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฐจ์ ๋คํธ์ํฌ ์ํฐํด๋ฅผ ๋ฐฉ์งํ์ง๋ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ Suspense๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๋ ๋๋งํ๋ ํจํด์ ํ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ๋ React์ ๋ช๋ช ํธ๋ ์ด๋์คํ(tradeoffs)๊ฐ ์ด๋ป๊ฒ ๋๊ท๋ชจ๋ก ์ํ๋๋์ง ์ดํดํ๊ธฐ ์ํด ๊ณ์ ๋์๋ณผ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์๋ก์ด ํ๋ ์์ํฌ์์ ํจํด์ ํ๋ ์ํ ํ๋๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
React์์๋ ๊ฐ์ DOM์ ๋ฐํ์ ๋น์ฉ์ ํผํ ์ ์์์ต๋๋ค. ๋์(Concurrent) ๋ชจ๋๋ ์ํธ์์ฉ ๊ฒฝํ์์ ์ฌ๋ฌผ์ ๋ฐ์์ฑ์ ์ ์งํ๋ ๊ฒ์ ๋ํ ํด๋ต์ด์์ต๋๋ค.
CSS in JS์ ์์ญ์์๋ Stylex๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ด๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ์ฉ๋์์ต๋๋ค. ์ด๊ฒ์ ์์ฒ ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋ ๋ฐํ์ ๋น์ฉ ์์ด ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์ ์งํฉ๋๋ค.
ํ์ด์ค๋ถ์ Relay๋ฅผ ํตํด ์์ฐจ์ ์ธ ๋คํธ์ํฌ ์ํฐํด ๋ฌธ์ ๋ฅผ ํผํ์ต๋๋ค.
์ฃผ์ด์ง ์์์ ์ ๋ํด ์ ์ ๋ถ์์ ๋ก๋ํด์ผ ํ๋ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ๊ฒฐ์ ํ์ต๋๋ค.
์ฆ, ์ต์ ํ๋ graphQL ์ฟผ๋ฆฌ์์ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ๋ก๋ํ ์ ์์์ต๋๋ค.
์ด๋ ์ด๊ธฐ ๋ก๋ฉ ๋ฐ SPA ์ ํ์ด ์์ฐจ์ ๋คํธ์ํฌ ์ํฐํด๋ณด๋ค ํ์ฐํ ๋นจ๋์ต๋๋ค.
์ฌ๊ธฐ์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ํน์ ์ฌ์ฉ์์ ๊ด๋ จ์ด ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ ์กํ๋ ๊ฒ์ด์์ต๋๋ค.
์ด๊ฒ์ A/B ํ ์คํธ, ๊ธฐ๋ฅ ํ๋๊ทธ(feature-flagged) ๊ฒฝํ ๋ฐ ํน์ ์ ํ์ ์ฌ์ฉ์์ ์ง๋จ์ ์ํ ์ฝ๋๊ฐ ์์ ๋ ์ด๋ ค์ ์ต๋๋ค. ์ธ์ด์ ๋ก์ผ์ผ(Locale) ์ค์ ๋ ๊ทธ๋ ์ต๋๋ค.
์ฝ๋์ ๋ถ๊ธฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ, ์ ์ ์์กด์ฑ ๊ทธ๋ํ๋ ํน์ ์ฌ์ฉ์ ์ง๋จ์ ๋ํด ํจ๊ป ์ฌ์ฉ๋๋ ๋ชจ๋์ ํ์ธํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค.
ํ์ด์ค๋ถ์ AI๋ก ๊ตฌ๋๋๋ ๋์ ๋ฒ๋ค๋ง ์์คํ ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ ๊ธด๋ฐํ ํด๋ผ์ด์ธํธ-์๋ฒ ํตํฉ์ ํ์ฉํด์ ๋ฐํ์ ์์ฒญ์ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ์ ์ข ์์ฑ ๊ทธ๋ํ๋ฅผ ๊ณ์ฐํ์ต๋๋ค.
์ด๊ฒ์ ์ฐ์ ์์์ ๋ฐ๋ผ ๋จ๊ณ์ ์ผ๋ก ๋ฒ๋ค์ ๋ก๋ํ๋ ํ๋ ์์ํฌ์ ๊ฒฐํฉํฉ๋๋ค.
ํ์ด์ค๋ถ์ ์๋ ๊ฐ ๊ตฌ์ถ๋ ๋ณต์กํ ์ธํ๋ผ์ ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ถ๊ณ ์์์ต๋๋ค. ๋ง์ฝ ์ฌ๋ฌ๋ถ์ด ๋น ํ ํฌ ๊ธฐ์ ์ด๋ผ๋ฉด, ์์ฒญ๋ ์์ ๋๊ณผ ์์์ ์๋นํ์ฌ ์ด๋ฌํ ์ฅ๋จ์ ๋ค์ ๋๊ท๋ชจ๋ก ์ต์ ํํ ์ ์์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ํ๋ฐํธ์๋ ์ ํ ๊ฐ๋ฐ์๊ฐ ์ฑ๋ฅ์ ์ ์งํ๋ฉด์ ์์ ์ ์๋ฃํ ์ ์๋ ์ฑ๊ณต์ ๊ตฌ๋ฉ์ด๋ฅผ ๋ง๋ญ๋๋ค.
์ฐ๋ฆฌ ๋๋ถ๋ถ์ ํ์ด์ค๋ถ๊ณผ ๊ฐ์ ๊ท๋ชจ์ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ์์ง ์์ต๋๋ค. ์ฌ์ ํ ๋ง์ ์กฐ์ง์์ ์ฑ๋ฅ์ ์ฃผ์ ํ ํฝ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋ฅํ ์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ๋คํธ์ํฌ ๋ณ๋ ฌํ, ์ธ๋ผ์ธ ์๊ตฌ์ฌํญ๋ฑ๊ณผ ๊ฐ์ ํจํด๋ค์์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๋น ํ ํฌ ๊ธฐ์ ๋ค์ ์ข ์ข ์์ฒด ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ฅผ ๋ด๋ถ์ ์ผ๋ก ๊ตด๋ฆฌ๊ณ ์์๊ณ , ๋ง์ ์๋ฃจ์ ๋ค์ ๋ค์ํ ์ฌ์ฉ์ ๊ณต๊ฐ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฉ์ด์ ธ ์์์ต๋๋ค.
์ด์ ๋ฐ๋ผ ๋ง์ ์ฌ๋๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์ ํผ๋ก๋ฅผ ๊ฒช๊ณ ํ๋ ์์ํฌ ๋ฒ์์๊น์ง ์ด์ด์ก์ต๋๋ค.
์์ง ์ฐ๋ฆฌ์ ํจ๊ปํ๊ณ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ฌ์ ํ SPA๊ฐ ๊ธฐ๋ณธ์ธ ์๋์ ์์ต๋๋ค. ์ด๊ฒ์ ์ ๊ณ์ ์ง์ ํ๋ ์ฌ๋๋ค์ ํ ์ฃผ์์ ๋๋ค.
React๋ ๋ ผ์์ ์ฌ์ง๊ฐ ์๋ ์ฑํผ์ธ์ด๊ณ , ์ฐ๋ฆฌ๋ ๋๊ท๋ชจ์ ํธ๋ ์ด๋์คํ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค.
React๋ ํ๋์ ๊ณ์ธต์ ์ ๊ณตํ์ต๋๋ค. ํ์ํ ๋ค๋ฅธ ๊ณ์ธต์ ์ํ๊ณ์ ๋งก๊ธฐ๊ณ ๋ชจ๋ ์ค์ํ ์ธก๋ฉด์์ ๋ณ๋์ ์ผ๊ธฐํ์ต๋๋ค. ๋ผ์ฐํ , ์ํ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฑ์ ๊ฐ๊ฐ ๊ณ ์ ํ ๊ฐ๋ ๊ณผ API๋ค์ ๊ฐ์ง๊ณ ์์์ต๋๋ค.
๋ถ๋ณ ๋ ๊ฐ๋ณ, ํด๋์ค ๊ธฐ๋ฐ์ OOP ๋ ํจ์ํ ์คํ์ผ๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ํ ๋ก ๋ค๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๊ฝ์ ํผ์ ์ต๋๋ค.
์ค๋๋ , ๋ง์ ๊ฐ๋ฐ์๋ค์ ์ด๋ค ์ ํ์ ํด์ผ ํ๊ณ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ๋์ง์ ๋ํ ๋ถํ์ค์ฑ์ ๋น ์ ธ ์์ต๋๋ค.
์ปดํฌ๋ํธ ๋ชจ๋ธ์ ์ฌ์ ํ ํ๊ณ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐํ์ ๋น์ฉ, ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ JSX์ ๋ณต์ก์ฑ์ ๋ ผ์์ ๋์์ด์์ต๋๋ค.
๋น ํ ํฌ ๊ธฐ์ ์ผ๋ก๋ถํฐ ๋์ค์ง ์์ ๋ง์ ํ๋ฟ๋ฆฌ ๋์๋ค์ด ๋ง์ ์ฌ๋์๊ฒ ๊ด๋ฒ์ํ๊ฒ ์ฃผ๋ชฉ๋ฐ์์ต๋๋ค. ์ด ๋์๋ค์ ๋ํ ๋งค์ฐ ๋์ ์์ค์ ์์ฝ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฌ๋๋ค์ด Angular 2 ๋๋ React๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ๋ ผ์ํ ๋, Vue๋ ์์ํ๊ธฐ๊น์ง ๋ฎ์ ์ง์ ์ฅ๋ฒฝ์ผ๋ก ๊ทธ๊ฒ๋ค๊ณผ์ ์ฐจ์ด๋ฅผ ๋ฉ๊พธ์์ต๋๋ค.
๋ณต์กํ ์นํฉ ๊ตฌ์ฑ์ผ๋ก ๊ณจ์น ์ํ ํ์๊ฐ ์์์ต๋๋ค. CDN์ ํตํ ๋์ ์ผ๋ก ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ง๊ด์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ ํ๋ฆฟ์ผ๋ก ์ปดํฌ๋ํธ ๊ตฌ์ถ์ ์์ํ ์ ์์์ต๋๋ค.
๋ผ์ฐํ ๋ฐ ์คํ์ผ๋ง๊ณผ ๊ฐ์ ํต์ฌ ์ปดํฌ๋ํธ๋ค์ ํต์ฌ ํ์์ ์ฌ์ฉํ ์ ์์ด, ์์ฌ๊ฒฐ์ ์ ํผ๋ก๋ฅผ ์ค์ผ ์ ์์์ต๋๋ค.
๋ํ ํ ํ๋ฆฟ์ ์ ์ ๋ถ์์ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅธ ๋ฐํ์์ ์ํ ์ต์ ํ๋ฅผ ํ์ฉํจ์ผ๋ก์จ React์ ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ธก๋ฉด์ ์ํํ์ต๋๋ค. ์ด๊ฒ์ ์ปดํ์ผ๋ฌ ์ ๋ณด ๊ฐ์ DOM์ด๋ผ๊ณ ํฉ๋๋ค.
Svelte๋ ์ฌ์ ์ ์ปดํ์ผํ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ์ฒํ์ฌ, ๋ฐํ์์ ์ฐ๋ฆฌ๊ฐ ๊ฒช๋ ๋ณต์ก์ฑ๊ณผ ์ค๋ฒํค๋๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
์ด ์์ด๋์ด๋ ์ต์ํ์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ํ๋ ์ถ๋ ฅ์ผ๋ก ์์ฒด ์ปดํ์ผํ๋ ํ๋ ์์ํฌ๋ฅผ ๊ฐ๋ ๊ฒ์ด์์ต๋๋ค. ์ต์ํ ๊ฐ๋ณ ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ์ ์ธ์ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋์ ์ธ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ์งํ๊ณ ์ ํ์ต๋๋ค.
๊ฐ์ DOM์ ์์ ํ ํํผํ๊ธฐ ๋๋ฌธ์, ์ํ ์ ๋ฐ์ดํธ์ ๊ฐ์ ์์ ์ ์ํํ๊ธฐ ์ํด ๋ถ๋ณ ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ์ ์ฝ์ ์ฝ๋งค์ด์ง ์์์ต๋๋ค. ๋ง์ ์ฌ๋์๊ฒ ์ด๊ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ํจ์ฌ ๋ ๊ฐ๋จํ๊ณ ๊ฑด์ ํ ๋ชจ๋ธ์ด์์ต๋๋ค.
Solid๋ Knockout์ ์๊ฐ์ ๋ฐ์ ๊ฐ๋จํ๊ณ ์์ธกํ ์ ์๋ ๋ฐ์ํ ๋ชจ๋ธ์ ์ ๊ณตํ์์ต๋๋ค. React์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทธ๊ฒ์ ๊ธฐ๋ฅ์ ํฉ์ฑ์ด ์ฉ์ดํ๋๋ก ํ ํ๋ฆฟ์ ํผํ์ต๋๋ค.
React๋ ๋์์์ด ๋ฆฌ๋ ๋๋ง ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ ๋ฐ ๋ฐํด, Solid๋ ํ ๋ฒ ๋ ๋๋ง ํ ๋ค์ ๊ฐ์ํ๋ ๋ฐ์ํ ์์คํ ์ ์ฌ์ฉํ์ฌ ๊ฐ์ DOM์ ์ค๋ฒํค๋ ์์ด ์ธ๋ฐํ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ ๋ฐฉ์์ ์ทจํ์ต๋๋ค.
Solid๋ ๋ง์ ๋ฆฌ์กํธ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ๋ hooks๊ณผ ์ฝ๋๊ฐ ์ ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ API๋ ๋ ํจ์จ์ ์ด๊ณ , ์ธ๋ฐํ ๋ฐ์์ฑ๊ณผ ํฉ์ฑํ ์ ์๋ ๊ธฐ๋ณธ ์์๋ค์ ์ด์ ์ ๋ง์ถ์ด hooks ์ข ์์ฑ ๋ฐฐ์ด๊ณผ ๊ฐ์ ๊ฒ๋ค์ ๋ ๋งค๋๋ฝ๊ฒ ์ฒ๋ฆฌํ์ต๋๋ค.
์ด๋ฌํ ๊ฐ๊ฐ ํ๋ ์์ํฌ์ ๋ํด ๋งํ ๊ฒ์ด ํจ์ฌ ๋ ๋ง์ต๋๋ค. ๊ฐ ํ๋ ์์ํฌ๋ ๊ธฐ๋ณธ์ ์ธ ๋ชจ๋ธ๊ณผ ์ ํธ๋์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฌ์ค, ์งํ๋ ์ข ์ข ์ผ๋จ ์๋ํด๋ณด๋ ์ฌ๋๋ค์๊ฒ์ ๋ฐ์ํฉ๋๋ค. ๊ฐ ํ๋ ์์ํฌ๊ฐ ์๋ก ํ์ตํ๋ฉด์ ํ์ฌ์ ๋ฌธ์ ์ ์ ๋ํ ๋ค์ํ ์๋ฃจ์ ์ ์๋ํฉ๋๋ค.
ํฐ ์ฃผ์ ๋ ๊ฐ์ํ์ ๋จ์ํ์ ๋๋ค. ๋ฐํ์์์ ์ปดํ์ผ ์๊ฐ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ์ด๋ฌํ ์ฃผ์ ์ค ํ๋์ด๊ณ , ๋ฉ๋ชจ์ด์ ์ด์ ์ ๋ํ ํ์์ฑ์ ์ ์ฌ์ ์ผ๋ก ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ธ โReact forgetโ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค.
๊ทธ๋ค ๋ชจ๋์ ๊ณตํต์ ์ ๋ํ๋จผํธ์ ์ํธ์์ฉ ๋ถ๋ถ์ ํด๊ฒฐํ๋ ๊ฒ์ด์์ต๋๋ค. ์์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ, ์ด๊ฒ์ ์ฝ๊ฒ ํ์ฅํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ๋ก์ก๊ธฐ์๋ ์ด๋ ค์ด ์ธก๋ฉด์ด์์ต๋๋ค.
ํํธ, ์ฐ๋ฆฌ๋ ์์ํ ํด๋ผ์ด์ธํธ ์ธก ๋ ๋๋ง์ ์ฅ๋จ์ ์ ๋ณด๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ํ์ด์ง๋ฅผ ๋ก๋ฉํ ๋, ๋น์ด์๋ ํฐ ํ๋ฉด์ด ๋ ์ค๋ ์ง์๋ฉ๋๋ค.
๋ชจ๋ฐ์ผ ์ฅ์น์ ๋คํธ์ํฌ์์ ํฐ ํ๋ฉด์ด ์ง์๋๋๊ฒ์ ์ฌ์์ ๊ฐ๊น์ต๋๋ค.
๋ง์ ์น์ฌ์ดํธ์ ๊ฒฝ์ฐ ์ ํ๋์ง ์๋ ๋น ๋ฅธ ์ฑ๋ฅ์ผ๋ก ๋น ๋ฅด๊ฒ ์์ง์ด๋ ๊ฒ์ด ์ค์ํ ๊ฒฝ์ ์ฐ์๊ฐ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ํ ๊ฑธ์ ๋์๊ฐ ์๋ฒ์์ ๋จผ์ ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํจ์ผ๋ก์จ ์ฝํ ์ธ ๋ฅผ ๋ ๋นจ๋ฆฌ ๋ ๋๋ง ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๊ณ ์์์ต๋๋ค. (๊ทธ๋ฌ๋ ๋์์ ๊ทธ๊ฒ์ด ํํํด์ผ ํ๋ ๋ถ๋ถ์์ ์๊ฒ ๋์์ต๋๋ค.)
์ด ์ด๊ธฐ ๋จ๊ณ๋ ๋ง์ โ๋ฉํโ ํ๋ ์์ํฌ์ HTML ์ฐ์ ํ๋ฐํธ์๋ ํ๋ ์์ํฌ์ ์๋ก์ด ๋ฌผ๊ฒฐ์ ์ํ ๊ธธ์ ์ด์์ต๋๋ค.
โ์ฐ๋ฆฌ๋ ํํ์ ๋ฉ์ถ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ ๋ชจ๋ ํํ์ ๋์ ์ฐ๋ฆฌ๊ฐ ์ถ๋ฐํ๋ ๊ทธ๊ณณ์ ๋์ฐฉํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒ์์ผ๋ก ๊ทธ๊ณณ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.โ
PHP์์ ์๊ฐ์ ์ป์ Next๋ CDN์ผ๋ก ํธ์ ๋๋ ์ ์ ํ์ด์ง๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ธฐ ์ํด ๋์ฐ์ต๋๋ค. ๋ํ React ์ฑ์์ SSR์ ์ฌ์ฉํ๋ ๋ฒ๊ฑฐ๋ก์ด ๋ถ๋ถ๋ ์ํํ๊ฒ ์ฒ๋ฆฌํ์ต๋๋ค.
๊ทธ๊ฒ์ ํ์ผ ๊ธฐ๋ฐ์ ๋ผ์ฐํ ์ ์ฌ์ฉํ์ฌ ์ฑ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ํด ๋ง์ ์ฌ๋์ด ์ํ๋ ๋ถ๋ถ์ ์ ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ง์ ์ข์ ํน์ง๋ค์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๊ทธ ์ดํ๋ก โ๋ฉํโ ํ๋ ์์ํฌ์ ๋ฌผ๊ฒฐ์ด ๋ง๋ค์ด์ก์ต๋๋ค. Vue์ ๊ฒฝ์ฐ, Nuxt๋ผ๋ ์ ์ฌํ ํ๋ ์์ํฌ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , Svelte๋ Sveltekit, Solid๋ ๊ณง ์ถ์๋ SolidStart๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด ํ๋ ์์ํฌ๋ค์ ๋ชจ๋ ๋ถ๋ถ์ ํตํฉํ๊ณ ํจ์จ์ ์ผ๋ก ์ค๊ณ๋ ์๋ฒ ์ฐ์ (server-first) ํ๋ ์์ํฌ์ ๋๋ค. ์ค๋ซ๋์ ์ฃผ๋ชฉ์ ๋ฐ์์จ ๊ฒ์ ์ธํฐ๋ ํฐ๋ธ ์์๋ฟ๋ง์ด ์๋๋๋ค.
์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ฐ๋ฐ์ ๊ฒฝํ์ ์๋ก ์์ํ์ง ์๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋ํ ๋ํ๊ฐ ์์๋์์ต๋๋ค.
๋ฉํฐ ํ์ด์ง ์ํคํ ์ฒ๋ ์๋ฒ์์ HTML์ ์ ๊ณตํ๋ฉฐ, ๋ด๋น๊ฒ์ด์ ์ด ํ ํ์ด์ง ์๋ก๊ณ ์นจ์ผ๋ก ์ผ์ด๋ฉ๋๋ค.
๋น ๋ฅธ ์์์ ๋ง์ ์ฌ์ดํธ, ํนํ ๋ก๊ทธ์ธ ์ธ๋ถ ์ฌ์ดํธ์์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ฒ์ ์์์ ์ดํ๋ฅ ๊ณผ ์ง์ ์ ์ธ ์ฐ๊ด์ด ์์ต๋๋ค.
React์ ๊ฐ์ ํด๋ผ์ด์ธํธ ๋ ๋๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฎ์ ์ํธ์์ฉ์ฑ์ ๊ฐ์ง ๋ง์ ์ฌ์ดํธ์ ์ฑ์์๋ ์ง๋์นฉ๋๋ค.
๋ง์ ์ฌ๋์๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ ์ฐ์ ๋์ HTML ์ฐ์ , SPA ๋์ MPA, ์ ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์ํฉ์ ์ญ์ ์ํค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
Marko, Astro, Fresh, Rocket, ๊ทธ๋ฆฌ๊ณ Enhance์ ๊ฐ์ ํ๋ ์์ํฌ๋ค์ ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ต๋๋ค.
์ผ๋ถ ๋ฉํ ํ๋ ์์ํฌ๋ค๊ณผ๋ ๋์กฐ์ ์ผ๋ก, ๋ผ์ฐํฐ๋ ์ฒซ ๋ฒ์งธ ๋ก๋ ํ์ ํด๋ผ์ด์ธํธ๋ก ์ด๊ด๋์ง ์๊ณ ์๋ฒ์ ๋จ์์์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ์์ ์ด๊ฒ์ ๋ ธ๋ ์งํ ์๋ฒ ๊ธฐ๋ฐ ํ ํ๋ฆฟ์ผ๋ก ๋๋์๊ฐ๋ ๊ฒ์ ๋๋ค.
์ด๋ฒ ๋ผ์ด๋์ MPA ์ด์ ์ธ๋์ ๋ค๋ฆ ๋๋ค. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์์ฑ๋ ์คํ๋งํด์ ์ข ์ข ์์ผ๋๋ ํจํด(islands pattern)์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ํ๋ฐํธ์๋ ๋ฐ ๋ฐฑ์๋ ์ฝ๋๊ฐ ๋์ผํ ์ธ์ด๋ก ์ ๊ณต๋๋ฉฐ, ์ข ์ข ๊ฐ์ ํ์ผ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ์ผ๋ถ ์ํธ์์ฉ์ ์ถ๊ฐํ ๋ ํ๋ฐํธ์๋์ ๋ฐฑ์๋์ ๊ฑธ์ณ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ๋ ์ค๋ณต๋ ํ ํ๋ฆฟ ์ฝ๋ ๋ฌธ์ ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค.
Remix๋ React ์ํ๊ณ์ ์ ์ง์ ์ธ ๊ฐ์ ์ ๊ฐ์ ธ์์ต๋๋ค.
๊ธฐ์ ์ ์ธ ๊ด์ ์์ ๋ณผ ๋, ๊ณง ์ถ์๋ ๋ค๋ฅธ ๋ฉํ ํ๋ ์์ํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃ์ง ํธํ(edge-compatible)์ ๋ฐํ์ React Router์ ์ปดํ์ผ๋ฌ์ ๋๋ค.
์ค์ฒฉ ๋ ์ด์์๊ณผ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ API๋ฅผ ํตํด Relay๋ก ํ์ด์ค๋ถ์ด ๋๊ท๋ชจ๋ก ํด๊ฒฐํ ๊ฒ๊ณผ ๊ฐ์ด ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ด๋ฅผ ํตํด ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ์กฐ๊ธฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. Suspense์ ํจ๊ป โ๋ ๋๋ง ํ ๋ ๊ฐ์ ธ์ค๊ธฐ(fetch as you render)โ ํจํด์ ๋ํ ์ข์ ์ ์ ์กฐ๊ฑด์ ๋๋ค.
์ ์ง์ ํฅ์์ ์ค์ ์ ๋๋ค๋ ๊ฒ์ ๊ทธ๊ฒ์ API๊ฐ ์น ํ์ค์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๋ฐ์ดํฐ ๋ณํ ์คํ ๋ฆฌ๋ HTML ํ์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํ์ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ์ํํ๋ ๋์ , ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ํ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ๋ ์์์ ๋ ๋๋ง ํฉ๋๋ค. (์ข ์ข ๋์ผํ ํ์ผ์ ์์ต๋๋ค) ์ด๊ฒ์ PHP์ ์๊ฐ์ ๋ฐ์์ต๋๋ค.
Next์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํต์ ์ธ ์๋ฒ ๋ ๋๋ง MPA์ฒ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ์์ด ์๋ํ๋๋ก ์ถ์ํ๊ฑฐ๋ ํ์ด์ง ๋จ์๋ก ๋ํํ React ์ฑ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
Remix ๋ํ ๋๊ด์ ์ธ UI ์ ๋ฐ์ดํธ, ๊ฒฝํฉ ์ํ ์ฒ๋ฆฌ, ์ฐ์ํ ์ฑ๋ฅ ์ ํ(graceful degradation)์ ๊ฐ์ด ์ ๊ฐ์ถฐ์ง ํ๋ ์์ํฌ๊ฐ ์ ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ๋ค์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ต์ข ์ฌ์ฉ์ ๊ฒฝํ์ ์ด์ ์ ๋ง์ถ ๋ง์ API์ ํจํด์ ์ ๊ณตํฉ๋๋ค.
Quic ํ๋กํ ์ฝ๊ณผ ํท๊ฐ๋ฆฌ์ง ๋ง์ธ์. Qwik ํ๋ ์์ํฌ๋ ๋ถํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ์ ๋ถ์ ๋๋ค.
๊ทธ๊ฒ์ API๋ React์ฒ๋ผ ๋ณด์ด์ง๋ง, ๊ทธ๊ฒ์ ์ ๊ทผ ๋ฐฉ์์ ํ์ด๋๋ ์ด์ ๊ณผ์ ์ ์ฐ๋งํจ์ผ๋ก์จ ๋ค๋ฅธ ๋ฉํ ํ๋ ์์ํฌ์๋ ๋ค๋ฆ ๋๋ค.
๊ฐ์ ๋จธ์ ์ ์ผ์ ์ค์งํ๊ณ ๋ค๋ฅธ ๋ฌผ๋ฆฌ ๋จธ์ ์ผ๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ต๋๋ค. Qwik์ ์ด ์์ด๋์ด๋ฅผ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ์ฌ์ด์์ ๋ฐ์ํ๋ ์์ ์ผ๋ก ๊ฐ์ ธ๊ฐ๋๋ค.
์ด๋ โ์ฌ๊ฐ ๊ฐ๋ฅํ(resumable)โ ํ์ด๋๋ ์ด์ ์ ๊ฐ๋ ์ผ๋ก, ์๋ฒ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ํ๊ณ ํด๋ผ์ด์ธํธ์์ ์ฌ์์ ์์ด ๋ค์ ์์ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ด๋ ํ์ด๋๋ ์ด์ ์ด ๋ฐ์ํ๋ฉด ๋ฐ๋ผ์ค๋ ๋ถ๋ถ ํ์ด๋๋ ์ด์ ๊ณผ ๋์กฐ์ ์ผ๋ก Qwik์ ์ ์ด์ ๊ทธ๊ฒ์ ํผํ๋ ค๊ณ ํฉ๋๋ค.
์ด๊ฒ์ ๋์ ๋ฒ๋ค๋ง๊ณผ ์๋น์ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธด๋ฐํ ์๋ฒ์ ํด๋ผ์ด์ธํธ ํตํฉ์ ํ์ ํ์ฉํ๋ ๊ฒ์ ํฅ๋ฏธ๋ก์ด ์์ด๋์ด์ ๋๋ค.
์ด๋ฌํ ๊ฐ๋ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด MPA๋ก ์์ํ์ฌ ๋์ ์ผ๋ก SPA๋ก ์ ํํ ์ ์๋ MPA์ SPA ์ฌ์ด์ ๊ฒฝ๊ณ๋ฅผ ํ๋ฆฌ๊ธฐ ์์ํฉ๋๋ค. ๋๋๋ก (์ฃผ๋ก ์ ํ์ด๋ก) โ์ ํ ์ฑ(transitional apps)โ์ผ๋ก ์ธ๊ธ๋ฉ๋๋ค.
ํํธ ๋ฐฑ์๋ ์ธํ๋ผ์ ํธ์คํ ์ ์ง์ํด์ ๊ฐ์ ๋๊ณ ์์ต๋๋ค.
์ฒจ๋จ์ ์๋ CDN์ SPA์ ์ ์ ์์ฐ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ๊ณตํฉ๋๋ค. ์ด์ ๋ฐํ์๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฃ์ง๋ก ์ด๋ํ๋ ๊ฒ๋ ์คํ ๊ฐ๋ฅํด์ง๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์ ์๋ก์ด ๋ฐํ์ ๊ณ์ธต์ ์์ฑํ์ง๋ง, ์ฌ์ ํ ์ฌ์ฉ์์๊ฒ ์ต๋ํ ๊ฐ๊น๊ฒ ๋ง๋ญ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ํ์ฌ ์ํํ ๋ง์ ์์ ์ ๋ค์ ์๋ฒ๋ก ์ฝ๊ฒ ์ฎ๊ธธ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ํ๋ ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ ๋จ์ ์ ์ด๋ ์ ๋ ์ํํฉ๋๋ค.
React ์๋ฒ ์ปดํฌ๋ํธ์ ๊ฐ์ ์์ด๋์ด๋ ์ด ๊ณ์ธต์์ ๋ธ๋ผ์ฐ์ ๋ก ์๋ฒ ์ปดํฌ๋ํธ ์ถ๋ ฅ์ ์คํธ๋ฆฌ๋ฐํ๋ ๊ฐ๋ ์ ํ๊ตฌํ๊ณ ์์ต๋๋ค.
Deno ๋ฐ Bun๊ณผ ๊ฐ์ ์๋ก์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ฝ์์คํ ์ ๋จ์ํํ๊ณ ๋ฅ๋ฅ ํํ๊ธฐ ์ํด ํฌ๋กญ ํ๊ณ ์์ผ๋ฉฐ ์๋์ ๋น ๋ฅธ ์์ ์๊ฐ์ ์ต์ ํ๋ ์ด ์ฃ์ง ์คํ ์๊ฐ์ ์๋ก์ด ์ธ๊ณ๋ฅผ ์ํด ๊ตฌ์ถ๋์์ต๋๋ค.
๋ํ ํ์ค ์น API๋ฅผ ์ฑํํ์ฌ ์ด ๊ณ์ธต์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ก ์ด์ด์ก์ต๋๋ค. ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ๊ณผ ์คํธ๋ฆฌ๋ฐ ์ํคํ ์ฒ๊ฐ ํ๊ตฌ๋๊ณ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์คํธ๋ฆฌ๋ฐ์ ํฐ ์ฃผ์ ์ ๋๋ค. HTML์ ์กฐ๊ธฐ์ ํ๋ฌ์ ํ ์ ์๊ฒ ํ์ฌ ๋ธ๋ผ์ฐ์ ๋ HTML์ ์์ ํ ๋ ์ ์ง์ ์ผ๋ก ๋ ๋๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ์๋๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ฐ์ ธ์ค๋ ๋์ CSS ๋ฐ JS์ ๊ฐ์ ๋ ๋๋ง ์ฐจ๋จ ๋ฆฌ์์ค๋ฅผ ๊ฒํ ํ๊ธฐ ์์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ฐจ์ ์ธ ์๋ณต์ ๋ณ๋ ฌํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ง์ ๊ฒ์ ์ดํด๋ดค์ง๋ง, ๊น์ ๋ด์ฉ์ ํ๊ณ ๋ค์ง๋ ๋ชปํ์ต๋๋ค.
์ด ํฌ์คํธ์ ์ฐ๋ฆฌ๊ฐ ์ธ๊ธํ์ง ์์ ์๋ง์ ๋ค๋ฅธ ๊ฒ๋ค์์ ์ธ๊ธ๋ ์ต๊ณ ์ ํ๋ ์์ํฌ, ์ํคํ ์ฒ ๋๋ ํจํด์ด ๋ฌด์์ธ์ง์ ๋ํ ๋ณดํธ์ ์ธ ๋ต์ ์์ต๋๋ค.
์ด๊ฒ๋ค์ ํญ์ ํน์ ์งํ์ ๋ํ ๊ตํ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์์ ์ป๊ณ ํฌ๊ธฐํด์ผ ํ๋์ง ์๋ ๊ฒ์ ์ฌ๋ฌ๋ถ์ด ๋ฌด์์ ๋ง๋ค๊ณ ์๋๋์ ๋ฐ๋ผ ๋ฌ๋ ค์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง, ์ฌ์ฉ ํจํด์ ์ด๋ค์ง, ์ฃผ์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ด๋ จ๋ ๋ค๋ฅธ ์๊ตฌ์ฌํญ(์ฑ๋ฅ)๋ค๋ ์ค์ํฉ๋๋ค.
์ฐ๋ฆฌ ๋๋ถ๋ถ์๊ฒ ์ง์ค์ ์ค๊ฐ ์ด๋์๊ฐ ์์ต๋๋ค. ํ๋ ์์ํฌ์ ํ์ ์ ์๋ก์ด ๋ฌผ๊ฒฐ์ ์ข์ ์ ์ ํ์์ ๋ฐ๋ผ ํ์ฅ ๋ฐ ์ถ์ํ ์ ์๋ ๋ ๋ฒ๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
์ ๊ณ์ ์ ๋ฌธํ๋ ์ฌ๋๋ค๊ณผ ๊ฒฝํ์ด ์๋ ์ฌ๋๋ค ๋ชจ๋์๊ฒ ๊ธฐ๋ณธ์ ํฌ์ํ๋ ๊ฒ์ ํญ์ ์ข์ ๋ฒ ํ ์ ๋๋ค.
ํ๋ ์์ํฌ์ ์งํ๋ ๋ค์ดํฐ๋ธ ์น์ ์์ํ ๋ ๋ฐ์ด๋ถ์ด๋ฉฐ, ๊ฑฐ์น ๊ฐ์ฅ์๋ฆฌ๋ฅผ ๋ถ๋๋ฝ๊ฒ ํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ์ด์ ์ ์๊ตฌ๋ฅผ ์ ๊ฑฐํ๊ณ ์ด์ ์ ๋จ์ ์ ์ํํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ ์ ๋ ๋ค์ดํฐ๋ธ ์น์ ๊ธฐ๋ฅ์ ์ฑํํ ์ ์๋๋ก ํฉ๋๋ค.
๐ ํ๊ตญ์ด๋ก ๋ ํ๋ฐํธ์๋ ์ํฐํด์ ๋น ๋ฅด๊ฒ ๋ฐ์๋ณด๊ณ ์ถ๋ค๋ฉด Korean FE Article(https://kofearticle.substack.com/)์ ๊ตฌ๋ ํด์ฃผ์ธ์!