°£Æí°áÁ¦, ½Å¿ëÄ«µå û±¸ÇÒÀÎ
ÀÎÅÍÆÄÅ© ·Ôµ¥Ä«µå 5% (17,100¿ø)
(ÃÖ´ëÇÒÀÎ 10¸¸¿ø / Àü¿ù½ÇÀû 40¸¸¿ø)
ºÏÇǴϾð ·Ôµ¥Ä«µå 30% (12,600¿ø)
(ÃÖ´ëÇÒÀÎ 3¸¸¿ø / 3¸¸¿ø ÀÌ»ó °áÁ¦)
NH¼îÇÎ&ÀÎÅÍÆÄÅ©Ä«µå 20% (14,400¿ø)
(ÃÖ´ëÇÒÀÎ 4¸¸¿ø / 2¸¸¿ø ÀÌ»ó °áÁ¦)
Close

Jasmine ÀÚ¹Ù½ºÅ©¸³Æ® Å×½ºÆà : ´ë±Ô¸ð ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ °­·ÂÇÑ ´ÜÀ§ Å×½ºÆà ±â¹ý

¿øÁ¦ : Jasmine JavaScript Testing
¼Òµæ°øÁ¦

2013³â 9¿ù 9ÀÏ ÀÌÈÄ ´©Àû¼öÄ¡ÀÔ´Ï´Ù.

ÆǸÅÁö¼ö 13
?
ÆǸÅÁö¼ö¶õ?
»çÀÌÆ®ÀÇ ÆǸŷ®¿¡ ±â¹ÝÇÏ¿© ÆǸŷ® ÃßÀ̸¦ ¹Ý¿µÇÑ ÀÎÅÍÆÄÅ© µµ¼­¿¡¼­ÀÇ µ¶¸³ÀûÀÎ ÆǸŠÁö¼öÀÔ´Ï´Ù. ÇöÀç °¡Àå Àß Æȸ®´Â »óÇ°¿¡ °¡ÁßÄ¡¸¦ µÎ¾ú±â ¶§¹®¿¡ ½ÇÁ¦ ´©Àû ÆǸŷ®°ú´Â ´Ù¼Ò Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÆǸŷ® ¿Ü¿¡µµ ´Ù¾çÇÑ °¡ÁßÄ¡·Î ±¸¼ºµÇ¾î ÃÖ±ÙÀÇ À̽´µµ¼­ È®Àνà À¯¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇØ´ç Áö¼ö´Â ¸ÅÀÏ °»½ÅµË´Ï´Ù.
Close
°øÀ¯Çϱâ
Á¤°¡

20,000¿ø

  • 18,000¿ø (10%ÇÒÀÎ)

    1,000P (5%Àû¸³)

ÇÒÀÎÇýÅÃ
Àû¸³ÇýÅÃ
  • S-Point Àû¸³Àº ¸¶ÀÌÆäÀÌÁö¿¡¼­ Á÷Á¢ ±¸¸ÅÈ®Á¤ÇϽŠ°æ¿ì¸¸ Àû¸³ µË´Ï´Ù.
Ãß°¡ÇýÅÃ
¹è¼ÛÁ¤º¸
  • 3/20(¼ö) À̳» ¹ß¼Û ¿¹Á¤  (¼­¿ï½Ã °­³²±¸ »ï¼º·Î 512)
  • ¹«·á¹è¼Û
ÁÖ¹®¼ö·®
°¨¼Ò Áõ°¡
  • À̺¥Æ®/±âȹÀü

  • ¿¬°üµµ¼­(224)

  • »óÇ°±Ç

AD

Ã¥¼Ò°³

[Jasmine ÀÚ¹Ù½ºÅ©¸³Æ® Å×½ºÆÃ]Àº ´ÜÀ§ Å×½ºÆÃÀ» óÀ½ Á¢ÇÏ´Â À¥ °³¹ßÀÚµéÀ» À§ÇÑ ±³ÀçÀÌ´Ù. Ã¥¿¡´Â Å×½ºÆ® ÁÖµµÀÇ °³¹ß ¹æ½Ä ½Àµæ, ¸®ÄâÀ̾îJS·Î ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå ¸ðµâÈ­, Å×½ºÆ®°¡ ¿Ï·áµÈ Á¦ÀÌÄõ¸® Ç÷¯±×ÀÎ »ý¼º, ºñµ¿±â Å×½ºÆÿ¡¼­ÀÇ ¹®Á¦ ÇØ°á°ú ¸ð¹ü »ç·Ê, ½Å¼ÓÇÑ ´ÜÀ§ Å×½ºÆÃÀ» ¼öÇàÇϱâ À§ÇÑ ½ºÅÓ(Stub)°ú ½ºÆÄÀÌ(Spy) »ç¿ë, Å×½ºÆ® ÁÖµµÀÇ ¹éº» ¾ÖÇø®ÄÉÀ̼Ç, ¿î¿µ ȯ°æÀ» À§ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå ÃÖÀûÈ­ µîÀ» ´Ù·ç°í ÀÖ´Ù.

