ì´ ì¹ì ììë 'ì¹ ì»´í¬ëí¸(Web components)'ì ëí ìµì íì¤ ì§í©ì ì¤ëª í©ëë¤.
íì¬ë¡ì ì´ íì¤ ê·ê²©ì ê°ë° ì¤ì ëë¤. ì¼ë¶ 기ë¥ì ì ì§ìëê³ ìµì HTML/DOM íì¤ê·ê²©ì íµí©ëì´ ìì¼ë©° ì¼ë¶ 기ë¥ì ìì§ ì´ì ë¨ê³ì ììµëë¤. 모ë ë¸ë¼ì°ì ìì ìì 를 ìëí ì ìì¼ë©°, Google Chromeì´ ì´ë¬í 기ë¥ì ê°ì¶ ìµì ë²ì ì¼ ê²ì ëë¤. Google ëë£ë¤ì´ ë§ì ê´ë ¨ ì¬íì ë°ë¥¸ë¤ë ê²ì´ ê·¸ ì´ì ì ëë¤.
êµì ì°ì£¼ì ê±°ì¥ê³¼ ì¹ ì»´í¬ëí¸(Web components) ì¬ì´ì ê³µíµì
ì ì²´ ì»´í¬ëí¸ì ëí ìì´ëì´ë ìë¡ì´ ê²ì´ ìëëë¤. ì´ë¯¸ ë§ì íë ììí¬ì ê·¸ ë°ì ë¤ë¥¸ ê³³ìì ì¬ì©ëê³ ììµëë¤.
구í ì¸ë¶ì¬íì¼ë¡ ë¤ì´ê°ê¸°ì ìì ì¸ë¥ì ìëí ì ì ì ì´í´ë³´ê² ìµëë¤.
êµì ì°ì£¼ì ê±°ì¥ì 모ìµì ëë¤(ISS).
êµì ì°ì£¼ì ê±°ì¥ì ëëµì ì¸ ë´ë¶ 구ì±ì ë¤ìê³¼ ê°ìµëë¤.
êµì ì°ì£¼ì ê±°ì¥ì ëí ì¤ëª ì ëë¤.
- ë§ì ë¶íì¼ë¡ ì´ë£¨ì´ì ¸ ììµëë¤.
- ê° ë¶íì ê·¸ ìì ë ìê³ ë§ì ë¶íì´ ììµëë¤.
- ë¶íë¤ì ë§¤ì° ë³µì¡íë°, ëë¶ë¶ì ì¹ì¬ì´í¸ ë³´ë¤ í¨ì¬ ë³µì¡í©ëë¤.
- ë¶íì ìë¡ ë¤ë¥¸ êµê°ë¤ì íì´ ë¤ë¥¸ ì¸ì´ë¥¼ ì¬ì©íì¬ ê°ë°í©ëë¤.
ê·¸ë¦¬ê³ ì°ì£¼ì ê±°ì¥ì ì¸ê°ì´ ì°ì£¼ìì ë ê³ , ì´ììì ì ìê² í´ì¤ëë¤.
ì´ë»ê² ì´ë ê² ë³µì¡í ì¥ì¹ê° ë§ë¤ì´ì¡ìê¹ì?
ê°ë°ì ìì ì ì´ê³ íì¥ ê°ë¥í ìì¤ì¼ë¡ ë§ë¤ê¸° ìí´ ëë ê·¸ì ê°ê¹ê² ë§ë¤ê¸° ìí´ ì´ë¤ ìì¹ì ë¹ë ¤ì¬ ì ììê¹ì?
ì»´í¬ëí¸ ìí¤í ì²
ë³µì¡í ìíí¸ì¨ì´ ê°ë°ì ëí ì ìë ¤ì§ ê·ì¹ì ë°ë¡ ë³µì¡í ìíí¸ì¨ì´ë¥¼ ë§ë¤ì§ ìë ê²ì ëë¤.
ìíí¸ì¨ì´ê° ë³µì¡í´ì§ë¤ë©´ ë ê°ë¨í ë¶ë¶ë¤ë¡ ëëê³ ê°ì¥ íì¤í ë°©ë²ì¼ë¡ ì°ê²°íì¸ì.
ì¢ì ìí¤í í¸ë ë³µì¡í ê²ì ê°ë¨íê² ë§ë¤ ì ìë ì¬ëì ëë¤.
ì¬ì©ì ì¸í°íì´ì¤ë¥¼ ìê°ì ì»´í¬ëí¸ë¤ë¡ ëë ì ììµëë¤. ê° ì»´í¬ëí¸ë ë¤ë¥¸ ì»´í¬ëí¸ìë ë³ê°ë¡ íì´ì§ìì ê³ ì í ìì¹ë¥¼ ì°¨ì§íê³ ìì¸í ì¤ëª ë ìì ì 'ìíâí ì ììµëë¤.
ì¹ ì¬ì´í¸ì ìë¡ í¸ìí°ë¥¼ ì´í´ë³´ê² ìµëë¤.
ìì°ì¤ë½ê² ì»´í¬ëí¸ë¤ë¡ ëëë ê²ì ë³¼ ì ììµëë¤.
- ìë¨ ë´ë¹ê²ì´ì
- ì¬ì©ì ì ë³´
- ì¶ì² íë¡ì°
- ê¸ì°ê¸° ìì
- ë©ìì§ë¤(6, 7 í¬í¨)
ì»´í¬ëí¸ìë íì ì»´í¬ëí¸ê° ìì ì ììµëë¤. ì를 ë¤ì´ ë©ìì§ë ìì âë©ìì§ ëª©ë¡â ì»´í¬ëí¸ì ì¼ë¶ì¼ ì ììµëë¤. í´ë¦ ê°ë¥í ì¬ì©ì ì¬ì§ ìì²´ë ì»´í¬ëí¸ ë±ì¼ ì ììµëë¤.
무ìì´ ì»´í¬ëí¸ì¸ì§ ì´ë»ê² ê²°ì íê² ìµëê¹? ê·¸ê²ì ì§ê´, ê²½í ë° ìììì ë¹ë¡¯ë©ëë¤. ì¼ë°ì ì¼ë¡ ì»´í¬ëí¸ë 기ë¥ê³¼ íì´ì§ì ìí¸ ìì© ë°©ìì¼ë¡ ì¤ëª í ì ìë ë³ëì ìê°ì ê°ì²´ì ëë¤. ìì ê²½ì° íì´ì§ìë ë¸ë¡ì´ ìì¼ë©° ê° ë¸ë¡ì ê³ ì í ìí ì ìíí기ì ì´ë¬í ì»´í¬ëí¸ë¥¼ ë§ëë ê²ì´ ë ¼ë¦¬ì ì ëë¤.
ì»´í¬ëí¸ê° ê°ì¶°ì¼ í ê²ì ë¤ìê³¼ ê°ìµëë¤.
- ê³ ì í ìë°ì¤í¬ë¦½í¸ í´ëì¤
- ì¸ë¶ì½ëê° ì ê·¼í ì ìì¼ë©° í´ë¹ í´ëì¤ììë§ ê´ë¦¬ëë DOM 구조(â캡ìíâ ìì¹)
- 구ì±ììì ì ì©ëë CSS ì¤íì¼
- ë¤ë¥¸ 구ì±ììì ìí¸ìì©í기 ìí ì´ë²¤í¸, í´ëì¤, ë©ìë ë±ì ì¼ì»«ë API
ë¤ì íë² ë§íì§ë§, ì ì²´ 'ì»´í¬ëí¸âë í¹ë³í ê²ì´ ìëëë¤.
ì»´í¬ëí¸ë¥¼ 구ì¶í기 ìí ë§ì íë ììí¬ì ê°ë° ë°©ë²ë¡ ì´ ì¡´ì¬íëë°, ê°ê°ì í¹ìí 기ë¥ì´ ììµëë¤. ì¼ë°ì ì¼ë¡ CSS ë²ìì§ì ê³¼ DOM 캡ìíì ê°ì 'ì»´í¬ëí¸ ëëâì ì ê³µí기 ìí´ í¹ì CSS í´ëì¤ ë° ê·ì¹ì´ ì¬ì©ë©ëë¤.
'ì¹ ì»´í¬ëí¸(Web components)'ë í¹ì CSS í´ëì¤ ë° ê·ì¹ì ìí´ ë´ì¥ë ë¸ë¼ì°ì 기ë¥ì ì ê³µíë¯ë¡ ë 모방í íìê° ììµëë¤.
- Custom elements â ì¬ì©ì ì ì HTML ìì를 ì ìíë ë° ì¬ì©ë©ëë¤.
- Shadow DOM â ë¤ë¥¸ ì»´í¬ëí¸ì ëí´ ì¨ê²¨ì ¸ ìë ë´ë¶ DOMì ìì±íë ë° ì¬ì©ë©ëë¤.
- CSS Scoping â ì»´í¬ëí¸ì Shadow DOM ë´ë¶ìë§ ì ì©ëë ì¤íì¼ì ì ì¸íë ë° ì¬ì©ë©ëë¤.
- Event retargetingê³¼ ì¬ì©ì ì ì ì»´í¬ëí¸ë¥¼ ê°ë° íê²½ì ëì± ì í©íê² ë§ëë ë¤ë¥¸ ì¬ìí ê²ë¤ë ììµëë¤.
ë¤ì ì±í°ììë ì¹ ì»´í¬ëí¸(Web components)ì 기본ì ì´ê³ ì ì§ìëë 기ë¥ì¸ '커ì¤í ì리먼í¸âì ëí´ ìì¸í ì´í´ë³´ê² ìµëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.