iknowDev
Blog Driven Development
iknowDev ๐Ÿ˜
/
  • ์ž‘์„ฑ ๊ธ€ ๋ชฉ๋ก
  • Github
  • Category (30)
    • ๐Ÿ“• CS ์Šคํ„ฐ๋”” (22)
      • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ (0)
      • Java, Spring (5)
      • ๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋ฆฌ๋ˆ…์Šค (4)
      • ๋„คํŠธ์›Œํฌ (11)
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (1)
      • ๋””์ž์ธ ํŒจํ„ด (1)
      • ์ž๋ฃŒ ๊ตฌ์กฐ (0)
    • ๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” (4)
      • Java (3)
      • JavaScript (0)
      • Python3 (1)
    • ๐Ÿ’ป ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ๊ธฐ (2)
    • ๐Ÿš€ ๊ฒฝํ—˜ (2)
      • ์—๋Ÿฌ ๋Œ€์‘ (2)
      • ํšŒ๊ณ  (0)
      • ์ฆ๊ฑฐ์šด์ผ (0)

Popular

Tag

side Project   
Was   
Spring   
๊ณจ๋“œ   
๋ฐฑ์ค€   
ํŠธ๋žœ์žญ์…˜   
Netty   
์—๋Ÿฌ ๋Œ€์‘   
java   
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค   

Comment


Designed By hELLO
iknowDev

Blog Driven Development

๐Ÿ“• CS ์Šคํ„ฐ๋””/๋„คํŠธ์›Œํฌ

[๋„คํŠธ์›Œํฌ] ๐ŸŒ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•ด๋ณด์ž

2023. 4. 22. 22:34

์ด์ „์— ํ•™์Šตํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋™์ž‘ ์›๋ฆฌ ์ค‘ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋งํ•˜๋Š” ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด๋ด…์‹œ๋‹ค.

 

๐Ÿ“Œ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ตฌ์กฐ

* Data Storage(Data Persistence) := ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํŒŒํŠธ

์ฟ ํ‚ค๋‚˜ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€, indexedDB, ์›น SQL, ํŒŒ์ผ์‹œ์Šคํ…œ ๋“ฑ์— ์ ‘๊ทผํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

 

 

 

 

 

๐Ÿ“Œ ๋ธŒ๋ผ์šฐ์ €๋ณ„ ๋ Œ๋”๋ง ์—”์ง„ ์ข…๋ฅ˜

Chrome BLINK
Safari WEBKIT
Firefox GECKO

์ด์ „์— Chrome์€ WEBKIT์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ 2013๋…„ WEBKIT์—์„œ ํŒŒ์ƒ๋œ BLINK๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

 

๋Œ€์ค‘ํ™”๋œ ํฌ๋กฌ์˜ ๋ Œ๋”๋ง ์›๋ฆฌ๋ฅผ ์ค‘์ ์ ์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํฌ๋กฌ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €์™€ ๋‹ฌ๋ฆฌ ๊ฐ ํƒญ๋งˆ๋‹ค ๋ณ„๋„์˜ ๋ Œ๋”๋ง ์—”์ง„ ์ธ์Šคํ„ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋ชฉํ• ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ํƒญ์€ ๋…๋ฆฝ๋œ ํ”„๋กœ์„ธ์Šค๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ“Œ ๋ Œ๋”๋ง ์—”์ง„ ๋ชฉํ‘œ

HTML๊ณผ CSS, JavaScript๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฐ”ํƒ•์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ทธ๋ ค๋‚ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

HTML๋กœ๋ถ€ํ„ฐ DOM ํŠธ๋ฆฌ๋ฅผ, CSS๋กœ๋ถ€ํ„ฐ CSSOM ํŠธ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

DOM ๋ฐ CSSOM์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ Œ๋” ํŠธ๋ฆฌ์—์„œ ๋ ˆ์ด์•„์›ƒ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ์˜ ๊ธฐํ•˜ํ•™์  ํ˜•ํƒœ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ณ„ ๋…ธ๋“œ๋ฅผ ํ™”๋ฉด์— ํŽ˜์ธํŠธํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

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

  • ํŒŒ์‹ฑ(Parsing)
  • ๋ Œ๋” ํŠธ๋ฆฌ(Render Tree) ๊ตฌ์ถ•
  • ๋ ˆ์ด์•„์›ƒ(Layout) ๋˜๋Š” ๋ฆฌํ”Œ๋กœ์šฐ(Reflow)
  • ํŽ˜์ธํŠธ(Paint)

 

๋ฌธ์„œ ํŒŒ์‹ฑ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŒŒ์‹ฑ ๊ฒฐ๊ณผ๋Š” ๋ณดํ†ต ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ ํŠธ๋ฆฌ์ธ๋ฐ ํŒŒ์‹ฑ ํŠธ๋ฆฌ(parse tree) ๋˜๋Š” ๋ฌธ๋ฒ• ํŠธ๋ฆฌ(syntax tree)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

HTML ํŒŒ์„œ๋Š” HTML ๋งˆํฌ์—…์„ ํŒŒ์‹ฑ ํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ‘‰ DOM ํŠธ๋ฆฌ์™€ CSSOM ํŠธ๋ฆฌ ์ƒ์„ฑ