ÃâÆÇ»ç ¼­Æò

¡Ú ¿ä¾à ¡Ú

Å×½ºÆ® ÁÖµµ °³¹ß(TDD), ÇàÀ§ ÁÖµµ °³¹ß(BDD)À» ¸ÕÀú ¼Ò°³ÇÏ°í, ÀÌ·¯ÇÑ Å×½ºÆà °³³äÀ» ±¸ÇöÇÑ À罺¹Î ÅøÀÇ »ç¿ë¹ýÀ» ½ÇÁ¦ÀûÀÎ ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¿¹¸¦ µé¾î ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. À罺¹ÎÀ» ÀÌ¿ëÇÑ ´ÜÀ§ Å×½ºÆà ¹æ¹ý»Ó¸¸ ¾Æ´Ï¶ó ½Ã³íJS(SinonJS), ¹éº»JS(BackboneJS), ¸®ÄâÀ̾îJS(RequireJS), ±×·±Æ®JS(GruntJS) µî ¸ð´ø ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ß¿¡ ƯȭµÈ ´Ù¾çÇÑ ÅøµéÀ» µ¶ÀÚµéÀÌ ÀÚ¿¬½º·´°Ô ¼··ÆÇÏ¿© ½Ç¹«¿¡ ¹Ù·Î ÀÀ¿ëÇÒ ¼ö ÀÖµµ·Ï ¾È³»ÇÑ´Ù.

¡Ú ÀÌ Ã¥¿¡¼­ ´Ù·ç´Â ³»¿ë ¡Ú

¡á Å×½ºÆ® ÁÖµµÀÇ °³¹ß ¹æ½Ä ½Àµæ
¡á ¸®ÄâÀ̾îJS·Î ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå ¸ðµâÈ­
¡á Å×½ºÆ®°¡ ¿Ï·áµÈ Á¦ÀÌÄõ¸® Ç÷¯±×ÀÎ »ý¼º
¡á ºñµ¿±â Å×½ºÆÿ¡¼­ÀÇ ¹®Á¦ ÇØ°á°ú ¸ð¹ü »ç·Ê
¡á ½Å¼ÓÇÑ ´ÜÀ§ Å×½ºÆÃÀ» ¼öÇàÇϱâ À§ÇÑ ½ºÅÓ(Stub)°ú ½ºÆÄÀÌ(Spy) »ç¿ë
¡á Å×½ºÆ® ÁÖµµÀÇ ¹éº» ¾ÖÇø®ÄÉÀ̼Ç
¡á ¿î¿µ ȯ°æÀ» À§ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå ÃÖÀûÈ­
¡á ±×·±Æ®JS·Î °­·ÂÇÑ µµ±¸È­, ÀÚµ¿È­ ½ÇÇö
¡á Æ®·¡ºñ½º CI(Travis-CI)·Î Ŭ¶ó¿ìµå¿¡¼­ Å×½ºÆ® ½ÇÇà

¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú

ÀÌ Ã¥Àº ´ÜÀ§ Å×½ºÆÃÀ» óÀ½ Á¢ÇÏ´Â À¥ °³¹ßÀڵ鿡°Ô Çʼö ±³º»ÀÌ´Ù. ³»¿ëÀ» ÀÌÇØÇÏ·Á¸é ´ç¿¬È÷ ÀÚ¹Ù½ºÅ©¸³Æ®¿Í HTML¿¡ ´ëÇÑ ±âº» Áö½ÄÀº ÇÊ¿äÇÏ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» À§ÇÑ ÁøÁ¤ÇÑ Ç÷§ÆûÀ¸·Î¼­ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ÀÎÁ¤ÇÏ°í ¸ðµç °¡´É¼ºÀ» À̲ø¾î³»°í ½ÍÀº µ¶ÀÚ¶ó¸é ´©±¸³ª ȯ¿µÀÌ´Ù.

¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú

1Àå, ¡®À罺¹Î ½ÃÀÛ¡¯Àº ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆÃÀÇ µ¿±â ºÎ¿©¸¦ Çغ¸´Â ½Ã°£ÀÌ´Ù. BDDÀÇ °³³äÀ» ¼Ò°³ÇÏ°í ÁÁÀº Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. À罺¹Î ¼Ò½º¸¦ ³»·Á¹Þ¾Æ Å×½ºÆ®¸¦ óÀ½ ÀÛ¼ºÇغ¸´Â ÀÏÀÌ ¸Å¿ì °£´ÜÇÔÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù.

2Àå, ¡®½ºÆå ÀÛ¼º¡¯¿¡¼­´Â Å×½ºÆ® ÁÖµµ °³¹ßÀÌ ÀǵµÇÏ´Â »ç°í ¹æ½ÄÀ» ÀÍÈ÷°í, Å×½ºÆ®¿¡ ÀÇÇØ ÀÚ¹Ù½ºÅ©¸³Æ® ±â´ÉÀ» óÀ½ ÄÚµùÇÏ°Ô µÉ °ÍÀÌ´Ù. À罺¹ÎÀÇ ±âº»ÀûÀÎ ÇÔ¼öµé, ±×¸®°í Å×½ºÆ®¸¦ ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù. À罺¹Î ¸Åó(Jasmine Matcher)°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö, ÄÚµåÀÇ °¡µ¶¼ºÀ» Çâ»ó½ÃÅ°±â À§ÇØ Ä¿½ºÅÒ ¸Åó¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.

