ÃֽŠ°Ô½Ã±Û(WEB)
2020.01.28 / 24:47

jQuery º¸´Ù ¸ÕÀú ¾Ë¾ÒÀ¸¸é ÁÁ¾ÒÀ» °Íµé - ±âÃÊ Áß¿¡ °¡Àå Á¦ÀÏ ±âÃÊ - ½Ç¹«

±îÄ¡¼³³¯
Ãßõ ¼ö 257

À¥°³¹ßÇÒ ¶§ ³­ jquery ºÎÅÍ »ç¿ëÇϱ⠽ÃÀÛÇÑ°Í °°´Ù. ¶óÀ̺귯¸®°¡ ÁÖ´Â Æí¸®ÇÔ ³Ñ¾î ¾î¶»°Ô DOM API¸¦ »ç¿ëÇÏ´ÂÁö´Â ¸ô¶ú´Ù. ¾Þ±Ö·¯, ¸®¿¢Æ® °°Àº ÇÁ·¹ÀÓ¿÷À» »ç¿ëÇÒ ¶§µµ ¸¶Âù°¡Áö´Ù. ±â´ÉÀ» ±¸ÇöÇϴµ¥ º°´Ù´Â ¾î·Á¿òÀº ¾ø¾ú´Ù.

±×·¯´Ù º¸´Ï ´Ù¾çÇÑ °³¹ß ȯ°æ¿¡ ¹ÎøÇÏ°Ô ¿òÁ÷À̱⠽±Áö ¾Ê´Ù. ¿î¿µÁßÀÎ ¼­ºñ½º¿¡ ½±°Ô UI ÇÁ·¹ÀÓ¿÷À» µµÀÔÇÒ¼ö ¾ø´Â °æ¿ì. ¿©·¯ ¹öÀüÀÇ Á¦ÀÌÄõ¸®¸¦ È¥¿ëÇؼ­ »ç¿ëÇÏ´Â °æ¿ì.

¶óÀ̺귯¸®¾ß ¾îÂîµÇ¾úµí DOM API¸¸Àº ºê¶ó¿ìÀú¿¡¼­ Áö¿øÇϱ⠶§¹®¿¡ óÇÑ »óȲ¿¡ °ü°è¾øÀÌ ¾È½ÉÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·² ¶§ ¼ø¼ö ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ß ¿ª·®Àº ¹«¾ùº¸´Ù Áß¿äÇÏ´Ù°í »ý°¢ÇÑ´Ù.

´Ù½Ã ±âº»À¸·Î¡¦

¿ì¸®°¡ ÀÚ¹Ù À¥ °³¹ßÀ» °øºÎÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ. ¾Æ¸¶ ÀÌ ¼ø¼­·Î °øºÎ°Å´Ù.

  1. ÀÚ¹Ù¹®¹ý °øºÎ -> 2. JSP ¼­ºí¸´ °øºÎ -> 3. Spring °øºÎ

°°Àº ¹æ¹ýÀ¸·Î ÇÁ·ÐÆ®¿£µå °³¹ßÀ» °øºÎÇÑ´Ù°í Çϸé ÀÌ·¸°Ô µÇ°ÚÁö.

  1. ÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ý °øºÎ -> 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°¡ Á¦¿ÜµÈ°É º¸¸é ±â¼úÀº º¯ÇÏ°í ÀÖ´Ù´Â ¸»À» ½Ç°¨ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

2018 ÇÁ·ÐÆ®¿£µå ·Îµå¸Ê

Âü°í