CS ๊ณต๋ถ€ - front

[์›น] ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋™์ž‘ ๊ณผ์ • - ๋ Œ๋”๋ง ์—”์ง„

Nuri-KSLV-II 2023. 2. 12. 20:27

๐Ÿ“Œ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ณตํ†ต์ ์ธ ๊ตฌ์กฐ

๋ธŒ๋ผ์šฐ์ € ๊ณตํ†ต ๊ตฌ์กฐ

- User Interface : ์ฃผ์†Œ ํ‘œ์‹œ์ค„, ์ด์ „/๋‹ค์Œ/์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ ๋“ฑ ์›นํŽ˜์ด์ง€๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค

- Broswer Engine : ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ Œ๋”๋ง ์—”์ง„์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์—”์ง„ 

- Rendering Engine : HTML๊ณผ CSS๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ์š”์ฒญํ•  ์›น ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ Œ๋”๋ง ์—”์ง„

- Networking : ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์ˆ˜ํ–‰

- Javascript Interpreter : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฐํ„ฐ(ex. ํฌ๋กฌ์—์„œ V8)

- UI Bacend : ์ฒดํฌ๋ฐ•์Šค๋‚˜ ๋ฒ„ํŠผ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ์œ„์ ฏ์„ ๊ทธ๋ ค์ฃผ๋Š” UI Backend

- Data Persistance : ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€๋‚˜ ์ฟ ํ‚ค์™€ ๊ฐ™์ด ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํŒŒํŠธ

 

 

๐Ÿ“Œ ๋ Œ๋”๋ง ์—”์ง„ - ํฌ๋กฌ ๊ธฐ์ค€ ์„ค๋ช…

๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋‹ค๋ฆ„
Safari : Webkit
Firefox : Gecko
Chrome : Blink(์›นํ‚ท์—์„œ ํŒŒ์ƒ)

 

โœ” ๋ Œ๋”๋ง ์—”์ง„์˜ ๋ชฉ์ 

1. HTML, CSS, JS, ์ด๋ฏธ์ง€ ๋“ฑ ์›นํŽ˜์ด์ง€์— ํฌํ•จ๋œ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ํ™”๋ฉด์— ๋ณด์—ฌ์ค€๋‹ค.

2. ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ, ํšจ์œจ์ ์œผ๋กœ ๋ Œ๋”๋ง์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

 

โœ” ๋ Œ๋”๋ง ์—”์ง„์˜ ๋™์ž‘ ๊ณผ์ • - Critical Rendering Path

๋ Œ๋”๋ง ์—”์ง„์˜ ๋™์ž‘๊ณผ์ •

1. Dom Tree ์ƒ์„ฑ

i. html ์ฝ”๋“œ๋Š” ์–ดํœ˜ ๋ถ„์„์„ ํ†ตํ•ด html5 ํ‘œ์ค€์— ์ง€์ •๋œ ๊ณ ์œ ํ•œ ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜๋จ(ํ† ํฐํ™”)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋™์ž‘ ๊ณผ์ •</title>
    </head>
    <body>
        <!--์ฃผ์„-->
    	<h1>๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง</h1>
		<p>์˜ˆ์‹œ</p>
    </body>
</html>

  • StartTag : htmlํƒœ๊ทธ๊ฐ€ ์—ด๋ฆผ
  • EndTag : htmlํƒœ๊ทธ๊ฐ€ ๋‹ซํž˜

 

ii. ๋ธŒ๋ผ์šฐ์ €์˜ ๋ ‰์‹ฑ(๊ตฌ๋ฌธ ๋ถ„์„) ๊ณผ์ • - ํ† ํฐ์ด ํ•ด๋‹น ์†์„ฑ๊ณผ ๊ทœ์น™์„ ์ •์˜ํ•˜๋Š” ๋…ธ๋“œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

๋ ‰์‹ฑ

 

iii. ๊ฐ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ด€์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑ - Dom Tree