3Àå, ¡®ÇÁ·ÐÆ®¿£µå ÄÚµå Å×½ºÆ᯿¡¼­´Â À¯Áö º¸¼ö¼ºÀÌ ÁÁÀº Äڵ带 ÀÛ¼ºÇϱâ À§ÇÑ ¸î °¡Áö ÆÐÅÏÀ» ´Ù·é´Ù. ÄÄÆ÷³ÍÆ® ´ÜÀ§·Î »ç°íÇÏ´Â ¹ýÀ» ¹è¿ì°í ¸ðµâ ÆÐÅÏÀ¸·Î ¾î¶»°Ô ¼Ò½º ÆÄÀÏÀ» Àß Á¤µ·ÇÒ ¼ö ÀÖÀ»Áö ¾Ë°Ô µÉ °ÍÀÌ´Ù. HTML ÇȽºÃ³(fixture)ÀÇ °³³äÀ» ¼Ò°³ÇÏ°í, È­¸é¿¡ ·»´õ¸µÇÒ HTML Äڵ带 ¼­¹ö ¿äû(request) ¾øÀÌ ¾î¶»°Ô ÀÚ¹Ù½ºÅ©¸³Æ®·Î Å×½ºÆ®ÇÏ´ÂÁö ¹è¿ï °ÍÀÌ´Ù. À罺¹Î-Á¦ÀÌÄõ¸®(Jasmine-jQuery)¶ó´Â À罺¹Î Ç÷¯±×ÀÎ(plugin)°ú jQuery·Î ´õ ³ªÀº ÀÚ¹Ù½ºÅ©¸³Æ® Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹ýÀ» ´Ù·é´Ù.

4Àå, ¡®ºñµ¿±â Å×½ºÆÃ: AJAX¡¯¿¡¼­´Â AJAX ¿äû±îÁö Å×½ºÆ®ÇØ¾ß ÇÏ´Â µµÀüÀûÀÎ »óȲ¿¡¼­ ºñµ¿±â Äڵ带 À罺¹ÎÀ¸·Î´Â ¾î¶»°Ô Å×½ºÆ®ÇÏ´ÂÁö ´Ù·é´Ù. Å×½ºÆ® ÇȽºÃ³·Î ¾ÆÁÖ °£´ÜÇÑ HTTP ¼­¹ö¸¦ ³ëµåJS¸¦ ÀÌ¿ëÇÏ¿© ¸¸µé¾îº¼ °ÍÀÌ´Ù.

5Àå, ¡®À罺¹Î ½ºÆÄÀÌ¡¯¿¡¼­´Â Å×½ºÆ® ´õºíÀÇ °³³ä°ú ½ºÆÄÀÌ(Spy)·Î ÇàÀ§¸¦ üũÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.

6Àå, ¡®±¤¼Ó ´ÜÀ§ Å×½ºÆ᯿¡¼­´Â AJAX Å×½ºÆÃÀÇ ¸î °¡Áö À̽´µéÀ» ´Ù·ç°í ½ºÅÓ(Stub)À̳ª ÆäÀÌÅ©(Fake)(½Ã³íJS ÆäÀÌÅ© ¼­¹ö °°Àº)·Î ´õ ºü¸¥ Å×½ºÆ®¸¦ ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.

7Àå, ¡®¹éº» ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ᯿¡¼­´Â ¹éº»JS(BackboneJS)ÀÇ ±âº»ÀÌ µÇ´Â 4°³ Ãß»óÈ­ ±â´ÉÀ» ´Ù·ç°í, Å×½ºÆ®¸¦ ¹éº»JS ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ´Ù½Ã ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù. ¹éº»JS·Î ¹«¾ùÀ» Å×½ºÆ®ÇÏ°í, ¹«¾ùÀ» Å×½ºÆ®ÇÏÁö ¸»¾Æ¾ß ÇÒÁö ¾Ë¾Æº¼ °ÍÀÌ´Ù.

