
TDD(Test Driven Development)´Â Å×½ºÆ®°¡ °³¹ßÀ» ÁÖµµÇÏ´Â ¹æ¹ýÀ¸·Î¼, Å×½ºÆ®°¡ ÄÚµùÀÇ ¹æÇâÀ» À̲ø°Ô µÈ´Ù. Å×½ºÆ®¸¦ ½ÇÆÐÇÏ´Â Äڵ尡 ¾øÀ¸¸é ÄÚµùÀ» ÇÏÁö ¾Ê°í, ÄÚµå »ó¿¡ Áߺ¹ÀÌ ÀÖÀ¸¸é Á¦°ÅÇÏ´Â °£´ÜÇÑ ±ÔÄ¢À» Àû¿ëÇÏ¿© ÀÚ¿¬½º·´°Ô Äڵ带 ¸¸µé¾î °£´Ù. Å×½ºÆ® ÁÖµµ °³¹ßÀ» ÆÛ¶ß¸®´Â À庻ÀÎÀÌ¸ç °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀÇ ¼±±¸ÀÚ Áß ÇÑ»ç¶÷ÀÎ ÀúÀÚ¿Í ÇÔ²² ÇÁ·Î±×·¡¹ÖÇÏ´Â °æÇèµµ ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ Ã¥Àº ´ÙÀ½°ú °°ÀÌ ¼¼ºÎºÐÀ¸·Î ±¸¼ºµÇ¾ú´Ù.
1ºÎ¿¡¼´Â Money ¿¹Á¦·Î¼, TDD·Î ÀÏ»óÀûÀÎ ¸ðµ¨ Äڵ带 ¸¸µå´Â ¿¹Á¦¸¦ ´Ù·é´Ù. ÄÚµùÇϱâ Àü¿¡ ¸ÕÀú Å×½ºÆ®¸¦ ¸¸µå´Â ¹ý°ú ¼³°è¸¦ À¯±âÀûÀ¸·Î Ű¿ö³ª°¡´Â ¹æ¹ýÀ» ¹è¿ì°Ô µÈ´Ù. 2ºÎ¿¡¼´Â xUnit ¿¹Á¦·Î¼, ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µé°í, ±× °úÁ¤¿¡¼ ¸®Ç÷¢¼ÇÀ̳ª ¿¹¿Ü µîÀ» Æ÷ÇÔÇÏ´Â ´õ º¹ÀâÇÑ ·ÎÁ÷À» Å×½ºÆ®ÇÏ´Â ¿¹Á¦ÀÌ´Ù. 3ºÎ¿¡¼´Â Å×½ºÆ® ÁÖµµ °³¹ßÀ» À§ÇÑ ÆÐÅÏÀ» ¹è¿î´Ù. ¾î¶² Å×½ºÆ®¸¦ ÀÛ¼ºÇØ¾ß ÇÒ °ÍÀΰ¡, XUnit¿¡¼ ¾î¶»°Ô Å×½ºÆ®ÇÒ °ÍÀΰ¡ µî¿¡ ´ëÇÑ ÆÐÅϰú ¿¹Á¦¿¡¼ »ç¿ëµÈ µðÀÚÀÎ ÆÐÅϰú ¸®ÆÑÅ丵À» ¼Ò°³ÇÑ´Ù.

