πŸ“–ν”„λ ˆμž„μ›Œν¬ μ—†λŠ” ν”„λ‘ νŠΈ κ°œλ°œμ„ 읽고 - 4μž₯. μ›Ή ꡬ성 μš”μ†Œ

MJΒ·2023λ…„ 1μ›” 5일
0

책을 읽고

λͺ©λ‘ 보기
4/5
post-thumbnail

μ›Ή ν”„λ‘ νŠΈμ—”λ“œ 개발자둜 μ„±μž₯ν•˜κΈ° μœ„ν•΄ μš°ν…Œμ½”μ—μ„œ μΆ”μ²œλ°›μ€ 책을 읽고

βœ”οΈ μ›Ή ꡬ성 μš”μ†Œ

μ›Ή ꡬ성 μš”μ†Œ(Web Component)λŠ” λ„€μ΄ν‹°λΈŒ APIμ„ΈνŠΈλ₯Ό μ‚¬μš©ν•΄ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ꡬ성 μš”μ†Œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.

μ›Ή ꡬ성 μš”μ†ŒλŠ” 세가지 μ€‘μš” 기술둜 κ΅¬μ„±λœλ‹€.
이 κΈ°μˆ μ€ κ°œλ°œμžκ°€ μž¬μ‚¬μš©ν•  수 μžˆλŠ” UI ꡬ성 μš”μ†Œλ₯Ό μž‘μ„±ν•˜κ³  κ²Œμ‹œν•  수 있게 ν•΄μ€€λ‹€.

HTML ν…œν”Œλ¦Ώ(<template>)

이 νƒœκ·ΈλŠ” μ½˜ν…μΈ κ°€ λ Œλ”λ§λ˜μ§€λŠ” μ•Šμ§€λ§Œ JSμ½”λ“œμ—μ„œ 동적인 μ½˜ν…μΈ λ₯Ό μƒμ„±ν•˜λŠ” 데 μŠ€νƒ¬ν”„λ‘œ μ‚¬μš©λ˜λ„λ‘ ν•˜λ €λŠ” κ²½μš°μ— μœ μš©ν•˜λ‹€.

μ˜ˆμ‹œλ‘œ, λ ˆμ΄μ•„μ›ƒμ€ λ˜‘κ°™μ§€λ§Œ λ°”μΈλ”©ν•˜λ €λŠ” 데이터가 λ‹¬λΌμ§€λŠ” κ²½μš°μ— μ‚¬μš©ν•˜λ©΄ μœ μš©ν•˜λ‹€.

μ‚¬μš©μž μ •μ˜ μš”μ†Œ

이 APIλ₯Ό 톡해 κ°œλ°œμžλŠ” μ™„μ „ν•œ κΈ°λŠ₯을 κ°–μΆ˜ μžμ‹ λ§Œμ˜ DOM μš”μ†Œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.

μ„€λ„μš° DOM(Shadow DOM)

이 κΈ°μˆ μ€ μ›Ή ꡬ성 μš”μ†Œκ°€ ꡬ성 μš”μ†Œμ˜ μ™ΈλΆ€μ˜ DOM에 영ν–₯을 받지 μ•Šμ•„μ•Ό ν•˜λŠ” 경우 μœ μš©ν•˜λ‹€. λ‹€λ₯Έ μ‚¬λžŒλ“œκ³Ό κ³΅μœ ν•  수 μžˆλ„λ‘ ꡬ성 μš”μ†Œ λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ μœ„μ ―μ„ μž‘μ„±ν•˜λ €λŠ” 경우 맀우 μœ μš©ν•˜λ‹€.

μ˜ˆμ‹œλ‘œ, inputνƒœκ·Έλ₯Ό μ‚¬μš©ν•˜κ²Œ 되면 λ””μžμΈν•˜μ§€ μ•Šμ•„λ„ 기본적인 λ””μžμΈμ΄ 작힌 inputνƒœκ·Έκ°€ λ‚˜μ˜€κ²Œ λ˜λŠ” 것을 μ•Œ 수 μžˆλ‹€.

❗ μ„€λ„μš° DOMκ³Ό 가상 DOM ❗

μ„€λ„μš° DOM은 μΊ‘μŠν™”μ™€ κ΄€λ ¨λ˜κ³ , 가상 DOM은 μ„±λŠ₯κ³Ό κ΄€λ ¨λœλ‹€.

가상 DOM

가상 DOM은 μ‹€μ œ DOM을 μ™„μ „νžˆ ν‘œν˜„ν•œ κ²ƒμž…λ‹ˆλ‹€.
κ°€μž₯ μ€‘μš”ν•œ κΈ°λŠ₯은 μ‹€μ œλ‘œ λ³€κ²½ 사항을 κ·Έλ£Ήν™”ν•˜κ³  λ§Žμ€ μž‘μ€ λ³€κ²½ 사항 λŒ€μ‹  단일 μž¬λ Œλ”λ§μ„ μˆ˜ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

즉, κ°„λ‹¨νžˆ λ§ν•΄μ„œ 가상 DOM 이 μ„±λŠ₯κ³Ό κ΄€λ ¨λœ λ¬Έμ œν•΄κ²°μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€

μ„€λ„μš° DOMκ³Ό 가상 DOM μ°Έκ³  λΈ”λ‘œκ·Έ

profile
A fancy web like a rose

0개의 λŒ“κΈ€