8Àå, ¡®ºôµå ÀÚµ¿È­¡¯¿¡¼­´Â ÀÚµ¿È­ÀÇ °­·ÂÇÑ ÆÄ¿ö¿¡ ´ëÇØ ½Ç°¨ÇÏ°Ô µÉ °ÍÀÌ´Ù. ´ë±Ô¸ð ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¸®ÄâÀ̾îJS(RequireJS)·Î ¾î¶»°Ô ÀÇÁ¸¼º °ü¸®¸¦ ÇÏ´ÂÁö ¾Ë°Ô µÉ °ÍÀÌ´Ù. ¸ðµâ°ú ÀÇÁ¸¼º ´ÜÀ§·Î »ç°íÇÏ°Ô µÇ¸é¼­ Å×½ºÆ®¸¦ ¸ðµâ ´ÜÀ§·Î ÄÚµùÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÒ °ÍÀÌ´Ù. ¶Ç, ¿î¿µ ȯ°æÀ¸·Î ¹èÆ÷Çϱâ À§ÇØ Äڵ带 ÆÐÅ·(packing)ÇÏ°í ÃÖ¼ÒÈ­ÇÏ´Â ¹æ¹ý, ±×¸®°í ÀÌ·¯ÇÑ °úÁ¤À» ÀÚµ¿È­½ÃÅ°´Â ¹æ¹ý±îÁö ¹è¿ì°Ô µÉ °ÍÀÌ´Ù. ÆÒÅÒJS(PhantomJS)·Î ºê¶ó¿ìÀú âÀ» ¶ç¿ìÁö ¾Ê°íµµ ¸ðµç Å×½ºÆ®¸¦ ½ÇÇàÇϸ鼭 ÆÄÀÏÀÌ º¯°æµÇ¸é ÀÚµ¿À¸·Î Å×½ºÆ®°¡ Àç½ÇÇàµÇ°Ô ÇÏ´Â ±â¼ú±îÁö ¼··ÆÇÏ°Ô µÉ °ÍÀÌ´Ù.

9Àå, ¡®¸¶¹«¸®¡¯¿¡¼­´Â ÀÚ¹Ù½ºÅ©¸³Æ® »ýÅ°迡¼­ÀÇ Å×½ºÆðú µµ±¸È­(tooling)¿¡ ´ëÇØ ¾ð±ÞÇÒ °ÍÀÌ´Ù.

ºÎ·Ï A. ¡®Á¦ÀÌÄõ¸® Ç÷¯±×ÀÎ Å×½ºÆ®¡¯¿¡¼­´Â jQuery Ç÷¯±×ÀÎÀÇ °³³ä°ú À罺¹ÎÀ¸·Î Ç÷¯±×ÀÎ °³¹ßÀ» ¾î¶»°Ô ÁÖµµÇÒ ¼ö ÀÖÀ»Áö ´Ù·é´Ù.

ºÎ·Ï B. ¡®Æ®·¡ºñ½º CI¸¦ ÀÌ¿ëÇÑ Áö¼ÓÀû ÅëÇÕ¡¯¿¡¼­´Â Æ®·¡ºñ½º CI(Travis CI)¸¦ »ç¿ëÇÏ¿© ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» Áö¼ÓÀûÀ¸·Î ÅëÇÕÇϱâ À§ÇÑ È¯°æÀ» ¸¶·ÃÇÒ °ÍÀÌ´Ù.

ºÎ·Ï C. ¡®À罺¹Î 2.0°ú ¹Ì·¡¡¯¿¡¼­´Â ¾ÕÀ¸·Î Ãâ½ÃµÉ À罺¹Î 2.0 ¹öÀü¿¡¼­ ¹Ù²ð Áß¿äÇÑ º¯°æ »çÇ×µé°ú ±âÁ¸ ¹öÀü¿¡¼­ ´Ü°èÀûÀ¸·Î ¸¶À̱׷¹À̼ÇÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.

¡Ú ÀúÀÚ ¼­¹® ¡Ú

ÀÌ Ã¥Àº µ¶ÀÚ ¿©·¯ºÐµéÀ» ´õ ³ªÀº ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ßÀÚ·Î ¸¸µé¾îÁÙ °ÍÀÌ´Ù. ¿©·¯ºÐµéÀº ÀÌ Ã¥À» ÅëÇØ À罺¹Î ¡®¿ë¾î(idiom)¡¯µé·Î Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹ý»Ó¸¸ ¾Æ´Ï¶ó ÀÚ¹Ù½ºÅ©¸³Æ® ¾ð¾î·Î ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇÏ´Â µ¥ ²À ÇÊ¿äÇÑ ¸ð¹ü »ç·Ê(best practice)¸¦ ¹è¿ì°Ô µÉ °ÍÀÌ´Ù. ¶Ç ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» À§ÇÑ ÁøÁ¤ÇÑ Ç÷§ÆûÀ¸·Î¼­ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ °¡´É¼ºÀ» ¾î¶»°Ô À̲ø¾î³¾ °ÍÀÎÁö, ¾î¶»°Ô µµ±¸µéÀ» È°¿ëÇÏ°í ÀÚµ¿È­½ÃÄÑ °³¹ßÀÚ ¿©·¯ºÐµéÀÌ Á» ´õ ½±°Ô, »ý»êÀûÀ¸·Î ÀÏÇÒ ¼ö ÀÖÀ»Áö »ìÆ캼 °ÍÀÌ´Ù.

Áß¿äÇÑ Á¡Àº ÀÌ Ã¥ÀÌ ±×Àú ¿¡·¯ ¾øÀÌ ½ÇÇàµÇ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ ³Ñ¾î Àß ¸¸µç(well-crafted) ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇϱâ À§ÇÑ ±â¼ú¿¡ ÃÊÁ¡À» µÎ°í ÀÖ´Ù´Â Á¡ÀÌ´Ù.