๋ฌธ์„œ๋ฅผ ๋ฐ›์•„ ํŒŒ์‹ฑ ํ›„ ํƒœ๊ทธ๋กœ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ํ† ํฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋ ‰์‹ฑ๋˜์–ด ๋…ธ๋“œ ๊ฐ์ฒดํ™”๋ฉ๋‹ˆ๋‹ค.

 

DOM ํŠธ๋ฆฌ

HTMLํƒœ๊ทธ ์•„๋ž˜์˜ ๋…ธ๋“œ๋“ค์ด ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง

  • ์ตœ์ƒ์œ„ docment ๊ฐ์ฒด
  • ํƒœ๊ทธ๋Š” ์—˜๋ฆฌ๋จผํŠธ ๋…ธ๋“œ
  • ํƒœ๊ทธ์˜ ์š”์†Œ๋Š” ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋…ธ๋“œ
  • ํ…์ŠคํŠธ๋Š” ํ…์ŠคํŠธ ๋…ธ๋“œ
  • ์ฃผ์„์€ ์ฝ”๋ฉ˜ํŠธ ๋…ธ๋“œ

 

 

 

CSSOM ํŠธ๋ฆฌ

CSS๋กœ๋Š” ๋”์˜ ํ™”๋ฉด ํ‘œ์‹œ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” cssom ํŠธ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง

  • body ํƒœ๊ทธ์— text-align์„ ์ฃผ๋ฉด ์ž์‹ ์š”์†Œ์— ๋™์ผํ•œ ์†์„ฑ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ‘‰ render tree ์ƒ์„ฑ

๋ Œ๋”๋ง ์—”์ง„์ด ์ด ๋‘˜์„ ํ•ฉ์ณ์„œ render tree๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

 

 

 

๐Ÿ‘‰ render tree ๋ฐฐ์น˜

๋ ˆ์ด์•„์›ƒ(reflow) ๊ณผ์ •

  • ๋ทฐํฌํŠธ ๋‚ด์— ์š”์†Œ๋“ค์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐ
  • css์˜ %๋‚˜ em๊ณผ ๊ฐ™์€ ์ƒ๋Œ€์  ์†์„ฑ์ด ๋ทฐํฌํŠธ์— ๋งž์ถฐ ํ”ฝ์…€๋กœ ๊ณ„์‚ฐ

 

 

 

๐Ÿ‘‰ ํŽ˜์ธํŠธ ๊ณผ์ •

์š”์†Œ๋“ค์„ ํŒŒ์•…ํ•œ ํ›„ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๋„๋ก ํ•˜๋Š” ๊ณผ์ •

ํฌ๋ฆฌํ‹ฐ์ปฌ ๋ Œ๋”๋ง ํŒจ์Šค์˜ ๋™์ž‘ ์‹œ๊ฐ„์„ ์ค„์ด๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ ์›น ํŽ˜์ด์ง€ ํ‘œ์‹œ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

 

ui ์—…๋ฐ์ดํŠธ ์ƒํ™ฉ (js๋กœ css๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด)

  1. ์š”์†Œ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€” ๋•Œ, ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ -> ๋ ˆ์ด์•„์›ƒ์ด ๋‹ค์‹œ ๋™์ž‘
  2. ์ด๋ฏธ์ง€๋‚˜ ํ…์ŠคํŠธ ์ƒ‰๊ณผ ๊ฐ™์ด ๋ ˆ์ด์•„์›ƒ์˜ ์ˆ˜์น˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ -> paint ๋‹ค์‹œ ๋™์ž‘
  3. ๋ ˆ์ด์–ด์˜ ํ•ฉ์„ฑ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ

 

 

 

โž• ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋žœ๋”๋ง ์ตœ์ ํ™”

position ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ์›€์ง์ด๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ layout ๊ณผ์ •๋ถ€ํ„ฐ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

transform ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ ˆ์ด์–ด์˜ ํ•ฉ์„ฑ๋งŒ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 css ์†์„ฑ๋ณ„ ui ์—…๋ฐ์ดํŠธ ์ƒํ™ฉ ์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

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

 

 

 


 

How browsers work

 

web.dev

    '๐Ÿ“• CS ์Šคํ„ฐ๋””/๋„คํŠธ์›Œํฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Web ๐ŸŒ] WebServer/WAS, ์ •์ ํŽ˜์ด์ง€/๋™์ ํŽ˜์ด์ง€
    • [WEB ๐ŸŒ] CSR/SSR/SSG, SPA/MPA, AJAX ๋ชฝ๋•… ์ •๋ฆฌ
    • [WEB] ๐ŸŒ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋™์ž‘ ์›๋ฆฌ - ์ฃผ์†Œ์ฐฝ์— URL ๊ฒ€์ƒ‰ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •
    • ๋”ฐ๋ผํ•˜๋ฉด ๋˜๋Š” Netty ๊ธฐ๋ฐ˜ ๊ฐ„๋‹จํ•œ Live Chat ์„œ๋ฒ„ ์˜ˆ์ œ
    iknowDev
    iknowDev
    iknowDev ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ SSAFY 8๊ธฐ Java

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”