ÇϳªÀÇ Å×½ºÆ®´Â ½ºÄÉÄ¡¸¦ ÀÌ·ç´Â ÇϳªÀÇ ¼±°ú °°´Ù. ¼±À» Çϳª ±ß´Â °ÍÀº ±×¸²ÀÌ ±× ¹ÛÀ¸·Î ³ª°¡Áö ¾Ê°Ú´Ù´Â Àǹ̴Ù. ¿©·¯ °³ÀÇ ¼±À» ±×¾î ½ºÄÉÄ¡¸¦ Çϰí, ³ÑÄ¡´Â ¼±Àº Áö¿î´Ù. ½ºÄÉÄ¡°¡ ³¡³ª¸é ¸ðµç ±¸ÇöÀº ±× ¾È¿¡¼ ÀÌ·ç¾îÁø´Ù´Â °ÍÀÌ º¸ÀåµÈ´Ù. - ½ºÄÉÄ¡ ¸ÞŸÆ÷
XP¿¡´Â °í°´¿¡ ´ëÇÑ ¸í½ÃÀûÀÎ °í·Á°¡ ¾ø´Ù. ³»°¡ °í°´ÀÏ ¶§´Â ¾î¶»°Ô ÇØ¾ß µÉ±î? °í°´¿¡°Ôµµ ¹®¼°¡ ÇÊ¿ä¾øÀ»±î? °í°´ÀÇ ´ëÇ¥´Â ¾î¶»°Ô °í°´À» ´ëÇ¥ÇÏ´Â °ÍÀϱî?
Å×½ºÆ®µéÀ» ÀÚµ¿ÈÇϴµ¥ µå´Â ½Ã°£Àº? ¸®ÆÑÅ丵Çϴµ¥ µå´Â ½Ã°£Àº? °¢°¢À» UserStory·Î ¸¸µé¾î¾ß Çϳª? UserStory ¾øÀ̵µ ½Ã°£ ºÐ¹è°¡ °¡´ÉÇѰ¡?
UserStory·Î ÆÀ ¼Óµµ¸¦ ÃøÁ¤ÇÑ´Ù¸é, UserStory·Î ¸¸µé ¼ö ¾ø´Â ÀÛÀº ÀÏÀº ´©¶ôµÇ´Â°¡? Æ´Æ´ÀÌ Çϴ°¡?
µÎ °³ÀÇ UserStory°¡ ÀÖ¾ú´Âµ¥, UserStory #1À» ÀÛ¾÷ÇÏ¸é¼ UserStory #2±îÁö ¸¸Á·½ÃÄ×´Ù¸é ÀÌ ÆÀÀº À̹ø ÀÌÅÍ·¹À̼ǿ¡¼ µÎ °³ÀÇ UserStory¸¦ ÇÑ °ÍÀÏ±î ¾Æ´Ò±î? ÆÀ ¼Óµµ´Â 1Àϱî 2Àϱî?
½ºÅ丮ÀÇ Å©±â¸¦ Àß ÃøÁ¤Çß´Ù°í °¡Á¤ÇÏ¸é ¿¹»óº¸´Ù »¡¸® ÀÛ¾÷À» ÇÑ °ÍÀ̰í ÀÌ·¯ÇÑ ¼ÓµµÀÇ º¯È°¡ ÆÀ ¼Óµµ¿¡ ¹Ý¿µÀÌ µÇ¾î¾ß ÇÑ´Ù. ¸¸¾à ½ºÅ丮 Å©±âÀÇ ÃøÁ¤ ½ÇÆÐ¶ó¸é UserStory #2ÀÇ ³»¿ëÀ» UserStory #1¿¡ ¿Å°Ü Àû°í Âõ¾î¹ö¸°´Ù.
UserStory #1À» ÀÛ¾÷ÇÏ¸é¼ UserStory #2ÀÇ ÀϺΠÀÛ¾÷À» ¸¸Á·½ÃÄѼ UserStory #2ÀÇ Å©±â°¡ ¹ÝÀ¸·Î ÁÙ¾ú´Ù¸é ¿¹ÃøµÈ Å©±â ¿·¿¡ ½ÇÃøµÈ Å©±â¸¦ ´Ù½Ã Àû°í ÆÀ ¼Óµµ¿¡´Â À̰͸¸ ¹Ý¿µÇÑ´Ù.
·£´ý °ªÀÌ Æ÷ÇÔµÈ °è»ê½ÄÀ» °ËÁõÇÏ´Â Å×½ºÆ®¸¦ ¾î¶»°Ô ¸¸µé ¼ö ÀÖÀ»±î?
¿ä±¸»çÇ׿¡ µû¶ó ´Þ¶óÁú °Í °°½À´Ï´Ù. Ưº°ÇÑ Á¶°ÇÀÌ ¾ø´Ù¸é ·£´ý°ªÀÇ ¹üÀ§¿¡ ´ëÇÑ ºÎºÐ¸¸ Å×½ºÆ®¸¦ ÇÏ¸é µÇÁö ¾ÊÀ»±î¿ä? ¿¹¸¦ µé¸é 10¹ø È£ÃâÇØ¼ ±× °ª ¸ðµÎ°¡ ¹üÀ§¾È¿¡ Æ÷ÇԵǴÂÁö ¿©ºÎ¸¦ Å×½ºÆ® ÇÏ´Â °ÅÁÒ. ¸î ¹ø ¾È¿¡ °ãÄ¡Áö ¾Ê´Â ·¥´ý°ªÀ̶ó´Â ¿ä±¸»çÇ×ÀÌ ÀÖ´Ù¸é ±× ¸î ¹øÀ» È£ÃâÇØ¼ ¸ðµÎ °¢°¢ ´Ù¸¥ °ªÀÓÀ» Å×½ºÆ® Çϰí¿ä. ´õ ÁÁÀº Å×½ºÆ® ¹æ¹ýÀÌ ÀÖÀ»±î¿ä? --Â÷ÇöÁø
ÀÏ´Ü, Å×½ºÆ®¸¦ ÇÏ´Â ÀÌ»ó, Å×½ºÆ®°¡ ¼º°øÇÑ °æ¿ì ¹Ýµå½Ã °á°ú¿¡ ´ëÇÑ º¸ÀåÀÌ ÀÖ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. ±×·±µ¥ ·£´ý °ªÀÇ º¸ÀåÀ̶õ ¾î·Æ´Ù°í »ý°¢ÇÕ´Ï´Ù. 0ºÎÅÍ 100 »çÀÌÀÇ °ªÀÌ ³ª¿Í¾ß ÇÑ´Ù´Â Á¶°ÇÀÌ ÀÖÀ» ¶§, 100¹ø ¼º°øÇß´Ù°í ÇØ¼ Á¶°ÇÀÌ ¸¸Á·µÇ¾ú´Ù°í º¸±â°¡ ¾î·Æ½À´Ï´Ù. °Ë»ç¸¦ ÃæºÐÈ÷ ¸¹ÀÌ ÇÏ¸é ±× ¼ýÀÚ¸¸Å Åë°èÀûÀÎ È®½ÅÀ» °¡Áú ¼ö¾ß ÀÖ°ÚÁö¸¸, ±×°ÍÀÌ º¸ÀåÀÌ µÉ ¼ö´Â ¾øÁö ¾ÊÀ»±î¿ä? ¿À´Ã Å×½ºÆ®ÇßÀ» ¶§´Â ¼º°øÇߴµ¥, ³»ÀÏ Å×½ºÆ®ÇßÀ» ¶§´Â ½ÇÆÐÇÏ´Â Å×½ºÆ®´Â Å×½ºÆ®¶ó°í ÇÒ ¼ö ¾øÀ» °Ì´Ï´Ù.
±ÛÀ» ¾²°í Àá±ñ »ý°¢À» ÇØº¸¾Ò´Âµ¥, TDD Àü¹®°¡µé »çÀÌ¿¡¼´Â ÀÌ¹Ì ·£´ýÀ» Å×½ºÆ®ÇÏ´Â ÆÐÅÏÀÌ ÀÖÁö ¾ÊÀ»±î ½Í¾î¿ä. ¿¹¸¦ µé¸é º¸Åë »ç¿ëÇÏ´Â ·£´ý Á¦³Ê·¹ÀÌÅͰ¡ ÀÖ°í Å×½ºÆ®¿ëÀ¸·Î »ç¿ëÇÏ´Â ·£´ý Á¦³Ê·¹ÀÌÅÍ MockObject°¡ ÀÖ¾î¼, MockObject´Â ½ÇÁ¦ ·£´ý °ªÀ» µ¹·ÁÁÖ´Â ´ë½Å ÃÖ¼Ò°ª°ú ÃÖ´ë°ª¸¸ µ¹·ÁÁÖ´Â ½ÄÀÌÁÒ. ¾î¶³±î¿ä? -- ¼Õ°æ¿í
Àúµµ ¸»¾¸ÇϽйæ¹ý´ë·Î pseudo random generator ¸¦ ¸¸µé¾î ¾´ Àûµµ ÀÖ±ä ÇÕ´Ï´Ù. list ¾È¿¡ ÀÖ´Â item ¿¡ ´ëÇØ¼ ·»´ý ¼±ÅÃÀ» ÇÏ¿© ÀϺθ¦ ²¨³»´Â ¹æ½ÄÀε¥, ±× °æ¿ì pseudo random generator ¸¦ ÀÌ¿ëÇØ¼ ²¨³¾ item °ªµéÀ» ¸¸µé°í ÁøÇàÀ» ÇÑ ÀûÀÌ ÀÖ½À´Ï´Ù. ¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î, random ÀÚü¿¡ ´ëÇÑ Å×½ºÆ® ´ë½Å, random Áß 'ÀûÀýÇÑ °ª' ȤÀº 'ÀûÀýÄ¡ ¸øÇÑ °ª'À» 'ÀÌ¹Ì ²¨³»¾ú´Ù' °¡Á¤Çϰí, ±×¿¡ µû¸¥ ·ÎÁ÷ 󸮿¡ ´ëÇØ UT ¸¦ ¸¸µé¾ú¾ú½À´Ï´Ù. Ưº°ÇÑ ¹®Á¦°¡ ¾øÀ» ¶§ ÈÄÀÚÀÇ ¹æ¹ýÀÌ ´õ ÁÁ¾Ò´ø °Í °°½À´Ï´Ù.
¶ÇÇÑ, Database ¿¡¼ÀÇ auto-increment ID¸¦ ÀÌ¿ëÇÏ´Â °æ¿ì³ª, DB ¿¡¼ DB SQL ¹®À¸·Î ÀúÀåÇÏ´Â µî·Ï³¯Â¥ ¹®Á¦¿¡¼ ºñ½ÁÇÑ °æ¿ìÀÇ ¹®Á¦¸¦ °Þ¾ú¾ú½À´Ï´Ù. ±×¸®°í, ÀÌ Å×½ºÆ®¸¦ ÀÛ¼ºÇÒ¶§ 'ÀÌ Å×½ºÆ®´Â UT Coverage ¸¦ ³ôÀ̱â À§ÇؼÀ̰í, Design À» À§ÇÑ ¹æ¹ýÀº ¾Æ´Ò °Í °°´Ù'´Â °í¹ÎÀ» ÇÑ ÀûÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¥ »ç¶÷µéÀÇ ÀǰßÀÌ ±Ã±ÝÇϳ׿ä. --°¼®Ãµ
ÈÄÀÚÀÇ ¹æ¹ýµµ ÁÁ½À´Ï´Ù. ±×·±µ¥ ±×°ÍÀº ±â´ÉÀÌ ¿¹¿Ü 󸮿¡ ¾ÈÀüÇÏ´À³Ä¿¡ ´ëÇÑ Å×½ºÆ®¿¡ »ç¿ëÇÒ ¹æ¹ýÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ¸¸¾à¿¡ 1°ú 5¸¦ ³ÖÀ¸¸é 2¿¡¼ 6 »çÀÌÀÇ °ªÀ» ¹ÝÈ¯ÇØ¾ß ÇÏ´Â ¸Þ½îµå°¡ ÀÖ´Ù°í Ĩ½Ã´Ù. ¾Æ¸¶ ÀÎÀÚ¿¡ +1À» ÇØ¼ »çÀÌÀÇ ¹«ÀÛÀ§ °ªÀ» ¹ÝȯÇÏ´Â ¸Þ½îµå°ÚÁö¿ä. ÀÌ ¸Þ½îµå°¡ »ç¿ëÇÏ´Â ·£´ý Á¦³Ê·¹ÀÌÅÍ´Â ÀÌ¹Ì ´Ù¸¥ °÷¿¡¼ Å×½ºÆ®°¡ µÇ¾ú°Å³ª ¾Æ´Ï¸é Å×½ºÆ®ÇÒ Çʿ䰡 ¾ø´Â ±â´ÉÀÏ °ÍÀÔ´Ï´Ù. (¿¹¸¦ µé¾î built-in) ±×·¯¸é ¿ì¸®°¡ ÇØ¾ßÇÒ ÀÏÀº ¹Ýȯ°ªÀÌ 2¿Í 6 »çÀÌÀÇ °ªÀΰ¡¸¦ °Ë»çÇÏ´Â °ÍÀÔ´Ï´Ù. ÀûÀýÇÑ °ªÀÎ 4¿Í ÀûÀýÄ¡ ¸øÇÑ °ªÀÎ 1·Î Å×½ºÆ®ÇÒ ¼ö ÀÖ´Â Á¾·ùÀÇ ¹®Á¦°¡ ¾Æ´Ñ °ÍÀÌÁÒ.
¸»¾¸ÇϽаÍÀº '¹üÀ§'¶ó´Â °³³äÀ¸·Î ¹¾úÀ» ¶§ input ´ëºñ output°¡ ¸íÈ®ÇØº¸ÀÌ´Â °æ¿ì °°½À´Ï´Ù. --°¼®Ãµ
±ÛÀ» ÁÖ°í ¹ÞÀ¸¸é¼ Á¤¸®ÇÏ´Ùº¸´Ï ·£´ý À̽´°¡ ÇÑ Á¾·ù°¡ ¾Æ´Ñ °Í °°½À´Ï´Ù. ±×·¯´Ï±î Á¦°¡ ÀûÀýÄ¡ ¾ÊÀº Áú¹®À» ÇÑ °ÍÀ̳׿ä. ÀÌÁ¦ Á¦°¡ ±Ã±ÝÇÑ °ÍÀº "TestDrivenDevelopment¿¡¼ÀÇ ¸î °¡Áö ·£´ý À̽´µé" Á¤µµ·Î ¿ä¾àÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. -- ¼Õ°æ¿í
¿À´Ã ³¯Â¥¸¦ °¡Á®¿À´Â Å×½ºÆ®¸¦ ¾î¶»°Ô ¸¸µé±î?
°¼®Ãµ´Ô ¸»¾¸À» µè°í ³ª´Ï Á¦ °æÇèÀÌ Çϳª »ý°¢ ³µ½À´Ï´Ù. ÀÏÀü¿¡ '¿À´Ã ³¯Â¥'ÀÇ µð·ºÅ丮¸¦ Çϳª ¸¸µé°í ÆÄÀÏÀ» ¹é¾÷ÇÏ´Â ½ºÅ©¸³Æ®¸¦ TDD·Î § ÀûÀÌ ÀÖ½À´Ï´Ù. »ý°¢À» ÇØº¸´Ï ÀÌ '¿À´Ã ³¯Â¥' Å×½ºÆ®¸¦ ¸¸µé±â°¡ ½±Áö°¡ ¾Ê´õ±º¿ä. º¸Åë Å×½ºÆ®¿¡¼ ±â´ëÇÏ´Â °ª(expected)Àº »ó¼ö·Î Àû½À´Ï´Ù. ±×·±µ¥ ¿À´ÃÀ̶ó´Â ³¯Â¥´Â ¸ÅÀÏ ¹Ù²î¹Ç·Î ¿©±â¿¡ ´ëÀÀÇÏ·Á¸é ±â´ëÇÏ´Â °ªÀÌ ÇÔ¼ö³ª º¯¼ö°¡ µÇ¾î¾ß°ÚÁÒ. ±×·¯¸é ±× ÇÔ¼ö°¡ Á¦´ë·Î ÀÛµ¿ÇÏ´Â °ÍÀº ¾î¶»°Ô °Ë»çÇÒ ¼ö ÀÖÀ»±î¿ä?
Àú¶ó¸é '¿À´Ã³¯Â¥'ÀÇ °æ¿ì API ·Î Ä£´Ù¸é GetLocalTime? °ú °°Àº '¾ÈÁ¤µÈ API È£ÃâÀ» ÅëÇØ ¾ò¾î¿À´Â °ª'À̹ǷΠ'¿À´Ã³¯Â¥°¡ Á¦´ë·Î µé¾î¿À´ÂÁö' ¿¡ ´ëÇÑ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏÁö ¾Ê°í ÁøÇàÇÒ °Ì´Ï´Ù. ±×·¯´Ù°¡ °Å±â¿¡ indirection À» µÎ°í ½Í´Ù¸é (¹«¾ð°¡ ¿À´Ã³¯Â¥¸¦ sink Çϱâ À§Çؼ ƯÁ¤ ¼¹ö·ÎºÎÅÍ ³¯Â¥¸¦ ÀϰýÀûÀ¸·Î °¡Á®¿À´Â ½ÄÀÇ ±â´ÉÀÌ ÇÊ¿äÇÑ °æ¿ì) ICalendar? ¿Í MockCalendar? ¿Í °°Àº indirection À» µÎ°í ´Ã ¿¹Ãø°¡´ÉÇÑ ³¯Â¥¸¦ °¡Á®¿À´Â ºÎºÐ¿¡ ´ëÇØ ±¸ÇöÀ» Ãß°¡ÇÕ´Ï´Ù.
ÀúÀÇ °æ¿ì °¡²û Å×½ºÆ®¿¡ ƯÁ¤ ³¯Â¥¸¦ ÀÓÀÇ·Î ÀûÀºµÚ, ±¸ÇöÀ» ÇÏ´Â °æ¿ì°¡ ÀÖ¾ú½À´Ï´Ù. ±×·¯´Ù°¡, ÀÇ¹Ì ÀÖ´Â Å×½ºÆ®µéÀ» »ý°¢Çϰí ÇÊ¿ä¾ø´Â Å×½ºÆ®µéÀ» »èÁ¦ÇÏ·Á°í ÇÒ¶§ ÁîÀ½, ƯÁ¤ ³¯Â¥¸¦ Á÷Á¢ ÀûÀº ±× Å×½ºÆ®¸¦ Áö¿ö¹ö¸®°ï Çß´ø °Í °°½À´Ï´Ù. ±úÁö±â ½¬¿î Å×½ºÆ®À̰í, ±× ºÎºÐÀ» ±¸ÇöÇϴµ¥ API¸¦ ¿Ã¹Ù¸£°Ô È£ÃâÇß´ÂÁö ¿©ºÎ ÀÌ»óÀÇ Å« Àǹ̸¦ Á¦°øÇØÁÖ´Â °Í °°Áö ¾Ê¾Æ¼ ±×·¨¾ú½À´Ï´Ù. (±×¸®°í º° ¹®Á¦´Â ¾ø¾ú½À´Ï´Ù.) ¿Ã¹Ù¸¥ ¹æ¹ýÀÎÁö ´Ù¸¥ ºÐµéÀÇ Àǰߵµ ±Ã±ÝÇϱº¿ä. --°¼®Ãµ
ȨÆäÀÌÁöºÐ·ù
EditText
of this page
(last modified 2006-12-27 18:21:07)
FindPage
by browsing, searching, or an index
Or try one of these actions:
DeletePage,
DeleteUploadedFile,
EditAdd,
LikePages,
Publish,
SisterSitesLikePages,
SpellCheck,
UploadFile