À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß °úÁ¤¿¡¼­ ÀÚ¹Ù½ºÅ©¸³Æ®·Î Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ°í À̸¦ ÀÚµ¿È­½ÃÄÑ¾ß ÇÏ´Â ½Ç¹«ÀûÀÎ ¹®Á¦¿¡ Á÷¸éÇÏ°Ô µÉ ¿©·¯ºÐµé¿¡°Ô ÀÌ Ã¥Àº Ãæ½ÇÇÑ °¡À̵尡 µÇ¾îÁÙ °ÍÀÌ´Ù. À罺¹Î, ½Ã³íJS(SinonJS), ¸®ÄâÀ̾îJS(RequireJS), ±×·±Æ®(Grunt) °°Àº ±â¼úµéÀ» ÀÌ¿ëÇؼ­ ¸»ÀÌ´Ù.

ÀÌ Ã¥¿¡¼­´Â °£´ÜÇÑ ±â´ÉÀÇ ÁÖ½Ä ÅõÀÚ Á¶È¸±â(Stock Market Investment Tracker) ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °úÁ¤À» ÅëÇØ Å×½ºÆ® ÁÖµµ °³¹ß(TDD, Test-Driven Development)ÀÇ °³³äÀ» ¼Ò°³ÇÒ °ÍÀÌ´Ù. ÁÖ½ÄÀ̳ª ÅõÀÚ °°Àº ±âº»ÀûÀÎ µµ¸ÞÀΠŬ·¡½º(domain class) °³¹ßÀ» Çϸ鼭 Å×½ºÆ®¶õ ¹«¾ùÀÎÁö ¸ÕÀú ±âº»À» ÀÍÈ÷°í, À¯Áö º¸¼ö°¡ ¿ëÀÌÇÑ ºê¶ó¿ìÀú ÄÚµå¶õ ¹«¾ùÀÎÁö ¼³¸íÇØÁÙ °ÍÀÌ´Ù. ±×¸®°í ÀÇÁ¸¼º °ü¸®, ÀÚµ¿È­ ºôµå¸¦ À§ÇØ ¹éº»JS¿Í ¸®ÄâÀ̾îJS¸¦ ¾ÖÇø®ÄÉÀ̼ǿ¡ Àû¿ëÇϸ鼭 Ç® ¸®ÆÑÅ丵(full refactoring)À» ÇÏ´Â °ÍÀ¸·Î ¸¶¹«¸®ÇÒ °ÍÀÌ´Ù.

¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú

ÀÚµ¿È­µÈ ÅøÀ» ÀÌ¿ëÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå Å×½ºÆÿ¡ ¾ÆÁ÷µµ ¸·¿¬ÇÑ °ÅºÎ°¨À» °¡Áö°í °è½Ç °³¹ßÀںеéÀÌ ÀûÁö ¾ÊÀ» °ÍÀ¸·Î »ý°¢ÇÕ´Ï´Ù. ±¹³» À¥ °³¹ßÀÚ ¿©·¯ºÐµéÀÇ ´ëºÎºÐÀÇ ¾÷¹« ȯ°æ(ÀûÀº ¿¹»ê°ú Ã˹ÚÇÑ ÀÏÁ¤, ±×¸®°í ÀæÀº ¿ä±¸ »çÇ× º¯°æ)À» °¨¾ÈÇϸé Å×½ºÆÃÀ» À§ÇØ Åø »ç¿ë¹ýÀ» ÀÍÈ÷°í º°µµÀÇ Äڵ带 ÀÛ¼ºÇÑ´Ù´Â °ÍÀÌ µý ¼¼»ó ¼Ò¸®Ã³·³ µé¸®´Â °Íµµ ¹«¸®´Â ¾Æ´Ò °ÍÀÔ´Ï´Ù.

