jQuery º¸´Ù ¸ÕÀú ¾Ë¾ÒÀ¸¸é ÁÁ¾ÒÀ» °Íµé - ±âÃÊ Áß¿¡ °¡Àå Á¦ÀÏ ±âÃÊ - ½Ç¹«
À¥°³¹ßÇÒ ¶§ ³ jquery ºÎÅÍ »ç¿ëÇϱ⠽ÃÀÛÇÑ°Í °°´Ù. ¶óÀ̺귯¸®°¡ ÁÖ´Â Æí¸®ÇÔ ³Ñ¾î ¾î¶»°Ô DOM API¸¦ »ç¿ëÇÏ´ÂÁö´Â ¸ô¶ú´Ù. ¾Þ±Ö·¯, ¸®¿¢Æ® °°Àº ÇÁ·¹ÀÓ¿÷À» »ç¿ëÇÒ ¶§µµ ¸¶Âù°¡Áö´Ù. ±â´ÉÀ» ±¸ÇöÇϴµ¥ º°´Ù´Â ¾î·Á¿òÀº ¾ø¾ú´Ù.
±×·¯´Ù º¸´Ï ´Ù¾çÇÑ °³¹ß ȯ°æ¿¡ ¹ÎøÇÏ°Ô ¿òÁ÷À̱⠽±Áö ¾Ê´Ù. ¿î¿µÁßÀÎ ¼ºñ½º¿¡ ½±°Ô UI ÇÁ·¹ÀÓ¿÷À» µµÀÔÇÒ¼ö ¾ø´Â °æ¿ì. ¿©·¯ ¹öÀüÀÇ Á¦ÀÌÄõ¸®¸¦ È¥¿ëÇؼ »ç¿ëÇÏ´Â °æ¿ì.
¶óÀ̺귯¸®¾ß ¾îÂîµÇ¾úµí DOM API¸¸Àº ºê¶ó¿ìÀú¿¡¼ Áö¿øÇϱ⠶§¹®¿¡ óÇÑ »óȲ¿¡ °ü°è¾øÀÌ ¾È½ÉÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·² ¶§ ¼ø¼ö ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ß ¿ª·®Àº ¹«¾ùº¸´Ù Áß¿äÇÏ´Ù°í »ý°¢ÇÑ´Ù.
´Ù½Ã ±âº»À¸·Î¡¦
¿ì¸®°¡ ÀÚ¹Ù À¥ °³¹ßÀ» °øºÎÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ. ¾Æ¸¶ ÀÌ ¼ø¼·Î °øºÎ°Å´Ù.
- ÀÚ¹Ù¹®¹ý °øºÎ -> 2. JSP ¼ºí¸´ °øºÎ -> 3. Spring °øºÎ
°°Àº ¹æ¹ýÀ¸·Î ÇÁ·ÐÆ®¿£µå °³¹ßÀ» °øºÎÇÑ´Ù°í Çϸé ÀÌ·¸°Ô µÇ°ÚÁö.
- ÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ý °øºÎ -> 2. ºê¶ó¿ìÁ® API °øºÎ (DOM API) -> 3. Á¦ÀÌÄõ¸® µîÀÇ ¶óÀ̺귯¸®/ÇÁ·¹ÀÓ¿öÅ© °øºÎ
3¹øÀ» ¸ÕÀú °øºÎÇØ¿Ô´ø ³ª´Â ¶óÀ̺귯¸®ÀÇ °íµµ·Î Ãß»óÈµÈ API¸¸ »ç¿ëÇÏ´Ùº¸´Ï 1, 2´Â ¸ô¶óµµ °á°ú¹°À» ¸¸µé¾î ³¾¼ö ÀÖ¾ú´Ù. ÇÏÁö¸¸ ¾î´À Á¤µµ ½Ã°£ÀÌ Áö³ª ÇѰ踦 ±ú´Ý°í DOM ½ºÅ©¸³Æ®¿¡ °ü½ÉÀ» °®°Ô µÇ¾ú´Ù.
À̹ø ±ÛÀº ¼ø¼ö ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ »ç¿ëÇß´ø °æÇèÀ» Á¤¸®ÇÑ ³»¿ëÀÌ´Ù.
µ¼(DOM) ¼±ÅÃÇϱâ
µ¼À» ´Ù·ç´Â ¹æ¹ýºÎÅÍ »ìÆì º¸°Ú´Ù. ¾Æ·¡ HTML ÄÚµåºÎÅÍ ½ÃÀÛÇÏÀÚ.
<div id="app"></div>
Á¦ÀÌÄõ¸®·Î À§ÀÇ µ¼À» ¼±ÅÃÇÏ·Á¸é CSS ½ºÅ¸ÀÏÀÇ ¼±ÅÃÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
$('#app')
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.getElementById('app')
document.querySelector('#app')
getelementById()
ÇÔ¼ö´Â ¾ÆÀ̵ð·Î µ¼À» ã´Â DOM API´Ù. °¡Àå ¸¹ÀÌ ¾²ÀÌ°í ¸¹ÀÌ ¾Ë°í ÀÖ´Â µí. µÎ¹ø° querySelector()
´Â Á¦ÀÌÄõ¸®¿Í ºñ½ÁÇÏ°Ô CSS ½ºÅ¸ÀÏÀÇ ¼±ÅÃÀÚ·Î µ¼À» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
µ¼Àº ¼±Åÿ¡´Â ¾ÆÀ̵ð »Ó¸¸ ¾Æ´Ï¶ó Ŭ·¡½º¸íµµ »ç¿ëµÉ ¼ö ÀÖ´Ù.
<div class="container"></div>
Á¦ÀÌÄõ¸®ºÎÅÍ¡¦
$('.container')
¶È°°ÀÌ CSS ½ºÅ¸ÀÏ ¼±ÅÃÀÚ¸¦ »ç¿ëÇÑ´Ù.
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.getElementsByClassName('container')
document.querySelector('.container')
document.querySelectorAll('.container')
getElementsByClassName()
Àº Ŭ·¡½º ¸íÀ¸·Î µ¼À» ã´Â API´Ù. ÇÔ¼ö¸í¿¡ ¡°Elements¡±¶ó´Â º¹¼öÇü¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ ¿©·¯ °³ µ¼À» À¯»ç ¹è¿ ÇüÅ·Π¹ÝȯÇÑ´Ù.
CSS ½ºÅ¸ÀÏ ¼±ÅÃÀÚ¸¦ ÀÌ¿ëÇؼ ãÀ¸·Á¸é querySelector()
ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´Ù¸¥ Á¡Àº µ¼ ¿¤¸®¸ÕÆ® Áß¿¡ ù¹ø°¸¸ ¹ÝȯÇÑ´Ù´Â °Í. getElementsByClassName()
ó·³ ÀüºÎ ãÀ¸·Á¸é querySelectorAll()
ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù.
Àß »ç¿ëÇÏÁø ¾ÊÁö¸¸ ű׸íÀ¸·Îµµ µ¼À» °Ë»öÇØ º¸ÀÚ.
$('div')
document.getElementsByTagName('div')
document.querySelector('div')
document.querySelectorAll('div')
¹º°¡ ÆÐÅÏÀÌ º¸À̴°¡? ³ querySelector()
¿Í querySelectorAll()
¸¸ »ç¿ëÇصµ ÃæºÐÇÏ´Ù°í º»´Ù. CSS ½ºÅ¸ÀÏÀÇ ¼±ÅÃÀÚ¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù´Â Á¡Àº ¸Å¿ì Æí¸®ÇÏ°í (Á¦ÀÌÄõ¸®°¡ ±×·¸°Ô »ç¿ëÇϴϱñ) ¹«¾ùº¸´Ù ¡°ÀÏ°ü¼º¡±ÀÌ Àֱ⠶§¹®ÀÌ´Ù. IE8ºÎÅÍ Áö¿øÇÏ°í ÀÖÀ¸´Ï ¾È½ÉÇÏ°í »ç¿ëÇصµ µÈ´Ù.
µ¼¿¡¼ µ¥ÀÌÅÍ ¾ò±â
µ¼À» ã´Â ¹æ¹ýÀ» ¾Ë¾ÒÀ¸´Ï ÀÌ°ÍÀ¸·Î ¹º°¡ Çغ¼¼ö ÀÖÀ» °Í °°´Ù. ¸ÕÀú´Â data ¼Ó¼º (data-*
) °ªÀ» ÀÐ°í ½áº¸ÀÚ.
±×Àü¿¡ data ¼Ó¼º°ªÀ» ¿Ö ¾²´ÂÁö ºÎÅÍ Â¤°í ³Ñ¾î°¡¾ß°Ú´Ù.
PHP³ª Node.jsÀÇ ¼¹ö´Â µ¥ÀÌÅ͸¦ ÀÌ¿ëÇؼ HTMLÀ» ¸¸µç´Ù. ¿¹¸¦ µé¾î »óÇ°¸í(¡°Guitar¡±) °°Àº °æ¿ì´Â ÅؽºÆ®·Î ¸¸µé¾î HTML Äڵ带 ¸¸µç´Ù. ÀÌ°Í È¸é¿¡ Ãâ·ÂÇϱâ À§ÇÑ ¿ëµµ´Ù.
ÇÑÆí ȸ鿡 º¸ÀÌÁö´Â ¾ÊÁö¸¸ ÇÁ·ÐÆ®¿£µå ÀÚ¹Ù½ºÅ©¸³Æ® ·ÎÁ÷¿¡ »ç¿ëÇÒ µ¥ÀÌÅÍ°¡ ÀÖ´Ù. (¿¹¸¦µé¾î ¡°G123¡±) ÀÌ °æ¿ì data ¼Ó¼º °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¾Æ·¡ Äڵ带 º¸¸é ÀÌÇØÇϴµ¥ ¼ö¿ùÇÒ °ÍÀÌ´Ù.
<div data-product-id="G123">Guitar</div>
ÀÌ °ªÀ» ¾òÀ¸·Á¸é Á¦ÀÌÄõ¸®´Â data()
ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
$('div').data('product-id')
±×·³, ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.querySelector('div').dataset.productId // 'G123'
querySelector()
ÇÔ¼ö·Î ¾òÀº HTMLElement¿¡´Â dataset
À̶ó´Â °´Ã¼°¡ ÀÖ°í, ÀÌ°É ÅëÇؼ data ¼Ó¼º °ª¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. HTML Äڵ忡¼´Â Äɹä ÄÉÀ̽º·Î Ç¥±âÇÏ°í JS Äڵ忡¼´Â Ä«¸á ÄÉÀ̽º¶ó´Â °ÍÀÌ ´Ù¸£´Ù.
´ç¿¬È÷ data ¼Ó¼º °ªÀ» º¯°æÇÒ ¼öµµ ÀÖ´Ù.
document.querySelector('div').dataset.productId = 'G456'
ÇÏÁö¸¸ dataset
Àº IE 11 ¹Ì¸¸¿¡¼´Â Áö¿øÇÏÁö ¾Ê´Â´Ù. data ¼Ó¼º °ªÀ» ´Ù·ç±â À§Çؼ´Â ÀÏ¹Ý ¼Ó¼º¿¡ Á¢±ÙÇϱâ À§ÇÑ ÇÔ¼ö getAttribute()
¿Í setAttribute()
ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
document.querySelector('div').getAttribute('data-product-id') // 'G123'
À̺¥Æ®
ÀÌÁ¦ À̺¥Æ® 󸮸¦ º¸ÀÚ. º¸Åë ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ½ÃÀÛÁ¡Àº ready()
ÇÔ¼ö·Î ¼³Á¤ÇÑ´Ù.
$.ready(() => {)
// start ...
})
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.addEventListener('DOMContentLoaded', () => {
// start ...
})
HTMLÀ» ÆĽÌÇÑµÚ DOM °´Ã¼¸¦ »ý¼ºÀÌ ¿Ï·áµÇ¸é ¡®DOMContentLoaded¡¯ À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù. ¿ì¸®´Â ÀÌ À̺¥Æ®¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇÏ´Â ¹æ½ÄÀ¸·Î ¶È°°ÀÌ ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
Ŭ¸¯À̺¥Æ®µµ ºñ½ÁÇÏ´Ù. Á¦ÀÌÄõ¸®ºÎÅÍ º¸ÀÚ.
$('a').on('click', evt => {
// À̺¥Æ® ó¸® ...
})
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.querySelector('a').addEventListener('click', evt => {
// À̺¥Æ® ó¸® ...
})
¹¹, °£´ÜÇÏ´Ù.
ÇÑÆí À̺¥Æ®¸¦ ¹æÃâ(emit)ÇÏ´Â °ÍÀº ¾î¶³±î? Á¦ÀÌÄõ¸®ºÎÅÍ¡¦
$('a').click()
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.querySelector('a').click()
¶È°°Àº click()
ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
ÇÑÆí Ä¿½ºÅÒ À̺¥Æ®´Â ¾î¶»°Ô »ç¿ëÇÒ±î? Á¦ÀÌÄõ¸®´Â ÀÌ·¸°Ô ÇÑ´Ù.
$('a').trigger('@click')
trigger()
ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é »õ·Î Á¤ÀÇÇÑ ¡®@click¡¯ À̺¥Æ®¸¦ ¹æÃâÇÏ°Ô µÈ´Ù.
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
const evt = new CustomEvent('@click')
document.dispatchEvent(evt)
¹¹ ±×·¸°Ô ¾î·ÆÁø ¾Ê´Ù. CustomEvent
Ŭ·¡½º·Î À̺¥Æ® °´Ã¼¸¦ ¸¸µé°í document.dispatchEvent()
ÇÔ¼ö·Î À̺¥Æ®¸¦ ¹æÃâÇÑ´Ù. À̺¥Æ®¿Í ´õºÒ¾î µ¥ÀÌÅ͵µ ³Ñ°ÜÁÙ ¼ö ÀÖ´Ù.
const evt = new CustomEvent('@click', {detail: 'some data'})
document.dispatchEvent(evt)
CustomEvent
»ý¼º½Ã µÎ¹ø° ÀÎÀÚ·Î detail
Å°¸¦ °®´Â °´Ã¤¸¸ ³Ñ°ÜÁÖ¸é ¼ö½ÅÇÏ´Â Ãø¿¡¼´Â ÀÌ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹®ÀÚ¿ »Ó¸¸ ¾Æ´Ï¶ó °´Ã¼µµ °¡´ÉÇÏ´Ù.
document.querySelector('a').addEventListener('@click', evt => {
evt.detail // 'some data'
})
ÇÏÁö¸¸ IE11 ÀÌÇÏ ¹öÀü¿¡¼´Â CustomEvent
¸¦ Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ À̺¥Æ® »ý¼ºÇÏ´Â ¹æ¹ýÀ» ´Þ¸® ÇؾßÇÑ´Ù.
const evt = document.createEvent('CustomEvent')
evt.initCustomeEvent('@click', true, false, 'some data')
document.dispatchEvent(evt)
document.createEvent()
ÇÔ¼ö·Î »ý¼ºÇÑ À̺¥Æ® °´Ã¼ÀÇ initCustomeEvent()
ÇÔ¼ö·Î À̺¥Æ® ¸í°ú Àü´ÞÇÒ µ¥ÀÌÅ͸¦ ¼³Á¤ÇÑ´Ù. ¸Å°³º¯¼ö´Â ¼ø¼´ë·Î À̺¥Æ®¸í, ¹öºí(bubble)?, Ãë¼Û°¡´É¿©ºÎ(cancelable)?, Àü´ÞÇÒ µ¥ÀÌÅÍ(detail)¸¦ ÀǹÌÇÑ´Ù.
½ºÅ¸ÀÏ
µ¼ ¿¤¸®¸ÕÆ®¿¡ CSS Ŭ·¡½º¸¦ Ãß°¡ÇÏ·Á¸é ¾î¶»°Ô ÇÒ±î?
$('#foo').addClass('active')
addClass()
·Î ¡®active¡¯ Ŭ·¡½º¸¦ Ãß°¡Çß´Ù.
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
document.querySelector('#foo').classList.add('active');
HTMLElement´Â classList
¶ó´Â DOMTokenList¸¦ ¹ÝȯÇÑ´Ù. ÀÌ°ÍÀº Ŭ·¡½º¸¦ Ãß°¡ÇÏ´Â add()
ÇÔ¼ö »Ó¸¸ ¾Æ´Ï¶ó, remove()
, toggle()
, contains()
°°Àº À¯¿ëÇÑ ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
ÇÏÁö¸¸ ¿©ÀüÈ÷ IE¿¡¼´Â ¸Þ¼Òµå º°·Î Áö¿ø ¹öÀüÀÌ ´Ù¸£´Ù. ¶§¹®¿¡ Æú¸®ÇÊÀ» Ãß°¡Çϰųª ´Ù¸¥ ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.
document.querySelector('#foo').className += ' active';
HTMLElementÀÇ className
Àº Ŭ·¡½º À̸§ÀÌ ÀúÀåµÈ º¯¼ö´Ù. ÀÌ ¹®ÀÚ¿À» Á¶ÀÛÇϸé Ŭ·¡½º¸íÀ» Ãß°¡/Á¦°ÅÇÒ ¼ö ÀÖ´Ù.
¹®ÀÚ¿ º¯°æ
Á¦ÀÌÄõ¸®ÀÇ text()
ÇÔ¼ö·Î Á¦¾îÇÏ´Â ¹®ÀÚ¿Àº HTMLElementÀÇ innerHTML
·Î °¡´ÉÇÏ´Ù.
$('#foo').text('Hello Chris')
document.querySelector('#foo').innerHTML = 'Hello Chris'
ºñµ¿±â ¿äû
Á¦ÀÌÄõ¸®ÀÇ ajax()
ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é ¼¹ö Ãø¿¡ ºñµ¿±â ¿äûÀ» º¸³¾¼ö ÀÖ´Ù.
$.ajax('/resource').then(success, fail)
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
const req = new XMLHttpRequest()
req.open('GET', '/resource', true);
req.onreadystatechange = () => {
if (req.readyState === 4) {
if (req.status === 200) success()
else faile()
}
}
req.send(null)
XMLHttpRequest
°´Ã¼¸¦ Á÷Á¢ »ç¿ëÇÏ¸é °¡´ÉÇÏ´Ù. GET, POST »Ó¸¸ ¾Æ´Ï¶ó ÆÄÀÏ ¾÷·Îµå±îÁö!
ÃÖ±Ù¿¡ ³ª¿Â fetch api¸¦ »ç¿ëÇصµ µÇÁö¸¸ IE ºê¶ó¿ìÁ® È£¿Ï¼ºÀÌ ÇÊ¿äÇÏ´Ù¸é ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. Á¦ÀÌÄõ¸®ÀÇ ajax() ÇÔ¼ö³ª ³ëµå Áø¿µ¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â request ±×¸®°í Vue.JS¿¡¼ ÃßõÇÏ´Â axios µîÀÌ ´ëÇ¥ÀûÀÌ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®
µ¼ ½ºÅ©¸³Æ® »Ó¸¸¾Æ´Ï¶ó ÀÚ¹Ù½ºÅ©¸³Æ® ¾ð¾î¿¡ ´ëÇؼµµ ¾Ë¾Æ¾ßÇÑ´Ù. ƯÈ÷ Ä÷º¼ÇÀ» ´Ù·ç´Â °æ¿ì Á¦ÀÌÄõ¸®ÀÇ À¯Æ¿¸®Æ¼ ÇÔ¼ö¸¦ »ç¿ëÇß´Ù¸é, ES5 ºÎÅÍ Áö¿øÇÏ´Â Ä÷º¼Ç ÇÔ¼ö´Â ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Á¦ÀÌÄõ¸®¿¡¼ ¿©·¯ ¿¤·¹¸ÕÆ® ¹è¿À» ¼øȸÇÒ¶§´Â each()
ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
$('li').each(() => {
$(this) // li element
})
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
Array.from(document.querySelectorAll('li')).forEach(li => {
})
querySelectorAll()
ÇÔ¼ö´Â À¯»ç¹è¿À» ¹ÝȯÇÑ´Ù. ArrayÀÇ ÇÁ·ÎÅäŸÀÔ ÇÔ¼ö¸¦ »ç¿ëÇÏ·Á¸é Array.form()
ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ À¯»ç¹è¿À» ¹è¿·Î º¯È¯ÇؾßÇÑ´Ù. ÀÌÈÄ¿¡ Array.protototype.foreEach()
ÇÔ¼ö¸¦ ÀÌ¿ëÇØ li ¿¤¸®¸ÕÆ®¸¦ ¼øȸÇÒ ¼ö ÀÖ´Ù.
Array.prototype
¿¡´Â map()
, reduce()
, every()
, some()
µî lodash°°Àº À¯Æ¿¸®Æ¼ ¶óÀ̺귯¸®¿¡¼ Áö¿øÇÏ´Â Ä÷º¼Ç ÇÔ¼ö°¡ ÀÖ´Ù.
°´Ã¼ ¸Þ¼Òµåµµ »ìÆ캸ÀÚ. µÎ °´Ã¼¸¦ ÇÕÄ¥¶§(merge) Á¦ÀÌÄõ¸®´Â extend()
ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
const obj3 = $.extend(obj1, obj2)
±×·³ ÀÚ¹Ù½ºÅ©¸³Æ®´Â?
const obj3 = Object.assign({}, obj1, obj2)
Object.assign()
ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ ÇÕÄ£ »õ·Î¿î °´Ã¼¸¦ ¸¸µé¾î ³¾¼ö ÀÖ´Ù.
°á·Ð
Áö±Ý±îÁö ÇÁ·ÐÆ®¿£µå °³¹ß¿¡ Á¦ÀÌÄõ¸®´Â Çʼö¿´´Ù. Å©·Î½ººê¶ó¿ìÁ® À̽´, ƯÈ÷³ª ¹öÀüº° IE¸¦ Áö¿øÇÏ´Â °ÍÀº °³¹ßÀÚ¿¡°Ô ³Ê¹«µµ Æí¸®ÇÑ ±â´ÉÀÌ´Ù.
ÇÏÁö¸¸ ±â¼úÀº °è¼Ó º¯ÇÑ´Ù. ¾Þ±Ö·¯, ¸®¿¢Æ®µî ÃֽŠUI ÇÁ·¹ÀÓ¿÷À» »ç¿ëÇÒ ¶§´Â Á¦ÀÌÄõ¸®¿Í´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î Á¢±ÙÇÑ´Ù. ES5, ES6¿¡¼ Á¦°øÇÏ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ýÀ¸·Î ´ëüÇؼ »ç¿ëÇÏ°í, ±î´Ù·Î¿î UI ÀÛ¾÷ÀÏ °æ¿ì´Â »ó´ëÀûÀ¸·Î ¹«°Å¿î Á¦ÀÌÄõ¸®º¸´Ù´Â Á÷Á¢ DOM ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÏ¸é °¡º±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
2018 ÇÁ·ÐÆ®¿£µå ·Îµå¸Ê¿¡ jQuery°¡ Á¦¿ÜµÈ°É º¸¸é ±â¼úÀº º¯ÇÏ°í ÀÖ´Ù´Â ¸»À» ½Ç°¨ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Âü°í