ํ๋ก ํธ์๋ ์น ๊ฐ๋ฐ : Rendering = ์น ํ์ด์ง์ ํ๋ฉด ๋ณ๊ฒฝ
์น ํ์ด์ง ํ๋ฉด ๋ณ๊ฒฝ: Javascript๋ฅผ ํตํ HTML(DOM) ์ง์ ์กฐ์ → Hard to Manage, ๋ฐ๋ณต์ ์ธ Rendering Process
jQuery ๋ฑ์ฅ: Javascript ํตํ DOM ์กฐ์์ ์ฝ๊ฒ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ณผ๊ฑฐ์๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋ก ๋ฌ๋๊ธฐ ๋๋ฌธ์, ๋์ผํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด๋ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋์์ด ๋ค๋ฅผ ์ ์์๋ค. ์ด๋ฌํ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด jQuery๊ฐ ๋ฑ์ฅํ๋ค.
- ํฌ๋ก์ค๋ธ๋ผ์ฐ์ ์ง์: jQuery๋ ๋ค์ํ ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ผํ๊ฒ ์๋ํ๋ ์ฝ๋๋ฅผ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ฑ์ ์ฝ๊ฒ ์ ์งํ ์ ์๋ค.
- ์ฃผ์ ๊ธฐ๋ฅ:
- DOM ์์ ์ ํ: getElementById์ ๊ฐ์ ํ์ค ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ์๋๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ๋จํ ๋ฌธ๋ฒ์ ์ ๊ณตํ๋ค.
- DOM ์์ ์กฐํ ๋ฐ ์์ : ์ ํํ DOM ์์๋ฅผ ์ฝ๊ฒ ์กฐ์ํ ์ ์๋ค.
- AJAX ์ง์ ๋ฐ JSON/XML ํ์ฑ: ๋น๋๊ธฐ ํธ์ถ์ ์ง์ํ์ฌ, ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
- XML์ ๊ฐ์ ธ์๋ ๋ฆฌ๋ ๋๋ง ํ ํ์๊ฐ ์์.
React ๋ฑ์ฅ: Javascript ํตํ DOM ์กฐ์์ ๋จ์ํํ๋ ํ๋ ์์ํฌ
์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ๋ณต์กํด์ง๋ฉด์, ๋ค์์ HTML ์์๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ํ์ํด์ก๋ค. React๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Facebook์์ ๊ฐ๋ฐํ ํ๋ ์์ํฌ๋ค.
- FaceBook์์ ๋ฑ์ฅ →๋ค์ HTML์์๊ฐ ๋ฐ๋๋ ๊ฒฝ์ฐ React๊ฐ ํ์
- ๊ณผ๊ฑฐ์ ํ์ด์ง๋ฅผ ๊ณ์ ์ ํํด์ผํจ. → DOM Repaint ๋ฐ์
- ํ๋์ ํ๋ฉด์์ ๋ชจ๋ ๊ฑธ ํด๊ฒฐํ๋ ํํ → ์น์์ ์ฑ ๊ฒฝํ์ ๊ฐ์ง์ ์๊ฒํ์
-
- VDOM ์ ํ๋ฐ ๋ชจ์ DOM์ ํ๋ฒ์ ์กฐ์
Javascript ‘Frontend’ Framework
์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ๊ฐ๋ฐ(๋ฐฑ์๋, ํ๋ก ํธ์๋)์ ๊ณต์ ํ๋ ์์ํฌ๊ฐ์๊ฒ์ด ์๋๋ผ ๋จ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฉ๋์ ๋ง์ถฐ์ ์ ๋ง ๋ฏธ์น๋ฏ์ด ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ค์ด ๋ฑ์ฅํ๊ฒ๋๋ค.
- ํ๋ก ํธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ
- React.js (๋ค๋ฅธ๊ฒ๋ค๊ณผ ๋ฌ๋ฆฌ ๋ฆฌ์กํธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง ํ๋ก ํธ์๋ ํ๋ ์์ํฌ๋ก ๋ถ๋ฅ๋๋ค)
- Angular
- Vue.js
- ๋ฐฑ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ
- Express.js
- Nest.js
- ๊ทธ๋ํฝ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ
- Three.js ๋ฑ
โน๏ธ์ฐธ๊ณ
[ASAC 6๊ธฐ ๊ฐ์์๋ฃ]
- .