๋จผ์ !!
๋ธ๋ผ์ฐ์ ๋ ๋๋ง๊ณผ์
- ์๋ฒ๋ก๋ถํฐ HTML๊ณผ CSS ์์์ ๋ฐ์์์ DOM Tree์ SSOM Tree๋ฅผ ์์ฑํ๋ค.
- DOM Tree์ SSOM Tree๋ก ๋ธ๋ผ์ฐ์ ์ ๋ ์ด์์์ ์ก์์ค ๋ ๋ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
- ๋ ๋ํธ๋ฆฌ ๋ ธ๋ ์๋ ์์ฑ์ด๋ ์คํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ ํฌ๊ธฐ, ์์น, ํฌ๊ธฐ์ ๋ง๊ฒ ๋ ์ด์์์ ์ก๋๋ค.
- ๋ธ๋ผ์ฐ์ ์ ํ์ธํธ ํ๋ค.
์ด์ #1
๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ค์ <script> ํ๊ทธ๋ฅผ ๋ง๋๊ฒ ๋๋ฉด ์งํ์ค์ธ HTMLํ์ฑ์ ์ค์งํ๊ณ
js์์ง์ผ๋ก ์ ์ด ๊ถํ์ ๋๊ธด๋ค. JSํ์ฑ๊ณผ ์คํ์ด ์ข ๋ฃ๋๋ฉด ๋ ๋๋ง ์์ง์ผ๋ก ๋ค์ ๋์๊ฐ ํ์ฑ์ด ์ค๋จ๋ ์์ ๋ถํฐ ๋ค์ ํ์ฑ์ ์์ํ๋ค.
๊ทธ๋ ๊ธฐ์ ์ฌ์ฉ์๋ ์๋๊ฐ ๋๋ ค์ง ๊ฒ ์ฒ๋ผ ๋๊ปด์ง๊ณ ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค.
์ด๋ฌํ ์๋ฆฌ ๋๋ฌธ์ ์คํฌ๋ฆฝํธ ์์ค๋ body ํ๊ทธ ๋์ ๋๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํ์ฑ๊ณผ ์คํ์ ๋ธ๋ผ์ฐ์ ์์ง์ด ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์์ ์ฒ๋ฆฌํ๋ค.
๐จ ๋ง์ฝ ์คํฌ๋ฆฝํธ ํ์ผ์ ๋จผ์ ๋ก๋ํ๊ฒ ๋๋ ๊ฒฝ์ฐ
- ์คํฌ๋ฆฝํธ๊ฐ ๋ฌธ์๋ฅผ ํ์ฑํ๋ ๋์ ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ ์์ ์ ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ ์คํ์ผ์ด ํ์ฑ๋์ง ์์ ์ํ๊ฐ๋จ
- ํ๋ฉด ๋ ์ด์์์ด ์ ๋๋ก ๊ตฌ์ฑ๋์ง ์์ ์ํ๋ก ์ฌ์ฉ์์๊ฒ ๋ทฐ๋ฅผ ์ ๊ณตํ๊ฒ ๋ ํ๋ฅ ์ด ๋๋ค.
- ์คํฌ๋ฆฝํธ ์์ค๋ฅผ ํ๋จ์ ๋๊ฒ ๋๋ฉด HTML๋ฌธ์๋ฅผ ํ๋ฉด์ ํ์ํ๋ ์๋๊ฐ ๋นจ๋ผ์ง๊ฒ ๋๊ณ ์ฌ์ฉ์๊ฐ ๋ทฐ๋ฅผ ๋ณด๋๋ฐ ํ์ํ ์ฌ๋งํ ๋ฌธ์๋ฅผ ํด์ํ ์ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ๋ถํธ์ ์ด๋ํ์ง ์์ ์ ์๋ค.
์ด์ #2
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ DOM API ํตํด์ DOM ํธ๋ฆฌ๋ฅผ ๋ณ๊ฒฝ์ํฌ ์ ์๋ค.
์์ ์ด์ #1์์ ์ธ๊ธํ๋ฏ JS ์์ง๊ณผ ๋ ๋๋ง ์์ง์ ์ง๋ ฌ์ ์ผ๋ก ์คํํ๋ค.
์ฆ, ์์์ ๋ถํฐ ํ์คํ์ค ๋ด๋ ค๊ฐ๋ฉฐ ์ฝ๋๋ฅผ ์คํ์ํค๊ณ , ํ ์์ง์ด ์คํ๋๋ฉด ๋ค๋ฅธ ์์ง์ ์คํ ๊ถํ์ ์์คํ๋ค.
๋ง์ฝ ์๋ฐ์คํฌ๋ฆฝํธํ์ผ์ด ์ฝ์ด์ง๋ ๋์์๋ HTML ,CSS ํ์ฑ์ด ์ค๋จ๋์ง ์์ผ๋ฉด ๋ ๋ํธ๋ฆฌ๊ฐ ๋ค ๊ตฌ์ฑ๋์ง ์์์ ๋ JS ์์ง์ js์ฝ๋ ํด์์ ์ํด์ DOM ํธ๋ฆฌ ๋ณ๊ฒฝ์ํฌ ์๋ ์๊ณ ์์ง ๊ทธ๋ ค์ง์ง ์์ DOM ํธ๋ฆฌ์ ๋ ธ๋์ ์ ๊ทผํ๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ์ ์งํ๋ค.
๊ฐ์ ์ด์ ๋ก <script> ํ๊ทธ ๋ฅผ <body> ํ๊ทธ ๋์ ๋๋ ๊ฒ์ ๊ถ์ฅ.
HTML ํ์ฑ ๋ธ๋กํนํ์์ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด HTML5๋ถํฐ async์ defer ์ถ๊ฐ๋จ.
async์ defer๋ HTMLํ์ฑ๊ณผ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ ์งํ๋๋๋ก ๋ง๋ค์ด์ค.
๋ฐ ์ด์ ์์ ๋ณดํต async, defer ์์ฑ์ ์ด์ฉํ๋ค.
async์์ฑ์ HTML๋ ๋๋ง์ ๋ฉ์ถ์ง ์๊ณ ๋์์ js ํ์ผ์ ๋ค์ด๋ก๋ ํ๊ณ
๋ค์ด๋ก๋๊ฐ ๋๋ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
defer์์ฑ์ HTML๋ ๋๋ง์ ๋ฉ์ถ์ง ์๊ณ ๋์์ js ํ์ผ์ ๋ค์ด๋ก๋ ํ๊ณ
HTML๋ ๋๋ง์ด ๋๋ ํ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
CSS๋ ํ์ฑ ์ค๋จํ์ง ์์
→ ์คํ์ผ ์ํธ๋ ์ด๋ก ์ ์ผ๋ก DOM ํธ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ํ์ฑ์ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์ค๋จํ์ง ์๋๋ค.
'๐Technical interview(Front)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Get๊ณผ Post์ ์ฐจ์ด (0) | 2022.12.16 |
---|---|
[JS]์ด๋ฒคํธ ๋ฒ๋ธ๋ง๊ณผ ์บก์ฒ๋ง(Bubbling & Capturing) (0) | 2022.11.27 |
๋ธ๋ผ์ฐ์ ์ ์ฅ์ ์ฐจ์ด์ ( Localstorage, SessionStorage, Cookie ) (0) | 2022.11.16 |
Promise (0) | 2022.11.16 |
[JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? (0) | 2022.11.09 |