Dom Tree

  • ์ตœ์ƒ์œ„๋Š” document ๊ฐ์ฒด
  • ํƒœ๊ทธ๋Š” element node
  • ํƒœ๊ทธ์˜ ์š”์†Œ๋Š” attribute node
  • ํ…์ŠคํŠธ๋Š” text node
  • ์ฃผ์„์€ comment node

 

2. CSSOM Tree ์ƒ์„ฑ 

body {
  margin: 0;
  padding: 0;
  text-align: center;
}

h1 {
  color: red;
}

body {
  font-size: 20px;
  text-align: right;
}

div {
  width: 50%;
  margin: 0 auto;
}

span {
  display: none;
}

 

์œ„์—์„œ ์•„๋ž˜๋กœ ์†์„ฑ์ด ์ „ํŒŒ๋˜๋Š” ํŠธ๋ฆฌ๊ตฌ์กฐ

 

3. Render Tree ์ƒ์„ฑ = Dom Tree + Cssom Tree

- ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์–ด์•ผ ํ•  ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ปจํ…์ธ , ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ

- ๋Œ€๋žต์ ์ธ ๊ณผ์ •

document ๋ถ€ํ„ฐ ๊ฐ ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ๊ฐ์— ๋งž๋Š” cssom์„ ์ฐพ์•„์„œ ๊ทœ์น™์„ ์ ์šฉ
→ ๋ Œ๋”์™€ ๊ด€๋ จ๋œ ์š”์†Œ๋ฅผ ๋ Œ๋” ํŠธ๋ฆฌ์— ํฌํ•จ 
→  meta ํƒœ๊ทธ๋‚˜ display:none ์†์„ฑ์„ ๊ฐ€์ง„ ์š”์†Œ๋Š” ๋ Œ๋”์™€ ๊ด€๊ณ„๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ Œ๋”ํŠธ๋ฆฌ์— ํฌํ•จx

 

Render Tree ์ƒ์„ฑ - ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ฆผ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ Œ๋”ํŠธ๋ฆฌ์— ํฌํ•จ๋˜์–ด ์žˆ์Œ

 

 

4. Layout(Reflow)

- ๋ทฐํฌํŠธ ๋‚ด์˜ ์š”์†Œ๋“ค์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐ

- ๋ฐ•์Šค๋ชจ๋ธ์— ๋”ฐ๋ผ ํ…์ŠคํŠธ๋‚˜ ์š”์†Œ์˜ ๋ฐ•์Šค๊ฐ€ ํ™”๋ฉด์—์„œ ์ฐจ์ง€ํ•˜๋Š” ์˜์—ญ์ด๋‚˜ ์—ฌ๋ฐฑ ๊ทธ๋ฆฌ๊ณ  ์ด์™ธ์˜ ์Šคํƒ€์ผ ์†์„ฑ์ด ๊ณ„์‚ฐ๋จ

- ํผ์„ผํŠธ๋‚˜, em์€ ํ”ฝ์…€๋‹จ์œ„๋กœ ๋ณ€ํ™˜๋จ

 

 

5. Paint

- ๋ Œ๋”ํŠธ๋ฆฌ์— ํฌํ•จ๋œ ์š”์†Œ๋‚˜ ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ์ด ์‹ค์ œ ํ”ฝ์…€๋กœ ๊ทธ๋ ค์ง€๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

 

 

๐Ÿ“Œ ์ธ์‚ฌ์ดํŠธ

Critical Rendering Path์˜ ์‹œ๊ฐ„์„ ์ค„์ด๋ฉด, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๋„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

โœ” UI๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜๋Š” 3๊ฐ€์ง€ ์ƒํ™ฉ

JavaScript → Style Layout → Paint → Composite

1. ๋‹ค์‹œ Layout์ด ๋ฐœ์ƒ

ex. ์ฃผ๋กœ ์š”์†Œ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€” ๋•Œ, ํ˜น์€ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๋‹ค์‹œ ๋ฐœ์ƒ

 

