πŸ‘©πŸ»β€πŸ¦° ν”„λ‘ νŠΈμ—”λ“œ λ©΄μ ‘

Bora ImΒ·2020λ…„ 6μ›” 15일
5

λΈŒλΌμš°μ € λ™μž‘ 원리

  1. HTML λ§ˆν¬μ—…μ„ μ²˜λ¦¬ν•˜κ³  DOM (λ¬Έμ„œκ°μ²΄λͺ¨λΈ) 트리λ₯Ό λΉŒλ“œν•œλ‹€.
  2. CSS λ§ˆν¬μ—…μ„ μ²˜λ¦¬ν•˜κ³  CSSOM (CSS객체λͺ¨λΈ) 트리λ₯Ό λΉŒλ“œν•œλ‹€.
  3. DOM 및 CSSOM 을 κ²°ν•©ν•΄ λ Œλ”λ§ 트리λ₯Ό ν˜•μ„±ν•œλ‹€.
  4. λ Œλ”λ§ νŠΈλ¦¬μ—μ„œ λ ˆμ΄μ•„μ›ƒμ„ μ‹€ν–‰ν•΄ 각 λ…Έλ“œμ˜ ν˜•νƒœλ₯Ό κ³„μ‚°ν•œλ‹€.
  5. κ°œλ³„ λ…Έλ“œλ₯Ό 화면에 λž˜μŠ€ν„°ν™” ν•œλ‹€.

Interview_Question_for_Beginner | Github

λ¬Έμ„œ νŒŒμ‹± : λΈŒλΌμš°μ €κ°€ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  μ‚¬μš©ν•  수 μžˆλŠ” ꡬ쑰둜 λ³€ν™˜ν•˜λŠ” 것
λ Œλ”λ§ 엔진(λΈŒλΌμš°μ € 엔진) : 크둬의 블링크, μ‚¬νŒŒλ¦¬μ˜ μ›Ήν‚· λ“± μ›Ή λΈŒλΌμš°μ €μ˜ 핡심이 λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 μš”μ†Œ. 주된 역할은 μš”μ²­ 받은 λ‚΄μš©μ„ λΈŒλΌμš°μ € 화면에 ν‘œμ‹œν•˜λŠ” 일

크둜슀 λΈŒλΌμš°μ§•

μ›Ή ν‘œμ€€μ— 따라 κ°œλ°œμ„ ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯Έ OS λ˜λŠ” ν”Œλž«νΌμ— λŒ€μ‘ν•˜λŠ” 것을 λ§ν•œλ‹€.
즉, λΈŒλΌμš°μ €μ˜ λ Œλ”λ§ 엔진이 λ‹€λ₯Έ κ²½μš°μ— 인터넷이 이상없이 κ΅¬ν˜„λ˜λ„λ‘ ν•˜λŠ” κΈ°μˆ μ΄λ‹€.
μ›Ή μ‚¬μ΄νŠΈλ₯Ό μ„œλ‘œ λΉ„μŠ·ν•˜κ²Œ λ§Œλ“€μ–΄ μ–΄λ–€ ν™˜κ²½ μ—μ„œλ„ 이상없이 μž‘λ™λ˜κ²Œ ν•˜λŠ”λ° κ·Έ λͺ©μ μ΄ μžˆλ‹€.
즉, μ–΄λŠ ν•œμͺ½μ— μ΅œμ ν™”λ˜μ–΄ μΉ˜μš°μΉ˜μ§€ μ•Šλ„λ‘ κ³΅ν†΅μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό μ œμž‘ν•˜λŠ” 방법을 λ§ν•œλ‹€.

Interview_Question_for_Beginner | Github

μΏ ν‚€ vs μ„Έμ…˜μ €μž₯μ†Œ vs λ‘œμ»¬μ €μž₯μ†Œ

μΏ ν‚€ Cookies

( HTTP μΏ ν‚€, μ›Ή μΏ ν‚€, λΈŒλΌμš°μ € μΏ ν‚€ )
인터넷 μ‚¬μš©μžκ°€ μ–΄λ– ν•œ μ›Ήμ‚¬μ΄νŠΈλ₯Ό λ°©λ¬Έν–ˆμ„ λ•Œ μ‚¬μ΄νŠΈκ°€ μ‚¬μš©ν•˜κ³  μžˆλŠ” μ„œλ²„λ₯Ό 톡해
μ‚¬μš©μžμ˜ 컴퓨터에 μ„€μΉ˜λ˜λŠ” μž‘μ€ 기둝 정보 νŒŒμΌμ„ λ§ν•œλ‹€.
μ‚¬μš©μžμ˜ μΏ ν‚€ 정보가 μ„œλ²„λ‘œ μ „λ‹¬λ˜μ–΄ μ‚¬μš©μžλ₯Ό κ΅¬λ³„ν•˜λŠ” 데 쓰인닀.