ÀúÀÚ : ÄËÆ® º¤(Kent Beck)
¼ÒÇÁÆ®¿þ¾î ÆÐÅÏ ¿îµ¿ÀÇ ¼±±¸ÀÚ Áß ÇÑ ¸íÀ̸ç, CRC Ä«µå¿Í HotDraw µå·ÎÀ× ¿¡µðÅÍ ÇÁ·¹ÀÓ¿öÅ©, xUnit À¯´Ö Å×½ºÆÃ ÇÁ·¹ÀÓ¿öÅ©¸¦ °³¹ßÇß°í, ¸®ÆÑÅ丵°ú Å×½ºÆ® ÁÖµµ °³¹ßÀ» ¼Ò°³Çß´Ù. ¶ÇÇÑ ±â¹ÎÇÑ ¹æ¹ý·Ð(Agile Methodology) Áß °¡Àå ³Î¸® ¾Ë·ÁÁø ÀͽºÆ®¸² ÇÁ·Î±×·¡¹Ö(Extreme Programming, XP)ÀÇ ¾Æ¹öÁö´Ù. ÇÇÇÿþ¾î·Î À¯¸íÇÑ Åè µð¸¶¸£ÄÚ(Tom DeMarco)´Â 2001³â OOPSLA ÄÁÆÛ·±½º¿¡¼ "ÄËÆ® º¤Àº CMM °³¹ßÀ» ÁöÈÖÇÑ ¿ÍÃ÷ ÇèÇÁ¸®°¡ Áö³ 10³â °£ Áß¿äÇß´ø °Íº¸´Ù ´õ Áß¿äÇØÁú °Í"À̶ó°í ¸»Çß´Ù. ÄËÆ® º¤Àº ÇöÀç Three Rivers Institute ¼Ò¼ÓÀÌ´Ù. Àú¼úÇÑ Ã¥À¸·Î´Â ¡ºSmalltalk Best Practice Patterns¡»¿Í ¡ºKent Beck's Guide to Better Smalltalk¡» °°Àº ½º¸ôÅäÅ© ÆÐÅÏ¿¡ °ü·ÃµÈ Ã¥µé°ú ¡ºExtreme Programming Explained¡», ¡ºPlanning Extreme Programming¡»(°øÀú), ¡ºRefactoring¡»(°øÀú), ¡ºContributing to Eclipse¡»(°øÀú) µîÀÌ ÀÖ°í ÇöÀçµµ ¿©·¯ Ã¥À» ÁýÇÊ Áß¿¡ ÀÖ´Ù.
¿ªÀÚ : ±èâÁØ
ÇöÀç ¿ù°£ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î ÀÚ¹®À§¿ø, Çѱ¹ XP »ç¿ëÀÚ ¸ðÀÓ ¼³¸³ÀÚ ¹× ÄÚ¾î±×·ì ¸â¹ö, XP ÄÚÄ¡ ÆÀ ¼ö¼® ÄÚÄ¡. ´ÙÀ½Ä¿¹Â´ÏÄÉÀ̼Ç, NHN, ÇÑ¹Ì ¿¬ÇÕ»ç·ÉºÎ, SKT, »ï¼ºÀüÀÚ/Àü±â µî¿¡ XP ÄÚĪ, ±³À°, ÄÁ¼³ÆÃ µîÀ» Á¦°øÇÑ ¹Ù ÀÖ´Ù. Çѱ¹ XP »ç¿ëÀÚ ¸ðÀÓ http://xper.org ¸¦ ¿î¿µÇϰí ÀÖ´Ù.
¿ªÀÚ : °±Ô¿µ
ÇöÀç ´ÙÀ½Ä¿¹Â´ÏÄÉÀÌ¼Ç R&D ¼¾ÅÍ¿¡¼ ±Ù¹«Áß. Çѱ¹ XP »ç¿ëÀÚ ¸ðÀÓ ÄÚ¾î±×·ì ¹× XP ÄÚÄ¡ ÆÀÀ¸·Î Ȱµ¿Çϰí ÀÖÀ¸¸ç ±èâÁؾ¾¸¦ µµ¿Í ¿©·¯ XP ÄÁ¼³ÆÃ¿¡ Âü¿©. °³ÀÎÀ§Å° http://jania.pe.kr À» ¿î¿µÇϰí ÀÖ´Ù.

TDD ¼ö·Ã¹ý (by ±èâÁØ)
Çѱ¹¾îÆÇ ÀÎÅͺä
1ºÎ ÈÆó(µ·) ¿¹Á¦
1Àå ´ÙÁß Åëȸ¦ Áö¿øÇÏ´Â Money °´Ã¼
2Àå Ÿ¶ôÇÑ °´Ã¼
3Àå ¸ðµÎ¸¦ À§ÇÑ Æòµî
4Àå ÇÁ¶óÀ̹ö½Ã
5Àå ¼ÖÁ÷È÷ ¸»ÇÏÀÚ¸é
6Àå µ¹¾Æ¿Â ¡®¸ðµÎ¸¦ À§ÇÑ Æòµî¡¯
7Àå »ç°ú¿Í ¿À·»Áö
8Àå °´Ã¼ ¸¸µé±â
9Àå ¿ì¸®°¡ »ç´Â ½Ã°£(times)
10Àå Èï¹Ì·Î¿î ½Ã°£
11Àå ¸ðµç ¾ÇÀÇ ±Ù¿ø
12Àå µåµð¾î, ´õÇϱâ
13Àå ÁøÂ¥·Î ¸¸µé±â
14Àå ¹Ù²Ù±â
15Àå ¼·Î ´Ù¸¥ Åëȳ¢¸® ´õÇϱâ
16Àå µåµð¾î, Ãß»óÈ
17Àå Money ȸ°í
2ºÎ XUnit ¿¹½Ã
18Àå xUnitÀ¸·Î °¡´Â ù°ÉÀ½
19Àå Å×À̺í Â÷¸®±â
20Àå µÞÁ¤¸®Çϱâ
21Àå ¼ÀÇϱâ
22Àå ½ÇÆÐ Ã³¸®Çϱâ
23Àå ¾ó¸¶³ª ´ÞÄÞÇÑÁö
24Àå xUnit ȸ°í
25Àå Å×½ºÆ® ÁÖµµ °³¹ß ÆÐÅÏ
26Àå »¡°£ ¸·´ë ÆÐÅÏ
27Àå Å×½ºÆÃ ÆÐÅÏ
28Àå ÃÊ·Ï ¸·´ë ÆÐÅÏ
29Àå xUnit ÆÐÅÏ
30Àå µðÀÚÀÎ ÆÐÅÏ
31Àå ¸®ÆÑÅ丵
32Àå TDD ¸¶½ºÅÍÇϱâ
ºÎ·Ï A ¿µÇâµµ
ºÎ·Ï B ÇǺ¸³ªÄ¡
¸¶Ä¡´Â ±Û (by ¸¶Æ¾ ÆÄ¿ï·¯)
½ÇÀü TDD (by ±èâÁØ, °¼®Ãµ)