JavaScript → Style  Layout  Paint → Composite

 

2. Paint ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ฐœ์ƒ

ex. ์ฃผ๋กœ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋‚˜ ํ…์ŠคํŠธ ์ƒ‰์ƒ, ๊ทธ๋ฆผ์ž ๋“ฑ ๋ ˆ์ด์•„์›ƒ์˜ ์ˆ˜์น˜์—๋Š” ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๊ณ  ์Šคํƒ€์ผ์˜ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚ฌ์„ ๊ฒฝ์šฐ

 

JavaScript → Style  Layout  Paint  Composite

3. *๋ ˆ์ด์–ด์˜ ํ•ฉ์„ฑ๋งŒ ๋‹ค์‹œ ๋ฐœ์ƒ

- ์„ฑ๋Šฅ์ƒ์œผ๋กœ ๊ฐ€์žฅ ํฐ ์ด์ ์„ ๊ฐ€์ง

*๋ ˆ์ด์–ด?
- ํŽ˜์ธํŒ…ํ•  ์˜์—ญ์„ ๋‚˜๋ˆ„์–ด ๋†“์€ ๊ฒƒ์„ ๋ ˆ์ด์–ด๋ผ๊ณ  ํ•จ
- ๋ Œ๋” ํŠธ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๋ ˆ์ด์–ด์— ํฌํ•จ ๋จ, ๋ ˆ์ด์–ด ๋˜ํ•œ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ
- ๋ Œ๋”๋ง ์—”์ง„์ด ํŽ˜์ธํŒ… ๊ณผ์ •์—์„œ ๋ ˆ์ด์–ด๋ฅผ ๊ฐ๊ฐ ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜์˜ ๋น„ํŠธ๋งต์œผ๋กœ ์ปดํฌ์ง“ ์‹œ์ผœ์„œ ํŽ˜์ด์ง€๋ฅผ ์™„์„ฑ

 

์ฆ‰, CSS ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋””์„œ๋ถ€ํ„ฐ ์—…๋ฐ์ดํŠธ ๋˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๋กœ ์Šคํƒ€์ผ๋ง์„ ํ•ด๋ณด๋Š” ๊ฒƒ ๋˜ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ํ•œ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Œ

- ex. ์• ๋‹ˆ๋ฉ”์ด์…˜ ์†์„ฑ์— left๋ฅผ ๋จน์ด๋ฉด, ํŽ˜์ธํŠธ ๊ณผ์ •๋ถ€ํ„ฐ ๋‹ค์‹œ ์ผ์–ด๋‚œ๋‹ค. ํ•˜์ง€๋งŒ transform์†์„ฑ์„ ๋จน์ด๋ฉด composite ๊ณผ์ •๋งŒ์œผ๋กœ๋„ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค ์ด๋Ÿด ๊ฒฝ์šฐ transform์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ 

- css ํŠธ๋ฆฌ๊ฑฐ : https://csstriggers.com 

 

CSS Triggers List - What Kind of Changes You Can Make

Check out our ultimate list of CSS triggers and learn which changes you can make on your website and it will affect your properties.

csstriggers.com

 

 