μΏ ν‚€μ˜ 단점

  • 4KB λ‚΄μ˜ λ°μ΄ν„°λ§Œ 보관할 수 μžˆλ‹€.
  • 맀 HTTP ν†΅μ‹ μ‹œ μ „μ†‘λ˜μ–΄ 비ꡐ적 톡신속도가 λŠλ¦¬λ‹€.
  • λ³„λ„μ˜ μ•”ν˜Έν™” 없이 포함돼 μ „λ‹¬λ˜μ–΄ μ‚¬μš©μž μ •λ³΄μ˜ λ³΄μ•ˆ 문제

μ›ΉμŠ€ν† λ¦¬μ§€ Web Storage

HTML5μ—μ„œ μΏ ν‚€μ˜ 단점을 보완해 λ§Œλ“  기술둜
μš©λŸ‰μ΄ 비ꡐ적 크고(5MB), HTTP μš”μ²­μ‹œ μ„œλ²„μ— μ „λ‹¬λ˜μ§€ μ•ŠμœΌλ©°, λ³΄μ•ˆλ„ ν•œμΈ΅ κ°•ν™”

  • μ„Έμ…˜ μ €μž₯μ†Œ (Session Storage) : λΈŒλΌμš°μ €κ°€ λ‹«νž 경우(μ„Έμ…˜ μ’…λ£Œ) μ‚­μ œλ˜μ–΄ κ°„λ‹¨ν•œ μž…λ ₯ λ‚΄μš©μ„ μ €μž₯ν•΄ μ—λŸ¬μ‹œ λ³΅κ΅¬ν•˜λŠ” κΈ°λŠ₯으둜 μ‚¬μš©ν•œλ‹€.
  • 둜컬 μ €μž₯μ†Œ (Local Storage) : μ‚­μ œν•˜μ§€ μ•ŠλŠ” ν•œ λ‚¨μ•„μžˆμ–΄ μ§€μ†μ μœΌλ‘œ ν•„μš”ν•œ μžλ™λ‘œκ·ΈμΈμ΄λ‚˜ 섀정값을 μ €μž₯ν•œλ‹€.

<script> async ? defer ?

μ›Ή λΈŒλΌμš°μ €κ°€ μ™ΈλΆ€ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό λΆˆλŸ¬μ˜€λŠ” <script> λ₯Ό λ§Œλ‚˜κ²Œ 되면 ν•΄λ‹Ή 슀크립트λ₯Ό λ‚΄λ €λ°›μ•„ ν•΄μ„ν•˜κ³  μ‹€ν–‰ν•  λ•ŒκΉŒμ§€ μ›Ή λ¬Έμ„œμ˜ HTML μ½”λ“œ νŒŒμ‹±μ„ μž μ‹œ 미룬닀.
βœ” HTML λ Œλ”λ§μ„ λ©ˆμΆ”κ³  Script λ‘œλ“œ

μš©λŸ‰μ΄ 큰 슀크립트λ₯Ό λ¬Έμ„œ 해석 μ΄ˆκΈ°μ— λ§Œλ‚˜κ²Œ 되면 νŽ˜μ΄μ§€λ₯Ό λΆˆλŸ¬μ˜€λŠ” 속도λ₯Ό μ§€μ²΄μ‹œμΌœ 전체적 μ„±λŠ₯을 λ–¨μ–΄λœ¨λ¦¬κ²Œ λ˜λŠ”λ°, 이런 병λͺ© ν˜„μƒμ„ 막기 μœ„ν•œ <script> νƒœκ·Έμ˜ 속성이닀.
async ν˜Ήμ€ defer 된 μŠ€ν¬λ¦½νŠΈλŠ” λ¬Έμ„œ νŒŒμ‹±μ˜ 쀑단 없이 λ™μ‹œμ— λ‚΄λ €λ°›κ²Œ λœλ‹€.

<script async>
<script defer>

async 와 defer λŠ” HTML λ Œλ”λ§κ³Ό Script λ‘œλ“œλ₯Ό λ™μ‹œμ— ν•˜λ©°
βœ” λ‘˜μ˜ μ°¨μ΄λŠ” Script κ°€ μ‹€ν–‰λ˜λŠ” μ‹œμ μ΄λ‹€.

async λŠ” window load 전에 Script λ‘œλ“œκ°€ μ™„λ£Œλ˜λ©΄ μ¦‰μ‹œ μ‹€ν–‰λ˜λŠ”λ° λ°˜ν•΄
defer λŠ” HTML λ¬Έμ„œμ˜ νŒŒμ‹±(λ Œλ”λ§)이 λλ‚œ ν›„ DOMContentLoaded 전에
λ¬Έμ„œμ— μ‚½μž…λœ μˆœμ„œμ— 따라 μ‹€ν–‰λœλ‹€.

0개의 λŒ“κΈ€