- Å×½ºÆ® ÁÖµµ °³¹ß¿¡ ´ëÇÑ ÃÖÃÊÀÇ Ã¥ÀÌÀÚ °¡Àå ±ÇÀ§ Àִ å
- Çѱ¹¾îÆÇ ¹ß°£¿¡ ÁîÀ½ÇÑ ÄËÆ® º¤ ÀÎÅͺä
- TDD¸¦ ±¹³»¿¡ óÀ½ ¼Ò°³ÇÑ ¿ªÀÚÀÇ 'TDD ¼ö·Ã¹ý', '½ÇÀü TDD' ¿ø°í Ãß°¡
- TDD ½Ã¿¬ µ¿¿µ»ó CD Ãß°¡
- 100¿© °³ÀÇ ¿ªÁÖ·Î ³»¿ëÀ» ¾Ë±â ½±°í dzºÎÇÏ°Ô ÇØ¼³
Å×½ºÆ® ÁÖµµ °³¹ßÀº ÃÖ±Ù Çаè¿Í ¾÷°è¿¡¼ ¸¹Àº ÁÖ¸ñÀ» ¹Þ°í ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¹æ¹ýÀ¸·Î, ¿©·¯ ¿¬±¸ ³í¹®°ú ½Ç·Ê¸¦ ÅëÇØ °³¹ßÀÚÀÇ »ý»ê¼º°ú ¿ª·®À» ÁõÆø½ÃÄÑÁشٴ »ç½ÇÀÌ ¹Þ¾Æµé¿©Áö°í ÀÖ´Ù.
Å×½ºÆ® ÁÖµµ °³¹ßÀº Å×½ºÆ®°¡ °³¹ßÀ» ÁÖµµÇÏ´Â ¹æ¹ýÀÌ´Ù. Å×½ºÆ®°¡ °³¹ßÀ» ÁÖµµÇÑ´Ù´Â °ÍÀº Å×½ºÆ®°¡ ÄÚµùÀÇ ¹æÇâÀ» À̲ø¾î °£´Ù´Â ¸»ÀÌ´Ù. Å×½ºÆ®¸¦ ½ÇÆÐÇÏ´Â Äڵ尡 ¾øÀ¸¸é ÄÚµùÀ» ÇÏÁö ¾Ê°í, ÄÚµå »ó¿¡ Áߺ¹ÀÌ ÀÖÀ¸¸é Á¦°ÅÇÑ´Ù´Â °£´ÜÇÑ ±ÔÄ¢À» ÁöÄѳª°¡¸é ÀÚ¿¬½º·¹ ¾Æ¸§´Ù¿î Äڵ尡 õº¯¸¸È ÆîÃÄÁø´Ù. ´ýÀ¸·Î ȸ±Í Å×½ºÆ®µµ »ý±â°í, °³¹ß °úÁ¤ ÀÚü°¡ Áñ°Å¿öÁö´Â º¸³Ê½ºµµ ÀÖ´Ù.
ÀÌ Ã¥Àº ÀÌ·± Å×½ºÆ® ÁÖµµ °³¹ßÀ» ¼³¸íÇÑ ÃÖÃÊÀÇ Ã¥ÀÌÀÚ, °¡Àå ±ÇÀ§ÀûÀΠåÀÌ´Ù. ÀÌ Ã¥ÀÇ ÀúÀÚ ÄËÆ® º¤Àº Å×½ºÆ® ÁÖµµ °³¹ßÀ» ÆÛ¶ß¸° À庻ÀÎÀÌ¸ç °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀÇ ¼±±¸ÀÚ Áß ÇÑ »ç¶÷ÀÌ´Ù. ÀÌ Ã¥À» ÅëÇØ µ¶ÀÚ´Â ÄËÆ® º¤ÀÇ ¿·¿¡ ¾É¾Æ ÇÔ²² ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â °ªÁø °æÇèÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
1ºÎ¿¡¼´Â ÀÚ¹Ù ¾ð¾î¸¦ »ç¿ëÇØ¼ ´ÙÁß ÈÆó Äڵ带 ÀÛ¼ºÇϰí, 2ºÎ¿¡¼´Â ÆÄÀ̽㠾ð¾î¸¦ »ç¿ëÇØ¼ ´ÜÀ§ Å×½ºÆÃ ÇÁ·¹ÀÓ¿÷À» ÀÛ¼ºÇÑ´Ù. 3ºÎ¿¡´Â ÀÌ·± °³¹ßÀ» ÇÒ ¶§ ÀÚÁÖ µîÀåÇÏ´Â ÆÐÅϵéÀ» Á¤¸®ÇØ ³õ¾Ò´Ù.