์ฐธ๊ณ  : ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€?

  1. HTML/CSS ํŒŒ์‹ฑ ๊ณผ์ •๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ Œ๋”๋ง ์—”์ง„์€ HTML์„ ํ•œ ์ค„์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ํŒŒ์‹ฑํ•˜๋ฉฐ DOM์„ ์ƒ์„ฑํ•ด ๋‚˜๊ฐ€๋‹ค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋Š” <script> ํƒœ๊ทธ๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ˜ํ…์ธ ๋กœ ๋‹ด์€ <script> ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด DOM ์ƒ์„ฑ์„ ์ผ์‹œ ์ค‘๋‹จํ•œ๋‹ค.
  2. ๊ทธ๋ฆฌ๊ณ  <script> ํƒœ๊ทธ์˜ src ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์— ์ •์˜๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ๋กœ๋“œํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด๋‚˜ <script> ํƒœ๊ทธ ๋‚ด์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•ด โ‘ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ์ œ์–ด๊ถŒ์„ ๋„˜๊ธด๋‹ค. ์ดํ›„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ๊ณผ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋ฉด โ‘  ๋ Œ๋”๋ง ์—”์ง„์œผ๋กœ ๋‹ค์‹œ ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ HTML ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋œ ์ง€์ ๋ถ€ํ„ฐ ๋‹ค์‹œ HTML ํŒŒ์‹ฑ์„ ์‹œ์ž‘ํ•˜์—ฌ DOM ์ƒ์„ฑ์„ ์žฌ๊ฐœํ•œ๋‹ค.
  3. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ๊ณผ ์‹คํ–‰์€ โ‘  ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์—”์ง„์ด ์•„๋‹Œ โ‘ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ฒ˜๋ฆฌํ•œ๋‹ค. โ‘ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ €์ˆ˜์ค€ ์–ธ์–ด(low-level language)๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  4. โ‘ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•ด์„ํ•˜์—ฌ AST(Abstract Syntax Tree: ์ถ”์ƒ์  ๊ตฌ๋ฌธ ํŠธ๋ฆฌ)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  AST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ์ฝ”๋“œ(intermediate code)์ธ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.
  5. ๋ฆฌํ”Œ๋กœ์šฐ์™€ ๋ฆฌํŽ˜์ธํŠธ
  • ๋งŒ์•ฝ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— DOM์ด๋‚˜ CSSOM์„ ๋ณ€๊ฒฝํ•˜๋Š” DOM API๊ฐ€ ์‚ฌ์šฉ๋œ ๊ฒฝ์šฐ DOM์ด๋‚˜ CSSOM์ด ๋ณ€๊ฒฝ๋œ๋‹ค.
  • ์ด๋•Œ ๋ณ€๊ฒฝ๋œ DOM๊ณผ CSSOM์€ ๋‹ค์‹œ ๋ Œ๋” ํŠธ๋ฆฌ๋กœ ๊ฒฐํ•ฉ๋˜๊ณ  ๋ณ€๊ฒฝ๋œ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ ˆ์ด์•„์›ƒ๊ณผ ํŽ˜์ธํŠธ ๊ณผ์ •์„ ๊ฑฐ์ณ ๋ธŒ๋ผ์šฐ์ €์˜ ํ™”๋ฉด์— ๋‹ค์‹œ ๋ Œ๋”๋งํ•œ๋‹ค. ์ด๋ฅผ ๋ฆฌํ”Œ๋กœ์šฐ(reflow), ๋ฆฌํŽ˜์ธํŠธ(repaint)๋ผ ํ•œ๋‹ค.

 

 

์ฐธ๊ณ  

junh0328, ํ”„๋ก ํŠธ์—”๋“œ๊ธฐ์ˆ ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ

https://github.com/junh0328/prepare_frontend_interview/blob/main/js.md#%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EB%A0%8C%EB%8D%94%EB%A7%81-%EA%B3%BC%EC%A0%95

 

GitHub - junh0328/prepare_frontend_interview: ๐Ÿ“š ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ๋ฉด์ ‘์„ ์œ„ํ•œ ํ•ธ๋“œ๋ถ ๋งŒ๋“ค๊ธฐ

๐Ÿ“š ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ๋ฉด์ ‘์„ ์œ„ํ•œ ํ•ธ๋“œ๋ถ ๋งŒ๋“ค๊ธฐ. Contribute to junh0328/prepare_frontend_interview development by creating an account on GitHub.

github.com

์ฒดํ”„, ์šฐ์•„ํ•œํ…Œํฌ 10๋ถ„ํ…Œํฌํ†ก

https://www.youtube.com/watch?v=sJ14cWjrNis 

https://velog.io/@moonshadow/CSSOM

 

CSSOM?

DOM, CSSOM, Render Tree์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๋Š” ๊ธ€

velog.io