ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(React, Angular, Vue)๋ฅผ ์ฌ์ฉํ๋ ์ด์
: DOM ์์๋ค์ด ๋ณํํ๋ฉด ๋ ๋ ํธ๋ฆฌ๋ฅผ ์ฌ์์ฑ, ๋ฆฌํ๋ก์ฐ, ๋ฆฌํ์ธํธ ๊ณผ์ ์ ๊ฑฐ์น๋๋ฐ, ์ด๊ฒ์ด ๋ฐ๋ณต๋ ์๋ก ๋ง์ ์ฐ์ฐ์ ํจ์ผ๋ก ์ด๋ ์ ์ฒด์ ์ธ ํ๋ก์ธ์ค์ ๋นํจ์จ์ฑ์ ์ผ๊ธฐํ๋ค.
-> ์์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ DOM ๊ด๋ฆฌ์ ์ํ ๋ณํ ๊ด๋ฆฌ๋ฅผ ์ต์ํํ๊ณ , ๊ฐ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ๊ณผ UI์ ์ง์คํ ์ ์๋๋ก ๋์์ค๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ทธ๋ ์ด๋์ํจ
๋ฆฌ์ํธ
1. ์๋์ผ๋ก UI๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
์๋ก๊ณ ์นจ ํ์ง ์์๋ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋๋ค.
2. ์ฝ๋ ์ฌ์ฌ์ฉ์ ๋ง์ด ํ๋ค.
3. JSX(JS+HTML) ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋ ์ ๋ฆฌ๊ฐ ๊น๋ํ๋ค.
ํ์ด์ค๋ถ ๊ฐ๋ฐํ์ด ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋๋ง๋ค ์ด๋ค ๋ณํ๋ฅผ ์ค์ง ๊ณ ๋ฏผํ์ง ์๊ณ ,
๊ทธ๋ฅ ๊ธฐ์กด ๋ทฐ๋ฅผ ๋ ๋ฆฌ๊ณ ์ฒ์๋ถํฐ ์๋ก ๋ ๋๋ง ํ๋ ๋ฐฉ์์ ๊ณ ์ํ ๊ฒ ๋ฆฌ์ํธ
์ด๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ๊ฐ๋จํด์ง๊ณ ์ฝ๋์๋ ์ค๋ฉด์ ๋ ์ด์ ์ด๋ป๊ฒ ๋ณํ๋ฅผ ์ค์ง ์ ๊ฒฝ ์ธ ํ์๊ฐ ์์ด์ก๋ค.
๊ทธ์ ๋ทฐ๊ฐ ์ด๋ป๊ฒ ์๊ธธ์ง ์ ์ธํ๊ณ , ๋ฐ์ดํฐ ๋ณํ ์ ๊ธฐ์กด์ ์๋ ๊ฒ์ ๋ฒ๋ฆฌ๊ณ ๊ท์น์ ๋ฐ๋ผ ์๋ก ๋ ๋๋ง ํ๋ฉด ๋!
MVC, MCW๋ ์๋ ์ค์ง V๋ง ์ ๊ฒฝ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๋ฆฌ์ํธ์์ ์ปดํฌ๋ํธ๋?ใใ
>> ํน์ ๋ถ๋ถ์ด ์ด๋ป๊ฒ ์๊ธธ์ง ์ ํ๋ ์ ์ธ์ฒด, ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ API๋ก ์๋ง์ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ง๊ณ ์๋ค.
์ปดํฌ๋ํธ ํ๋์์ ํด๋น ์ปดํฌ๋ํธ์ ์๊น์์ ์๋ ๋ฐฉ์์ ์ ์ํฉ๋๋ค.
Q. ๋ฆฌ์ํธ์์๋ ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋๋ง๋ค ์๋กญ๊ฒ ๋ฆฌ๋ ๋๋งํ๋ฉด์ ์ฑ๋ฅ์ ์๋ ์ ์์๊น?
(๋ ๋๋ง:์ฌ์ฉ์ ํ๋ฉด์ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ)
A. Virtual DOM์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ!
Virtual DOM ๋ฐฉ์์ผ๋ก DOM ์ ๋ฐ์ดํธ๋ฅผ ์ถ์ํํ์ฌ DOM์ ์ต์ํ์ผ๋ก ์กฐ์ํ์ฌ ์์ ์ ์ฒ๋ฆฌํ๋ค.
๋ฆฌ์ํธ์์ ๋ฐ์ดํฐ๊ฐ ๋ณํด DOM์ ์ ๋ฐ์ดํธํ ๋ ๋ค์ ์ธ ๊ฐ์ง ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1. ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ์ ์ฒด UI๋ฅผ Virtual DOM์ ๋ฆฌ๋๋๋งํ๋ค.
2. ์ด์ Virtual DOM์ ๋ด์ฉ๊ณผ ํ์ฌ ๋ด์ฉ์ ๋น๊ตํ๋ค.
3. ๋ฐ๋ ๋ถ๋ถ๋ง ์ค์ DOM์ ์ ์ฉํ๋ค.
๋ฆฌ์ํธ์์ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ ๋๋ "์ ๋ฐ์ดํธ" ๋ณด๋จ "์กฐํ"๋ฅผ ๊ฑฐ์น๋ค๊ณ ํํํ๋ ๊ฒ์ด ์ ํํ๋ค.
์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ์ ๋ณํ๊ฐ ์์ ๋ ๋ณํ์ ๋ฐ๋ผ ๋ทฐ๊ฐ ๋ณํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง,
์ฌ์ค์ ์๋ก์ด ์์๋ก ๊ฐ์๋ผ์ฐ๋ ๊ฒ์ด๋ค.
'์ฝ๋ฉ ์ฉ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น ์๋ฒ/์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ (WEB / WAS) (0) | 2022.01.20 |
---|---|
์คํฌ๋ฆฝํธ ์ธ์ด(Script Language), ์ธํฐํ๋ฆฌํฐ(Interpreter) (0) | 2022.01.18 |
ํธ์ด์คํ (hoisting) ์ด๋?, var์ let์ ์ฐจ์ด (0) | 2022.01.14 |
API๋? ๊ฐ๋ , ํน์ง, ๋ฐฉ์ (0) | 2022.01.11 |
JSON, AJAX ๊ฐ๋ , ํน์ง, ๋์์๋ฆฌ (0) | 2022.01.05 |