±×·¯³ª 10¿© ³â Àü ÄËÆ® º¤(Kent Beck)ÀÌ TDD °³¹ß ¹æ¹ý·ÐÀ» ÁÖâÇÑ ÀÌÈÄ, ¼±(à») Å×½ºÆ® ÈÄ(ý­) °³¹ß ¹æ½ÄÀÇ ÇÁ·Î±×·¡¹ÖÀº ±× È¿°ú°¡ ÃæºÐÈ÷ ÀÔÁõµÇ¾ú½À´Ï´Ù. ¹°·Ð, TDD°¡ ¸ðµç °³¹ß ÇÁ·ÎÁ§Æ®¿¡¼­ Àû¿ë °¡´ÉÇÑ ¿Ïº®ÇÑ ¼Ö·ç¼ÇÀ̶ó°í ÇÒ ¼ö´Â ¾ø°ÚÁö¸¸, ºñÁî´Ï½º ·ÎÁ÷À» ±¸ÇöÇϱâ Àü¿¡ Å×½ºÆ® Äڵ带 ¸ÕÀú ÀÛ¼ºÇÔÀ¸·Î½á °³¹ßÀÚ º»ÀÎ ½º½º·Î ¸ñÇ¥¸¦ ºÐ¸íÈ÷ Á¤ÇÒ ¼ö ÀÖ°í, ¡®°³¹ßÀ» ¿Ï·áÇß´Ù¡¯¶ó´Â ÆÇ´Ü ±âÁØÀ» °´°üÀûÀ¸·Î Á¦½ÃÇÒ ¼ö ÀÖ´Ù´Â Á¡¸¸À¸·Îµµ ÃæºÐÈ÷ ¸Å·ÂÀûÀ̶ó°í º¾´Ï´Ù. ¶Ç ¿ä°ÇÀÌ º¯°æµÇ¾î Äڵ带 ¼öÁ¤ÇØ¾ß ÇÒ °æ¿ì¿¡µµ ¹ø°Å·Ó°í ¸¹Àº ½Ã°£ÀÌ ¼Ò¿äµÇ´Â Å×½ºÆà ÀÛ¾÷À» ÀÚµ¿È­ÇÏ¿© ¡®±â°è°¡ ³ª ´ë½Å ÀÏÀ» ÇØÁش١¯´Â »ÑµíÇÔÀ» ´À³¥ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

ÀÌ Ã¥Àº À罺¹ÎÀ¸·Î ÀÚ¹Ù½ºÅ©¸³Æ® Å×½ºÆ® Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý»Ó¸¸ ¾Æ´Ï¶ó ¸ð´ø ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ ÇÊ¿äÇÑ ³ëµåJS, ¹éº»JS, ¸®ÄâÀ̾îJS µî¿¡ ´ëÇØ ´Ù·ç°í ÀÖ½À´Ï´Ù. ÀÌ·ÐÀûÀÌ°í ±³°ú¼­ÀûÀÎ ¼³¸íÀÌ ¾Æ´Ñ, ½ÇÁ¦ ÇöÀå¿¡¼­ Á¢ÇÒ ¼ö ÀÖ´Â ½ÇÀüÀûÀÎ ¿¹Á¦ Äڵ尡 ¼ö·ÏµÇ¾î ÀÖ´Â °Íµµ ¶Ç ´Ù¸¥ ÀåÁ¡ÀÔ´Ï´Ù. ¿©·¯ºÐµéÀÌ ÀÌ Ã¥À» Àаí ÀúÀÚÀÇ ¸Ó¸®¸» ù ¹®±¸Ã³·³ ¡®´õ ³ªÀº ÀÚ¹Ù½ºÅ©¸³Æ® °³¹ßÀÚ¡¯°¡ µÇ´Â °ÍÀº ¹°·ÐÀÌ°í, ³ªÀÌ°¡ µé¾î¼­µµ ÇнÀÀÇ ²öÀ» ³õÁö ¾Ê´Â, ²ÙÁØÈ÷ ¼ºÀåÇÏ´Â °³¹ßÀÚ°¡ µÇ½Ã±â ¹Ù¶ø´Ï´Ù!

¸ñÂ÷

1 À罺¹Î ½ÃÀÛ
__ÀÚ¹Ù½ºÅ©¸³Æ®: ³ª»Û Á¡µé
__À罺¹Î°ú BDD
__³»·Á¹Þ¾Æ ½ÇÇàÇغ¸±â
__Á¤¸®

2 ½ºÆå ÀÛ¼º
__ÁÖ½Ä ÅõÀÚ Á¶È¸±â ¾ÖÇø®ÄÉÀ̼Ç
__À罺¹ÎÀÇ ±âº»°ú BDD »ç°í¹æ½Ä
__±¸¼º°ú Á¤¸®
__describe Áßø
____±¸¼º°ú Á¤¸®
____ÇàÀ§¸¦ °øÀ¯ÇÏ¿© ½ºÆå ÄÚµù
__¸ÅóÀÇ ÀÌÇØ
____Ä¿½ºÅÒ ¸Åó
____³»Àå ¸Åó
________toEqual
________toBe
________toBeTruthy, toBeFalsy
________toBeUndefined, toBeNull, toBeNaN
________toBeDefined
________toContain
________toMatch
________toBeLessThan, toBeGreater
________toThrow
__Á¤¸®

3 ÇÁ·ÐÆ®¿£µå ÄÚµå Å×½ºÆÃ
__ÄÄÆ÷³ÍÆ® °üÁ¡À¸·Î »ý°¢Çϱâ(ºä)
__¸ðµâ ÆÐÅÏ
__HTML ÇȽºÃ³ »ç¿ë
__±âº»ÀûÀÎ ºä ÄÚµù ±ÔÄ¢
____ºä´Â DOM ¿¤¸®¸ÕÆ®¸¦ ĸ½¶È­ÇØ¾ß ÇÑ´Ù
____ºä¸¦ ¿ÉÀú¹ö¿Í ÅëÇÕÇØ¾ß ÇÑ´Ù
__jQuery ¸Åó·Î ºä Å×½ºÆÃ
____toBe
____toContainHtml
____toContain
____toHaveValue
____toHaveAttr
____toBeFocused
____toBeDisabled
____±âŸ Ä¿½ºÅÒ ¸Åó
__Á¤¸®

4 ºñµ¿±â Å×½ºÆÃ: AJAX
__½Ã³ª¸®¿À ¼³Á¤
____³ëµåJS ¼³Ä¡
____¼­¹ö ÄÚµù
____¼­¹ö ½ÇÇà
__½ºÆå ÀÛ¼º
____waitsFor() ÇÔ¼ö
____runs() ÇÔ¼ö
__Á¤¸®

5 À罺¹Î ½ºÆÄÀ̽º
__ºó ½ºÆÄÀÌ ÇÔ¼ö
__°´Ã¼ ÇÔ¼ö¿¡ ´ëÇÑ ½ºÆÄÀÌ
__DOM À̺¥Æ® Å×½ºÆÃ
__Á¤¸®

6 ±¤¼Ó ´ÜÀ§ Å×½ºÆÃ
__À罺¹Î ½ºÅÓ
__½Ã³íJS
____½Ã³íJS ¼³Ä¡
____ÆäÀÌÅ© XMLHttpRequest
____ÆäÀÌÅ© ¼­¹ö
__Á¤¸®

7 ¹éº» ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆÃ
__¹éº» ¸ðµ¨
____¹éº» ¸ðµ¨ ¼±¾ð
____¸ðµ¨ ¼Ó¼º
____µðÆúÆ® ¼Ó¼º°ª
____À̺¥Æ®
____µ¿±âÈ­¿Í AJAX ¿äû
__¹éº» ÄÝ·º¼Ç Å×½ºÆÃ
____ÄÝ·º¼Ç ¼±¾ð
____µ¿±âÈ­¿Í AJAX ¿äû
__¹éº» ºä Å×½ºÆÃ
____ºä ¼±¾ð
____el ÇÁ·ÎÆÛƼ
____·»´õ¸µ
____¸ðµ¨ º¯°æ ½Ã ºä ¾÷µ¥ÀÌÆ®
____DOM À̺¥Æ® ¹ÙÀεù
__¹éº» ¶ó¿ìÅÍ Å×½ºÆÃ
____¶ó¿ìÅÍ Á¤ÀÇ
____°æ·Î Á¤ÀÇ
____¶ó¿ìÅÍ È°¿ë
____¶ó¿ìÅÍ´Â º¸³»±â¸¸ ÇÑ´Ù
__Á¤¸®

8 ºôµå ÀÚµ¿È­
__¸®ÄâÀ̾îJS
____¸ðµâ Á¤ÀÇ
____ÇÁ·ÎÁ§Æ® ¼³Á¤
________SpecRunner.JS ÆÄÀÏ »ý¼º
________RequireJS ¼³Á¤
____¸ðµâ Å×½ºÆÃ
____¿î¿µ ȯ°æÀ» À§ÇÑ ÃÖÀûÈ­
__ÆÒÅÒJS Çìµå¸®½º Å×½ºÆÃ
____ÆÒÅÒJS ´Ù¿î·Îµå ¹× ¼³Ä¡
____ºê¶ó¿ìÀú¸¦ ¿­Áö ¾Ê°í Å×½ºÆ®
__±×·±Æ®
____±×·±Æ® ¼³Ä¡
____ÇÁ·ÎÁ§Æ® ¼³Á¤
____¸®ÄâÀ̾îJS ¿ÉƼ¸¶ÀÌÀú ŽºÅ©
____À罺¹Î ŽºÅ©
____º¯È­ °¨½Ã ¹× ½ºÆå ½ÇÇà
__NPM ÀÇÁ¸¼º °ü¸®
__Á¤¸®

9 ¸¶¹«¸®

ºÎ·Ï A Á¦ÀÌÄõ¸® Ç÷¯±×ÀÎ Å×½ºÆÃ
__Á¤¸®

ºÎ·Ï B Æ®·¡ºñ½º CI¸¦ ÀÌ¿ëÇÑ Áö¼ÓÀû ÅëÇÕ
__Æ®·¡ºñ½º CI¿¡ ÇÁ·ÎÁ§Æ® Ãß°¡
__ÇÁ·ÎÁ§Æ® ¼³Á¤
__Á¤¸®

ºÎ·Ï C À罺¹Î 2.0°ú ¹Ì·¡
__Ãâ½Ã Èĺ¸ 2
__ÁÖ¿ä ¾÷µ¥ÀÌÆ®
__Ä¿½ºÅÒ ¸Åó »ý¼º ¹®¹ý °³Æí
__»õ·Î¿î ºñµ¿±â ½ºÆå ¹®¹ý
__»õ·Î¿î ½ºÆÄÀÌ ¹®¹ý
__Á¤¸®

ÀúÀÚ¼Ò°³

ÆÄ¿ï·Î ¶ó°í³ª [Àú] ½ÅÀ۾˸² SMS½Åû
»ý³â¿ùÀÏ -

ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.

ÀÌÀÏ¿õ [¿ª] ½ÅÀ۾˸² SMS½Åû
»ý³â¿ùÀÏ -

ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.

ÀÌ »óÇ°ÀÇ ½Ã¸®Áî

(ÃÑ 225±Ç / ÇöÀ籸¸Å °¡´Éµµ¼­ 225±Ç)

¼±ÅÃÇÑ »óÇ° ºÏÄ«Æ®´ã±â
ÆîÃ帱â

Àü°øµµ¼­/´ëÇб³Àç ºÐ¾ß¿¡¼­ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥

    ¸®ºä

    0.0 (ÃÑ 0°Ç)

    100ÀÚÆò

    ÀÛ¼º½Ã À¯ÀÇ»çÇ×

    ÆòÁ¡
    0/100ÀÚ
    µî·ÏÇϱâ

    100ÀÚÆò

    0.0
    (ÃÑ 0°Ç)

    ÆǸÅÀÚÁ¤º¸

    • ÀÎÅÍÆÄÅ©µµ¼­¿¡ µî·ÏµÈ ¿ÀǸ¶ÄÏ »óÇ°Àº ±× ³»¿ë°ú Ã¥ÀÓÀÌ ¸ðµÎ ÆǸÅÀÚ¿¡°Ô ÀÖÀ¸¸ç, ÀÎÅÍÆÄÅ©µµ¼­´Â ÇØ´ç »óÇ°°ú ³»¿ë¿¡ ´ëÇØ Ã¥ÀÓÁöÁö ¾Ê½À´Ï´Ù.

    »óÈ£

    (ÁÖ)±³º¸¹®°í

    ´ëÇ¥ÀÚ¸í

    ¾Èº´Çö

    »ç¾÷ÀÚµî·Ï¹øÈ£

    102-81-11670

    ¿¬¶ôó

    1544-1900

    ÀüÀÚ¿ìÆíÁÖ¼Ò

    callcenter@kyobobook.co.kr

    Åë½ÅÆǸž÷½Å°í¹øÈ£

    01-0653

    ¿µ¾÷¼ÒÀçÁö

    ¼­¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù)

    ±³È¯/ȯºÒ

    ¹ÝÇ°/±³È¯ ¹æ¹ý

    ¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼­ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼­ ½Åû °¡´É

    ¹ÝÇ°/±³È¯°¡´É ±â°£

    º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É
    ´Ü, »óÇ°ÀÇ °áÇÔ ¹× °è¾à³»¿ë°ú ´Ù¸¦ °æ¿ì ¹®Á¦Á¡ ¹ß°ß ÈÄ 30ÀÏ À̳»

    ¹ÝÇ°/±³È¯ ºñ¿ë

    º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã
    »óÇ°À̳ª ¼­ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯/¹ÝÇ°Àº ¹Ý¼Û·á ÆǸÅÀÚ ºÎ´ã

    ¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯

    ·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
    (´ÜÁö È®ÀÎÀ» À§ÇÑ Æ÷Àå ÈѼÕÀº Á¦¿Ü)

    ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì
    ¿¹) È­ÀåÇ°, ½ÄÇ°, °¡ÀüÁ¦Ç°(¾Ç¼¼¼­¸® Æ÷ÇÔ) µî

    ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì
    ¿¹) À½¹Ý/DVD/ºñµð¿À, ¼ÒÇÁÆ®¿þ¾î, ¸¸È­Ã¥, ÀâÁö, ¿µ»ó È­º¸Áý

    ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì

    ·ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì

    »óÇ° Ç°Àý

    °ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½

    ¼ÒºñÀÚ ÇÇÇغ¸»ó
    ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó

    ·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© 󸮵Ê

    ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ

    (ÁÖ)KGÀ̴Ͻýº °áÁ¦´ë±Ý¿¹Ä¡¾÷ µî·Ï¹øÈ£: 02-006-00013

    (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ
    ¸ðµç °Å·¡¿¡ ´ëÇÏ¿© (ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼­ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.
    µî·Ï ¿©ºÎ´Â e-±ÝÀ¶¹Î¿ø¼¾ÅÍ È¨ÆäÀÌÁö(www.fcsc.kr)ÀÇ µî·Ï¡¤½Å°í>ÀüÀÚ±ÝÀ¶¾÷µî·ÏÇöȲ ¸Þ´º¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼­ºñ½º °¡ÀÔ»ç½Ç È®ÀÎ

    ¹è¼Û¾È³»

    • ±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

    • Ãâ°í°¡´É ½Ã°£ÀÌ ¼­·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.

    • ±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.

    • ¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.

    • - µµ¼­ ±¸¸Å ½Ã 15,000¿ø ÀÌ»ó ¹«·á¹è¼Û, 15,000¿ø ¹Ì¸¸ 2,500¿ø - »óÇ°º° ¹è¼Ûºñ°¡ ÀÖ´Â °æ¿ì, »óÇ°º° ¹è¼Ûºñ Á¤Ã¥ Àû¿ë