[Áöµð³ÝÄÚ¸®¾Æ]Áö³ ±Û¿¡¼´Â ÀÚ¹Ù À¥ ÇÁ·Î±×·¡¸Ó·Î¼ ÇÑ »ç¶÷ ¸òÀ» ÇØ³»±â À§ÇÑ ±âÃÊ¿¡ ´ëÇØ ´Ù·ç¾ú½À´Ï´Ù. ´ÙÀ½ ´Ü°è´Â ÇÑ »ç¶÷ ¸òÀ» ³Ñ¾î¼ ÆÀ Àüü¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÀÏÀ» ÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» ±â¸£´Â °ÍÀ̰ÚÁÒ. ÆÀ¿¡¼ ¾î¶°ÇÑ ¿ªÇÒÀ» ¸Ã¾Æµµ ÀßÇØ³¾ ¼ö ÀÖÀ¸·Á¸é ÇÁ·Î±×·¡¹Öµµ ÀßÇØ¾ß ÇÏÁö¸¸ °³¹ß ȯ°æÀ» ±¸¼ºÇÏ´Â ¹æ¹ýµµ Àß ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.
ÀÌ ±Û¿¡¼´Â °³¹ß ȯ°æÀÌ Àß °®ÃçÁø ÆÀÀÇ ÇÁ·Î±×·¡¸Ó´Â ÀÌ¹Ì ±¸ÃàµÈ ȯ°æ¿¡ ´ëÇØ Á» ´õ Àß ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï, ±×·¸Áö ¸øÇÑ °æ¿ì´Â ½º½º·Î °³¹ß ȯ°æÀ» ±¸ÃàÇØ³ª°¥ ¼ö ÀÖµµ·Ï ¿©·¯ °¡Áö °³¹ß¿¡ ÇÊ¿äÇÑ °ÍµéÀ» »ìÆìº¸°Ú½À´Ï´Ù.
·¹ÀÌ½Ì °æ±âÀå¿¡´Â ÇÇÆ®(pit)¶ó°í ºÎ¸£´Â Àå¼Ò°¡ ÀÖ½À´Ï´Ù. °æÁÖÂ÷ÀÇ ¼ö¸®³ª Á¶Á¤, ŸÀÌ¾î ±³È¯, ¿¬·á º¸±Þ µîÀ» ÇÏ´Â °÷ÀÌÁÒ. ÀÌ·± ÀÏÀ» ´ã´çÇÏ´Â »ç¶÷À» ¹Ìij´Ð(mechanic)À̶ó°í ºÎ¸¨´Ï´Ù. ·¹ÀÌ½Ì °æ±â°¡ ¾óÇÍ º¸¸é Â÷ÀÇ ¼º´É°ú µå¶óÀ̹öÀÇ ±â·®¸¸ÀÌ ½ÂºÎ¸¦ °áÁ¤Áþ´Â °Í °°Áö¸¸, Àå°Å¸® ·¹À̽º°¡ µÉ¼ö·Ï ¹Ìij´ÐÀÇ ¿ªÇÒÀÌ ½ÂºÎ¸¦ °¡¸£´Â °æ¿ìµµ ÀûÁö ¾Ê½À´Ï´Ù. ¹Ìij´ÐÀÌ ÀßÇÑ´Ù°í ·¹À̽̿¡¼ ½Â¸®ÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸ ¹Ìij´ÐÀÌ ¸øÇÏ¸é ½ÊÁßÆÈ±¸ ÆÐ¹èÇÏ°Ô µË´Ï´Ù.
À¥ ÇÁ·ÎÁ§Æ®µµ ÀÌ·± ¸é¿¡¼ ·¹À̰̽ú ºñ½ÁÇÑ Á¡ÀÌ ÀÖ½À´Ï´Ù. À¥ ÇÁ·ÎÁ§Æ®ÀÇ ¼º°ø¿¡ ÀÖ¾î °¡Àå Áß¿äÇÑ °ÍÀº ¿ä±¸»çÇ×ÀÇ ±¸ÇöÀ̰í, ±â¼úÀûÀÎ ¼º°øÀ» Á¿ìÇÏ´Â °ÍÀº ÇÁ·Î±×·¡¹ÖÀÌÁö¸¸ ÇÁ·Î±×·¡¹Ö ¿ÜÀÇ ±â¼úÀûÀÎ À⹫µéÀº À¥ ÇÁ·ÎÁ§Æ®ÀÇ ½ÇÆÐ¸¦ °áÁ¤ÁöÀ» ¼ö ÀÖ´Â Á¶°ÇÀÔ´Ï´Ù. ¼Ò½º °ü¸®¸¦ ºñ·ÔÇØ¼ À¥ÀÇ Æ¯¼º»ó ÀÚÁÖ ¹ß»ýÇÏ´Â ¼¹ö ¼³Ä¡, ÇÁ·ÎÁ§Æ®ÀÇ ¹èÄ¡(deploy), ¼¹ö ¸®½ºÅ¸Æ® µîÀÌ ±×·± ÀϵéÀÌÁÒ. ÀÌ·± ÀϵéÀº ´ëü·Î ´Ü¼ø ¹Ýº¹ ÀÛ¾÷À̸鼵µ ½Ç¼öÇÒ °¡´É¼ºÀÌ ÀÖ°í ¶Ç ½Ç¼ö¸¦ ÇÏ¸é ±× ÆÄ±Þ È¿°ú°¡ Ŭ ¼ö ÀÖ½À´Ï´Ù.
±×·¡¼ ÀÌ·± °³¹ß ÁÖº¯ ȯ°æÀ» Á¦´ë·Î °®Ãç³õÁö ¾ÊÀ¸¸é À̰ÍÀÌ ÇÁ·ÎÁ§Æ®¸¦ ½ÇÆÐ·Î À̲ø±âµµ ÇÕ´Ï´Ù. °í·Î, ·¹À̽̿¡¼ ½Â¸®Çϱâ À§Çؼ´Â ÁÁÀº ¹Ìij´Ð°ú ÁÁÀº ÀåºñµéÀ» È®º¸Çؼ ÇÇÆ®¿¡¼ÀÇ ÀÛ¾÷À» È¿À²ÀûÀ¸·Î ÇØ³»¾ß ÇÏ´Â °Íó·³ À¥ ÇÁ·ÎÁ§Æ®¸¦ ¼º°øÀ¸·Î À̲ø±â À§Çؼ´Â °³¹ß ȯ°æÀ» Àß °®Ãç¼ ÇÁ·Î±×·¡¸ÓµéÀÇ À⹫ ºÎ´ãÀ» ÁÙÀÌ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
°æ¿ì¿¡ µû¶ó¼ ¹Ìij´Ðó·³ ÀÌ·± À⹫¸¦ Àü´ãÇÏ´Â »ç¶÷À» µû·Î µÎ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ȤÀº ÀϺη¯ Àü´ãÀÚ¸¦ µÎÁö ¾Ê´õ¶óµµ ÇѵΠ»ç¶÷¸¸ÀÌ ¼öÇà ¹æ¹ýÀ» ¼÷ÁöÇÏ°Ô µÇ¾î °á±¹ ÀÌ »ç¶÷µé¿¡°Ô À⹫ ¿äûÀÌ ¸ô·Á ½ÇÁúÀûÀÎ Àü´ãÀÚ°¡ µÇ¹ö¸®´Â °æÇâÀÌ ÀÖ½À´Ï´Ù. XP(eXtreme Programming)ÀÇ Áö¼ÓÀûÀÎ ÅëÇÕ(Continuous Integration)µµ ÀÌ·± ¹®Á¦¸¦ À̾߱âÇÕ´Ï´Ù. ÅëÇÕ ÀÛ¾÷À» ÀÚµ¿ÈÇØ¼ ´©±¸³ª ½±°Ô ÇÒ ¼ö ÀÖ°Ô ¸¸µéÁö ¾ÊÀ¸¸é ÇѵΠ»ç¶÷¸¸ÀÌ ÅëÇÕ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°Ô µÇ°í ÅëÇÕÀ» ÀÚÁÖ ¼öÇàÇÒ ¼öµµ ¾ø°Ô µË´Ï´Ù.
±×·¯¸é °¢ÀÚ °³¹ßÇÑ ¸ðµâµéÀ» ÅëÇÕÇÒ ¶§ ¸¹Àº ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ°í, ±×·± °æ¿ì ÅëÇÕÀÌ À߸øµÈ °ÍÀÎÁö ¾Æ´Ï¸é °¢ÀÚ °³¹ßÇÑ ¼Ò½º°¡ À߸øµÈ °ÍÀÎÁö ã±â Èûµé°Ô µÇÁÒ. ÀÌ·± »óȲÀ» ¡®Integration Hell¡¯À̶ó°í ºÎ¸£´Âµ¥, ÀÌ·± »óȲÀ» ÇÇÇϱâ À§Çؼ´Â Áö¼ÓÀûÀÎ ÅëÇÕÀ» ÅëÇØ ¹®Á¦¸¦ Á¶±â¿¡ ¹ß°ßÇÏ¿© ¹®Á¦°¡ ½×ÀÌÁö ¾Ê°Ô ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ±Û¿¡¼´Â Áö¼ÓÀûÀÎ ÅëÇÕÀ» È®ÀåÇØ ÇÁ·Î±×·¡¸ÓµéÀ» À⹫¿¡¼ ÇØ¹æ½ÃÄÑ Á» ´õ âÁ¶ÀûÀÎ ¾÷¹«¿¡ Àü³äÇÒ ¼ö ÀÖµµ·Ï °³¹ß ȯ°æÀ» ±¸ÃàÇÏ´Â ¹æ¹ýµéÀ» À̾߱âÇÒ °ÍÀÔ´Ï´Ù.
¡®¹«¾ùÀ» ÇØ¾ß Çϴ°¡¡¯¿¡ ´ëÇÑ °í¹Î
ÁÁÀº ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µå´Â ù°ÉÀ½Àº ¾î¶»°Ô ¸¸µå´Â°¡¸¦ ¾Æ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹«¾ùÀ» ¸¸µé¾î¾ß Çϴ°¡¸¦ ¾Æ´Â °ÍÀÔ´Ï´Ù. ¾Æ¹«¸® °í±Þ ÄÚµù ±â¼ú°ú ¾î·Á¿î ¾Ë°í¸®ÁòÀ» ÀÚÀ¯ÀÚÀç·Î ±¸»çÇÑ´Ù°í ÇØµµ »ç¿ëÀÚ°¡ ¿øÇÏÁö ¾Ê´Â ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé¾î ³Â´Ù¸é ½ÇÆÐÇÑ °ÍÀÔ´Ï´Ù. °³¹ß ȯ°æ ±¸Ã൵ °¢Á¾ µµ±¸µéÀÇ »ç¿ë¹ýÀ» ÀÍÈ÷´Â °Íµµ Áß¿äÇÏÁö¸¸ ±× Àü¿¡ ÀÚ½ÅÀÌ ¼ÓÇÑ Á¶Á÷¿¡¼ ¾î¶² ÀϵéÀÌ ÀÖ°í ÀÌ·± ÀϵéÀ» ÀßÇÏ·Á¸é ¹«¾ùÀ» °®Ãß¾î¾ß Çϴ°¡¸¦ °í¹ÎÇÏ´Â °ÍÀÌ Ã¹ ¹øÂ°ÀÔ´Ï´Ù.
ÀÌ·± ¿ä±¸»çÇ×Àº ÆÀÀÇ »óȲ¿¡ µû¶ó ¸¹ÀÌ ´Þ¶óÁú ¼öµµ ÀÖ°í ¹üÀ§¸¦ ¾î¶»°Ô Àâ´À³Ä¿¡ µû¶ó °£´ÜÇÑ ºôµå ÀÛ¾÷À¸·Î ÇÑÁ¤µÉ ¼öµµ ÀÖ°í Á¾ÇÕÀûÀÎ ÇÁ·ÎÁ§Æ® °ü¸®¸¦ Æ÷ÇÔÇÏ´Â ±¤¹üÀ§ÇÑ ³»¿ëÀÌ µÉ ¼öµµ ÀÖ½À´Ï´Ù. ±×·³ À¥ ÇÁ·ÎÁ§Æ®¿¡´Â ¾î¶² ¿ä±¸»çÇ×ÀÌ ÀÖ°í ÀÌ·± ¿ä±¸»çÇ×À» ÃæÁ·Çϱâ À§Çؼ ¾î¶² °³¹ß ȯ°æÀÌ ÇÊ¿äÇÑÁö¸¦ »ìÆìº¸°Ú½À´Ï´Ù.
ÀÇ»ç¼ÒÅë °ü¸®
ºñ´Ü À¥ ÇÁ·ÎÁ§Æ® »Ó ¾Æ´Ï¶ó ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ®µé¿¡¼ °¡Àå Áß¿äÇÑ ¼º°ø ¿äÀÎÀº ÇÁ·ÎÁ§Æ®ÀÇ ¼º°øÀ» ÇâÇÑ ÆÀ¿øµéÀÇ ÀÇÁö¿Í ÆÀ¿ø°£ÀÇ È¿À²ÀûÀÎ ÀÇ»ç¼ÒÅë(communication)ÀÔ´Ï´Ù. ¾óÇÍ µÑ ´Ù ºñ±â¼úÀûÀÎ À̽´¶ó¼ ÇÁ·Î±×·¡¸ÓÀÇ ¿µ¿ª ¹ÛÀ̶ó°í »ý°¢ÇÒ ¼öµµ ÀÖ°ÚÁö¸¸ ÀÇ»ç¼ÒÅëÀº ÀÌ¹Ì °³¹ß ¹æ¹ý·ÐÀÇ ¿µ¿ª¿¡ µé¾î¿Í ÀÖ½À´Ï´Ù. ÀÇ»ç¼ÒÅëÀº ÈçÈ÷ ±¸¼º¿øµéÀÇ Àû±Ø¼ºÀÇ ¹®Á¦, Áï »ç¶÷ÀÇ ¹®Á¦·Î Ä¡ºÎµÇ´Â °æÇâÀÌ ÀÖ°í À̰ÍÀÌ ¾î´À Á¤µµ´Â »ç½ÇÀÔ´Ï´Ù.
ÇÏÁö¸¸ ÃÖ±Ù À¯ÇàÇÏ´Â ¹æ¹ý·Ðµé¿¡¼´Â ȯ°æÀû ¿äÀÎÀÌ ÀÇ»ç¼ÒÅë¿¡ ¹ÌÄ¡´Â ¿µÇâÀÌ Å©´Ù°í º¸°í ÀÇ»ç¼ÒÅëÀ» È¿À²ÀûÀ¸·Î Çϱâ À§ÇÑ ÀåÄ¡µéÀ» ¸¹ÀÌ Á¦½ÃÇϰí ÀÖ½À´Ï´Ù. ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ÀÛ¾÷¿¡¼ÀÇ ÀÇ°ß ±³È¯, ÀÇ»ç °áÁ¤À» À§ÇÑ È¸ÀÇ, ¹®¼È, ¾÷¹« ¿äû °ü¸®, °í°´ÀÇ ¿ä±¸»çÇ× °ü¸® µîÀÌ ¸ðµÎ ÀÇ»ç¼ÒÅëÀÌ¸ç °³¹ß ȯ°æÀ» ÅëÇØ ÀÌ·± ºÎºÐµéÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.
XP¿¡¼´Â º¸Åë ÀÇ»ç¼ÒÅë ºñ¿ëÀº ¹°¸®ÀûÀÎ °Å¸®ÀÇ Á¦°ö¿¡ ºñ·ÊÇØ¼ ´Ã¾î³´Ù°í ÇÕ´Ï´Ù. ±×·¡¼ ÀÇ»ç¼ÒÅëÀ» È¿À²ÀûÀ¸·Î Çϱâ À§ÇÑ ¹æ¹ýµé·Î ¹°¸®ÀûÀÎ ¿ä¼Ò¸¦ ¸¹ÀÌ Á¦½ÃÇÕ´Ï´Ù. ÇÁ·Î±×·¡¹ÖÀ» µÎ »ç¶÷ÀÌ ºÙ¾î ¾É¾Æ¼ °°ÀÌ Çϴ ¦ ÇÁ·Î±×·¡¹Ö(Pair Programming), ȸÀǰ¡ ¼Ò¸ðÀûÀ¸·Î È帣´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÑ ±â¸³ ȸÀÇ(Stand up Meeting), ÀÚ¿¬½º·¯¿î Á¤º¸ È®»ê°ú ÀÇ°ß ±³È¯À» À§ÇÑ Á¤º¸ ¹æ¿±â(Information Radiator) µîÀÌ ±×·± °ÍµéÀÌÁÒ. ÀÌ·± ÇÁ·¢Æ¼½º(practice)µéÀ» Àß ½ÇõÇÏ·Á¸é ¦ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖ´Â ÀÚ¸® ¹èÄ¡, ÆÀ¿øµéÀÌ ½±°Ô ¸ð¿©¼ À̾߱âÇÒ ¼ö ÀÖ´Â °ø°£, ÈÀÌÆ®º¸µå µî ¹°¸®Àû ȯ°æÀ» °®Ãß¾î ³õ¾Æ¾ß ÇÕ´Ï´Ù.
¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î Áö¿øÇÒ ¼ö ÀÖ´Â ºÎºÐµµ ¸¹½À´Ï´Ù. ¾÷¹« ¿äû °ü¸®´Â º¸Åë »ç³» ±×·ì¿þ¾î µîÀ¸·Î ¼ÒÈÇϱ⠸¶·ÃÀε¥ ÀÌ ºÎºÐÀÌ Àß µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ÀÏÀÇ ÁøÇà¿¡ º´¸ñÇö»óÀÌ ¹ß»ýÇÏ°í ¶§·Î´Â ÆÀ¿ø°£ ¸¶ÂûÀÇ ¿øÀÎÀÌ µÇ±âµµ ÇÕ´Ï´Ù. ´Ü¼øÈ÷ ¸ÞÀÏÀ» ÀÌ¿ëÇÏ´Â °Íº¸´Ù´Â ¾÷¹« ¿äûÀ» º¸³»´Â °Í, ÁøÇà »óȲ, °á°ú µîÀ» Á¾ÇÕÀûÀ¸·Î °ü¸®ÇÒ ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î°¡ ÀÖ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. À̽´ Æ®·¡Ä¿(issue tracker)µµ ¾î´À Á¤µµ ÀÌ·± ºÎºÐÀ» ¼ÒÈÇÒ ¼ö ÀÖÀ¸³ª ÆÀÀÇ »óȲ¿¡ ¸Â°Ô °³¹ßÇØµÎ´Â °Íµµ ÁÁÀ» °ÍÀÔ´Ï´Ù.
¹®¼È ¿ª½Ã ½Ã½ºÅÛÀ¸·Î Áö¿øÇØ¾ß ÇÒ ºÎºÐÀÔ´Ï´Ù. ¹®¼È ½Ã½ºÅÛ¿¡¼ °¡Àå Áß¿äÇÑ °ÍÀº ¹®¼¸¦ ºü¸£°Ô ÀÛ¼ºÇϰí ÀÛ¼ºÇÑ ¹®¼¸¦ Áï½Ã °øÀ¯ÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ¹öÀü °ü¸®µµ µÇ¾î¾ß ÇÏÁÒ. ÀÌ·± ¿ä±¸»çÇ×À» °¡Àå Àß ¸¸Á·ÇÏ´Â °ÍÀº À§Å°(wiki)ÀÔ´Ï´Ù. ´ë±Ô¸ð CMS(Content Management System)µµ ¸¹Áö¸¸ ¿ÀÈ÷·Á ´Ü¼øÇÑ À§Å°°¡ ´õ ³ôÀº À¯¿¬¼ºÀ» ¹ßÈÖÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
¼ÒÇÁÆ®¿þ¾î Çü»ó °ü¸®
¼ÒÇÁÆ®¿þ¾î °³¹ß ȯ°æ¿¡¼ ±â¼úÀûÀ¸·Î °¡Àå Áß¿äÇÑ °ÍÀº ¼Ò½º ¹öÀü °ü¸®ÀÔ´Ï´Ù. °³¹ßÆÀ¿¡¼ ÀÛ¼ºÇÏ´Â ¸ðµç ¼Ò½º´Â ¹öÀü °ü¸®°¡ µÇ¾î¾ß ÇÕ´Ï´Ù. ÇÁ·Î±×·¥ ¼Ò½º´Â ¹°·ÐÀÌ°í ½ºÅ©¸³Æ®, SQL, °¢Á¾ ¹®¼, ¼³Á¤ ÆÄÀϵé±îÁö Æ÷ÇÔÇÕ´Ï´Ù. ¼Ò½º ¹öÀü °ü¸®ÀÇ ¸ñÀûÀº ÀÛ¾÷ ±â·ÏÀÇ º¸Á¸À» ÅëÇØ ¹®Á¦°¡ ¹ß»ýÇßÀ» ¶§ ¿øÀÎÀ» ÃßÀûÇϰųª ÀÌÀü »óÅ·ΠµÇµ¹¸®±â À§ÇÑ °ÍÀÌÁÒ.
º¸Åë ¼Ò½º ¹öÀü °ü¸®¸¦ À§Çؼ CVS(Concurrent Versions System)¸¦ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. CVS¸¦ Á» ´õ °³¼±ÇÑ Subversionµµ ÀÖ°í ¿©·¯ °¡Áö »ó¿ë Åøµµ ÀÖÁö¸¸ ¿©ÀüÈ÷ CVS°¡ ¿ÀǼҽº °øµ¿Ã¼¿¡¼ °¡Àå ¸¹ÀÌ ¾²À̸ç IDE¿Íµµ Àß ÅëÇյǾî ÀÖ½À´Ï´Ù. CVS¿¡ ´ëÇÑ ³»¿ë ¼³¸íÀº ¡º½Ç¿ëÁÖÀÇ ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ¹öÀü °ü¸® using CVS¡»¶ó´Â Ã¥À» ÃßõÇÏ´Â °ÍÀ¸·Î ´ë½ÅÇϰڽÀ´Ï´Ù.
¼Ò½º °ü¸®´Â »ç½Ç SCM(Software Configuration Management)ÀÇ ÀϺκÐÀ̱⵵ ÇÕ´Ï´Ù. SCMÀº ¼Ò½º¿¡ ´ëÇÑ ¹öÀü °ü¸® »Ó ¾Æ´Ï¶ó ¼ÒÇÁÆ®¿þ¾îÀÇ ±â´É¼º ¼öÁØ¿¡ ´ëÇÑ º¯µ¿ ±â·Ï, ¹ö±× ¼öÁ¤ ³»¿ª, ¿ä±¸»çÇ×ÀÇ º¯È µîÀ» Á¾ÇÕÀûÀ¸·Î °ü¸®ÇÏ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾îÀÇ »õ ¹öÀüÀÌ ¹ßÇ¥µÇ¸é º¸Åë ¸±¸®½º ³ëÆ®(Release Notes)°¡ °°ÀÌ ¹èÆ÷µÇ´Âµ¥ ÀÌ·± °ÍÀÌ SCMÀÇ ´ëÇ¥ÀûÀÎ »êÃâ¹°ÀÌÁÒ.
»ó¿ë SCM Åøµµ ¸¹Áö¸¸ º¸ÅëÀº ¼Ò½º °ü¸®¿¡ CVS¸¦ ¾²°í À̿ܿ¡´Â ¾Õ¿¡¼ ¾ð±ÞÇÑ À̽´ Æ®·¡Ä¿¸¦ ¾²´Â °ÍÀ¸·Î SCMÀÇ ´ëºÎºÐÀÇ ¿µ¿ªÀÌ Ä¿¹öµË´Ï´Ù. ¼Ò½º ¿ÜÀÇ Çü»ó °ü¸®´Â »ç½Ç ¾÷¹« ¿äû °ü¸®¿Í ±â´ÉÀûÀ¸·Î ¾ÆÁÖ ºñ½ÁÇϱ⠶§¹®ÀÌÁÒ. ¿ÀǼҽº¿Í Ä£ÇÑ »ç¶÷À̶ó¸é ¹ö±×Áú¶ó(bugzilla)¸¦ Á¢Çغ» ÀûÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù. ¹ö±×¸¦ º¸°íÇÏ°í ¹ö±×°¡ ¼öÁ¤µÇ´Â °úÁ¤À» ±â·ÏÀ¸·Î ³²±â°í Á¶È¸ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ½Ã½ºÅÛÀÌÁÒ.
ÀÌ·± °ÍÀ» ¹ö±× Æ®·¡Ä¿(bug tracker)¶ó°í Çϴµ¥ À̸¦ È®ÀåÇÑ °ÍÀÌ À§¿¡¼ ¾ð±ÞÇÑ À̽´ Æ®·¡Ä¿ÀÔ´Ï´Ù. ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾î Áß¿¡µµ Mantis³ª TUTOS µîÀÌ ÀÖ°í À§Å°¿Í À̽´Æ®·¡Ä¿¸¦ ÇÕÄ£ TracÀÌ ÀÖ½À´Ï´Ù. ÀÌ·± Åø Çϳª Á¤µµ´Â °®Ãç ³õ¾Æ¾ßÇÒ °ÍÀÔ´Ï´Ù.
ºôµå ÀÚµ¿È
Áö¼ÓÀûÀÎ ÅëÇÕ¿¡¼´Â ºôµå ÀÚµ¿È¸¦ °¡Àå Áß¿äÇÏ°Ô ´Ù·ì´Ï´Ù. ºôµå´Â ¼Ò½ºÄڵ带 ÄÄÆÄÀÏÇÏ°í ¿©·¯ °¡Áö º¯È¯ ÀÛ¾÷À» °ÅÃÄ ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÒ ¼ö ÀÖ°Ô ±¸¼ºÇÏ´Â ÀÛ¾÷À» ¸»ÇÕ´Ï´Ù. ÀϹÝÀûÀÎ ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ÇÀº °£´ÜÇÑ ÄÄÆÄÀϸ¸À¸·Î ºôµå°¡ ¿Ï·áµÇÁö¸¸ À¥ ÇÁ·ÎÁ§Æ®´Â Á» ´õ ÇÒ ÀÏÀÌ ¸¹½À´Ï´Ù. ÄÄÆÄÀÏÇÑ Å¬·¡½ºµéÀÌ À¥ ÇÁ·ÎÁ§Æ® ±¸Á¶¿¡ ¸Â°Ô À§Ä¡ÇØ¾ß ÇÏ°í °¢Á¾ ¶óÀ̺귯¸®, TLD ÆÄÀϵ鵵 ÀûÀýÈ÷ À§Ä¡½ÃÄÑ À¥ ÄÁÅ×À̳Ê(¼ºí¸´ ¿£Áø)¿¡ ¹èÄ¡½ÃÄ×À» ¶§ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.
ÇÁ·ÎÁ§Æ® ±¸Á¶°¡ º¹ÀâÇÏ¸é ±×¸¸Å ºôµå ÀÚµ¿Èµµ ´õ º¹ÀâÇØÁý´Ï´Ù. ±×·¡¼ ºôµå ÀÚµ¿È ÀÛ¾÷À» Çϱâ Àü¿¡ ¿ì¼± ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ Àß ±¸¼ºÇØ ³õ¾Æ¾ß ÇÕ´Ï´Ù. <Ç¥ 1>Àº ºôµå ÀÚµ¿È ÅøÀÎ Ant¿¡¼ Á¦½ÃÇÏ´Â ÇÁ·ÎÁ§Æ® ±¸Á¶¿¡ ´ëÇÑ ±Ç°í¾ÈÀÔ´Ï´Ù.
 |
| <Ç¥ 1> Ant¿¡¼ Á¦½ÃÇÏ´Â ÇÁ·ÎÁ§Æ® ±¸Á¶¿¡ ´ëÇÑ ±Ç°í¾È |
¿©±â¼ ´«¿©°ÜºÁ¾ß ÇÒ ºÎºÐÀº src¿Í webÀÔ´Ï´Ù. ÀÚ¹Ù ¼Ò½º´Â src¿¡, À¥ ÀÚ¿øÀº web ¾Æ·¡¿¡ ÄÁÅØ½ºÆ® ±¸Á¶´ë·Î ¹èÄ¡½Ãŵ´Ï´Ù. ¿©·¯ IDE(Integrated Development Environment)µé¿¡¼ À¥ ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÒ ¶§µµ src¿Í webÀÇ À̸§Àº ´Þ¶óÁö±âµµ ÇÏÁö¸¸ ±âº»ÀûÀ¸·Î src¿Í webÀ» ³ª´©´Â ±âÁØÀº °°½À´Ï´Ù. °æ¿ì¿¡ µû¶ó¼ ÀÚ¹Ù ¼Ò½º´Â src ¾Æ·¡¿¡¼ ´Ù½Ã Çѹø ºÐ·ù¸¦ Çϱ⵵ ÇÕ´Ï´Ù. src/java, src/test·Î ¼Ò½º¿Í Å×½ºÆ®¸¦ ³ª´©±âµµ Çϰí src/resources µîÀÇ Æú´õ¸¦ ¸¸µé¾î¼ xmlÀ̳ª properties¸¦ º¸°üÇϱ⵵ ÇÕ´Ï´Ù. ÀÌ ±¸Á¶¸¦ ±âÁØÀ¸·Î º¸¸é À¥ ÇÁ·ÎÁ§Æ® ºôµå ÀÛ¾÷Àº ´ÙÀ½°ú °°Àº ´Ü°è·Î ÁøÇàµË´Ï´Ù.
[1] À¥ ÄÁÅ×À̳ʿ¡¼ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ·çÆ® ¿ªÇÒÀ» ÇÏ´Â CONTEXT_ROOT µð·ºÅ丮¸¦ ¸¸µç´Ù. ¾ÕÀÇ ±¸Á¶¿¡¼ web µð·ºÅ丮¸¦ ±×´ë·Î »ç¿ëÇϱ⵵ Çϰí dist/web, dist/<ÄÁÅØ½ºÆ®¸í>°ú °°ÀÌ ¸¸µé±âµµ ÇÑ´Ù.
[2] Àڹ٠Ŭ·¡½º¸¦ ÄÄÆÄÀÏÇϰí CONTEXT_ROOT/WEB-INF/classes·Î º¹»çÇÑ´Ù.
[3] Ŭ·¡½ºÆÐ½º ¸®¼Ò½º¸¦ CONTEXT_ROOT/WEB-INF/classes·Î º¹»çÇÑ´Ù.
[4] ÇÊ¿äÇÑ ¶óÀ̺귯¸®¸¦ CONTEXT_ROOT/WEB-INF/lib·Î º¹»çÇÑ´Ù.
[5] JSP, HTML, CSS, JS µîÀÇ À¥ ÀÚ¿øµéÀ» CONTEXT_ROOT·Î º¹»çÇÑ´Ù.
[6] tld ÆÄÀÏÀ» CONTEXT_ROOT/WEB-INF/tld³ª CONTEXT_ROOT/WEB-INF/lib·Î º¹»çÇÑ´Ù.
¿©±â¼ CONTEXT_ROOT¸¦ webÀ¸·Î ±×´ë·Î »ç¿ëÇÒ ¼öµµ Àִµ¥, ±×·¸´Ù¸é 4¢¦6¹ø °úÁ¤Àº ÇÊ¿ä ¾ø°Å³ª Çѹø¸¸ ÇØµµ µÇ´Â ÀÛ¾÷ÀÌ µË´Ï´Ù. ´ë½Å °æ¿ì¿¡ µû¶ó ÇÁ·ÎÁ§Æ®¿¡¼ ºôµåÇÑ °á°ú¹°À» Áö¿ì°í ´Ù½Ã ºôµåÇÏ°í ½ÍÀ» ¶§ ÀÏÀÌ º¹ÀâÇØÁú ¼ö ÀÖÁÒ. º¸Åë IDE¿¡¼´Â web µð·ºÅ丮¸¦ ±×´ë·Î CONTEXT_ROOT·Î »ç¿ëÇÕ´Ï´Ù.
¸¸¾à ÀÌ·± ÀÏ·ÃÀÇ ºôµå °úÁ¤À» ¼öµ¿À¸·Î ÇÑ´Ù¸é ±× ºñÈ¿À²Àº ¸»ÇÒ ³ªÀ§°¡ ¾ø°ÚÁÒ? ±×·¡¼ IDE¿¡¼´Â °£´ÜÇÑ ¼³Á¤¸¸ ÇØµÎ¸é ÀÚµ¿À¸·Î ºôµåÇØÁÝ´Ï´Ù. ÇÏÁö¸¸ IDE ¾øÀÌ ºôµåÇØ¾ß ÇÒ ¶§µµ ÀÖ½À´Ï´Ù. °³¹ßÇÒ ¶§´Â ´ç¿¬È÷ IDE·Î °³¹ßÀ» ÇÏ°í ºôµåµµ ÇÒ ¼ö ÀÖ°ÚÁö¸¸ IDE¿¡¼ Áö¿øÇÏ´Â °Í ÀÌ¿ÜÀÇ ºÎ°¡ÀûÀÎ ÀÛ¾÷À» ÇØ¾ß ÇѴٰųª °³¹ßÀÚÀÇ PC°¡ ¾Æ´Ñ ¼¹ö¿¡¼ Á÷Á¢ ºôµåÇÏ°í ¹èÄ¡ÇØ¾ß ÇÒ ¶§µµ ÀÖ½À´Ï´Ù.
ÀÌ·² ¶§ÀÇ ºôµå¸¦ ÀÚµ¿ÈÇϱâ À§ÇØ ¿©·¯ °¡Áö ºôµå ÀÚµ¿È µµ±¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯´Ð½º/¸®´ª½º ȯ°æ¿¡¼´Â ¿À·¡ ÀüºÎÅÍ ÀÌ·± ¸ñÀûÀ» À§ÇØ »ç¿ëÇØ ¿Â make¶ó´Â µµ±¸°¡ ÀÖ½À´Ï´Ù. MakefileÀ̶ó´Â ÆÄÀÏ¿¡ ºôµå¸¦ À§ÇÑ ½ºÅ©¸³Æ®µéÀ» make ¹®¹ý¿¡ ¸Â°Ô ³ª¿Çصΰí make ¸í·ÉÀ» ½ÇÇàÇÏ¸é ºôµå°¡ ½ÇÇàµÇÁÒ.
ÇÏÁö¸¸ make¿¡¼ Áö¿øÇÏ´Â ±â´ÉÀÌ ³Ê¹« ºó¾àÇØ¼ ºôµå°¡ º¹ÀâÇÒ °æ¿ì Makefile¿¡ ¸ðµç ºôµå °úÁ¤À» ±â¼úÇØ¾ß Çϱ⠶§¹®¿¡ MakefileÀÌ º¹ÀâÇØÁ®¼ À¯Áöº¸¼ö°¡ Èûµé´Ù´Â ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ±×·¡¼ ÀÚ¹Ù Áø¿µ¿¡¼´Â make¸¦ ³Ñ¾î¼´Â ÅøÀ» ¸¸µé°íÀÚ Çß°í ±×·¡¼ Ant°¡ µîÀåÇß½À´Ï´Ù. ±×·¯³ª Ant ¿ª½Ã ÇѰ谡 ÀÖ¾ú±â ¶§¹®¿¡ Ant¸¦ ÇÑ ´Ü°è ´õ ¹ßÀü½ÃŲ MavenÀÌ µîÀåÇßÁÒ. ÇöÀç ´ëºÎºÐÀÇ ¿ÀǼҽº ÀÚ¹Ù ÇÁ·ÎÁ§Æ®´Â Ant³ª Maven µÑ ÁßÀÇ Çϳª¸¦ ºôµå µµ±¸·Î »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ¿©±â¼´Â ±¸Ã¼ÀûÀÎ µµ±¸ÀÇ »ç¿ë¹ýÀ» ¼³¸íÇϱ⺸´Ù ¾î¶°ÇÑ µµ±¸µéÀÌ ÀÖ´ÂÁö¸¦ °£´ÜÈ÷ »ìÆìº¸°í °¢ µµ±¸ÀÇ Àå´ÜÁ¡À» ºñ±³ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
Ant
Ant´Â ±¸Á¶ÀûÀ¸·Î´Â make¸¦ ±×´ë·Î ÀÌ¾î ¹Þ¾Ò½À´Ï´Ù. build.xml¿¡ ºôµå ¼³Á¤À» ÇØµÎ°í ant ¸í·ÉÀ» ½ÇÇàÇÏ¸é ºôµå ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. Ant´Â ÀÚÁÖ ÇÏ´Â ÀÛ¾÷µéÀ» ¹Ì¸® Àڹ٠Ŭ·¡½º·Î ÄÚµùÇØ¼ ŽºÅ©·Î ¸¸µé¾î µÎ¾ú°í Ŭ·¡½ºÆÐ½º ¼³Á¤À̳ª ÆÄÀÏ, µð·ºÅ丮 ¼±Åà µîÀ» ½±°Ô ÇÒ ¼ö ÀÖ´Â ¹®¹ýÀ» °®Ãß¾î ³õ¾Ò±â ¶§¹®¿¡ makeº¸´Ù ÈξÀ °£´ÜÇÏ°Ô ºôµå ¼³Á¤À» ÇÒ ¼ö ÀÖÁÒ. <¸®½ºÆ® 1>ÀÇ build.xmlÀÇ ¿¹¸¦ º¾½Ã´Ù.
| <¸®½ºÆ® 1> build.xmlÀÇ ¿¹ | | | |
<?xmlversion="1.0"encoding="UTF-8"?>
<projectdefault="build">
<description></description>
<targetname="build"depends="compile, resource"description="build project">
</target>
<targetname="compile">
<javacsrcdir="src/java"destdir="web/WEB-INF/classes">
<classpath>
<filesetdir="lib">
<includename="*.jar"/>
</fileset>
</classpath>
</javac>
</target>
<targetname="resource">
<copytodir="web/WEB-INF/classes">
<filesetdir="src/conf">
<includename="*.xml"/>
<includename="*.properties"/>
</fileset>
</copy>
</target>
</project>
| |
 |
À̰ÍÀº ÀÚ¹Ù ÄÄÆÄÀÏÀ» ÇÏ°í ¸®¼Ò½º¸¦ º¹»çÇÏ´Â ºôµå ÆÄÀÏÀÔ´Ï´Ù. target űװ¡ ÀÛ¾÷ÀÇ ´ÜÀ§¸¦ Á¤ÀÇÇÏ´Â ¿ªÇÒÀ» ÇÏ¸ç ´ÙÀ½°ú °°ÀÌ targetÀ» ÁöÁ¤ÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
ant <target À̸§>
¾ÕÀÇ build.xml¿¡¼´Â build, compile, resource¶ó´Â ¼¼ °³ÀÇ targetÀ» Á¤ÀÇÇϰí ÀÖ°í build¶ó´Â targetÀº compile, resource¿¡ ÀÇÁ¸Çϰí Àֱ⠶§¹®¿¡ build targetÀ» ½ÇÇàÇϸé ÀÚµ¿À¸·Î compile°ú resource°¡ ¸ÕÀú ½ÇÇàµË´Ï´Ù. ±×¸®°í project ű׿¡¼ default·Î build¸¦ Á¤ÀÇÇϰí Àֱ⠶§¹®¿¡ targetÀ» ÁöÁ¤ÇÏÁö ¾Ê°í ant¸¦ ½ÇÇàÇϸé ÀÚµ¿À¸·Î build°¡ ½ÇÇàµÇÁÒ. compile target¿¡¼´Â javac ŽºÅ©¸¦ ÀÌ¿ëÇØ¼ ÄÄÆÄÀÏÀ» Çϰí resource ŽºÅ©¿¡¼´Â copy ŽºÅ©¸¦ ÀÌ¿ëÇØ¼ º¹»ç¸¦ ÇÕ´Ï´Ù. À̰ÍÀÌ AntÀÇ ±âº»ÀûÀÎ ±¸Á¶ÀÌ°í ´Ù¸¥ ºÎ°¡ÀûÀÎ ±â´Éµéµµ ÀÖÁö¸¸ ´ëü·Î ÀÌ·± ½ÄÀ¸·Î build.xmlÀ» ±¸¼ºÇÏ°Ô µË´Ï´Ù.
»ç½Ç Ant °³¹ßÀÚµéÀº Ant°¡ makeº¸´Ù ÈξÀ ¼±¾ðÀûÀ¸·Î ºôµå¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù´Â Á¡À» ÀåÁ¡À¸·Î ³»¼¼¿ìÁö¸¸ ÀÌ°Ç »ç½Ç javac, copy¿Í °°Àº ŽºÅ©¸¦ ¹Ì¸® Àڹ٠Ŭ·¡½º·Î ÄÚµùÇØ ³õ¾Ò±â ¶§¹®¿¡ ±×·± °ÍÀÏ »Ó ½ÇÁ¦ÀûÀ¸·Î´Â MakeÀÇ ¸ÞÄ¿´ÏÁò°ú Å« Â÷À̰¡ ¾ø½À´Ï´Ù. ±×·± ¹Ý¸é build.xmlÀ» ¼±¾ðÀûÀ¸·Î ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇØ build.xmlÀÇ ¹®¹ý¿¡ ½ºÅ©¸³Æ®ÀûÀÎ ¿ä¼Ò¸¦ ÃÖ¼ÒÇÑÀ¸·Î ÁÙ¿´°í ¶Ç XML ÀÚü°¡ ÇÁ·Î±×·¡¹ÖÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» ±â¼úÇϱ⿡´Â ÀûÇÕÇÏÁö ¾Ê±â ¶§¹®¿¡ AntÀÇ ÆÄ¿ö´Â ¿ÀÈ÷·Á makeº¸´Ù ³·¾ÆÁ³½À´Ï´Ù.
±×¸®°í ½ÇÁ¦·Î Àڹ٠Ŭ·¡½º ÄÄÆÄÀÏ¿¡ ÆÄÀÏ ¸î °³ º¹»çÇÏ´Â Á¤µµ¶ó¸é ¾ÆÁÖ °£´ÜÇÏ°Ô ºôµå ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸ º¹ÀâÇØÁö±â ½ÃÀÛÇϸé build.xmlÀº Á¡Á¡ ÀÌÇØÇϱâ Èûµç Äڵ尡 µÇ¾î°©´Ï´Ù. ±×·¡¼ Ant¿¡¼´Â build.xml¿¡ ÁÖ¼®À» ÃæºÐÈ÷ ´Þ¾Æ³õÀ» °ÍÀ» ±Ç°íÇϰí ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸ ÁÖ¼®À» ¸¹ÀÌ ´Þ¾Æ¾ßÇÑ´Ù´Â °ÍÀº ÁÖ¼®À» ´ÞÁö ¾ÊÀ¸¸é ¾ÈµÉ ¸¸Å ÁöÀúºÐÇÑ Äڵ带 ¸¸µé°Ô µÈ´Ù´Â ¶æÀ̱⵵ ÇÕ´Ï´Ù. »ç½Ç ºôµå ½ºÅ©¸³Æ®¾ß Çѹø ¸¸µé¾îµÎ¸é °è¼Ó ¾²´Ï±î ÀÌÇØÇ졂 ¸»°Ç ¹«½¼ »ó°üÀ̳İí ÇÒ ¼öµµ ÀÖ°ÚÁö¸¸ ÇÁ·ÎÁ§Æ® ±Ô¸ð°¡ Ä¿Áö°í ¿¬°ü ÇÁ·ÎÁ§Æ®°¡ ¸¹¾ÆÁú¼ö·Ï ºôµå ¿ä±¸»çÇ×µµ °è¼Ó º¯ÇÕ´Ï´Ù.
±×·¡¼ ÀÚÁÖ ¼öÁ¤ÇÒ ¼ö ÀÖµµ·Ï ºôµå ½ºÅ©¸³Æ®¸¦ ¸í·áÇÏ°Ô À¯ÁöÇÒ Çʿ䰡 ÀÖÁÒ. °á±¹ Ant´Â makeº¸´Ù´Â Á¶±Ý »çÁ¤ÀÌ ³ª¾ÆÁ³Áö¸¸ º»ÁúÀûÀ¸·Î´Â make¿Í µ¿ÀÏÇÑ ¹®Á¦¸¦ °®°í ÀÖ½À´Ï´Ù.
| |
| Çб³¿¡¼´Â ²Ï ¿À·§µ¿¾È ¼Ò½ºÄڵ忡´Â ÁÖ¼®À» ¸¹ÀÌ ´Þ¾Æ¾ß ´Ù¸¥ »ç¶÷ÀÌ À¯Áöº¸¼öÇϱ⠽±´Ù°í °¡¸£ÃÄ ¿Ô½À´Ï´Ù. ÇÏÁö¸¸ À̰ÍÀº »ç½ÇÀÌ ¾Æ´Õ´Ï´Ù. ¿ÀÈ÷·Á ¸¹Àº ÁÖ¼®Àº ¸®ÆÑÅ丵¿¡¼ ¸»ÇÏ´Â ³ª»Û ³¿»õ Áß ÇϳªÀÔ´Ï´Ù.
¸¶Æ¾ ÆÄ¿ï·¯°¡ ¾´ ¡º¸®ÆÑÅ丵¡»¿¡¼´Â ³ª»Û Äڵ带 ½Äº°ÇÏ´Â ¹æ¹ýÀ¸·Î ³¿»õ¶ó´Â Ç¥ÇöÀ» »ç¿ëÇÕ´Ï´Ù. Äڵ忡 ÁÁÁö ¾ÊÀº ºÎºÐÀÌ ÀÖÀ¸¸é ¡®³¿»õ ³ª´Â Äڵ塯¶ó´Â °ÅÁÒ. ¸¶Æ¾ ÆÄ¿ï·¯´Â ÁÖ¼®Àº ±× ÀÚü°¡ ³ª»Û ³¿»õ¸¦ dz±â´Â °ÍÀº ¾Æ´ÏÁö¸¸ º¸Åë ÄÚµåÀÇ ³ª»Û ³¿»õ¸¦ °¨Ãß±â À§ÇÑ Å»ÃëÁ¦·Î »ç¿ëµÇ±â ¶§¹®¿¡ ÁÖ¼®À» ½á¾ß ÇÒ Çʿ伺À» ´À³¤´Ù¸é ÁÖ¼®À» ¾²´Â ´ë½Å Äڵ带 ¸®ÆÑÅä¸µÇØ¼ Äڵ忡¼ ³¿»õ°¡ ³ªÁö ¾Êµµ·Ï Ç϶ó°í ¸»ÇÕ´Ï´Ù. ÁÁÀº ÄÚµå´Â ÁÖ¼®À» ¸¹ÀÌ ´Þ¾Æ³õÀº Äڵ尡 ¾Æ´Ï¶ó ÄÚµå ÀÚü¸¸À¸·Îµµ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Â ÄÚµå¶ó´Â ¶æÀÌÁÒ.
½ã¿¡¼ Á¦½ÃÇÏ´Â ÀÚ¹Ù ÄÚµå ÄÁº¥¼Ç(Java Code Convention)¿¡¼µµ ±¸Çö¿¡ ´ëÇØ ¼³¸íÇÏ´Â ÁÖ¼®Àº µÇµµ·Ï ¾²Áö ¸»¶ó°í ±Ç°íÇϰí ÀÖ½À´Ï´Ù. ºôµå ½ºÅ©¸³Æ®¶ó°í ¿¹¿Ü°¡ µÇ¾î¼± ¾ÈµË´Ï´Ù. °³¹ßÆÀ¿¡¼ °³¹ßÇϰí À¯ÁöÇÏ´Â ¸ðµç ¼Ò½ºÄÚµå´Â ³¿»õ°¡ ³ªÁö ¾Ê´Â ¡®±ú²ýÇÑ Äڵ塯°¡ µÇ¾î¾ß ÇÕ´Ï´Ù.
| | | | | |
| |
Maven
MavenÀº ÀÌ·± Á¡µéÀ» ÇØ°áÇÏ°í ³ª¾Æ°¡ Á¾ÇÕÀûÀÎ ÇÁ·ÎÁ§Æ® °ü¸®±îÁö ¼ÒÈÇϱâ À§ÇØ ¸¸µé¾îÁ³½À´Ï´Ù. ±×·¡¼ ±âº» ±¸Á¶ ÀÚüµµ make, Ant¿Í´Â »ó´çÈ÷ ´Ù¸¨´Ï´Ù. ¿ì¼± AntÀÇ ¹®Á¦Á¡À̶ó°í ÁöÀûµÇ´ø ºÎºÐ, ºôµå¸¦ À§ÇÑ ÇÁ·Î¼¼½º¿Í µ¥ÀÌÅͰ¡ ¼¯¿©¼ build.xml¿¡ ±â¼úµÈ´Ù´Â °ÍÀ» ÇØ°áÇϱâ À§ÇØ µ¥ÀÌÅÍ¿Í ÇÁ·Î¼¼½º¸¦ ¿ÏÀüÈ÷ ºÐ¸®Çß½À´Ï´Ù. Maven¿¡¼´Â makeÀÇ Makefile, AntÀÇ build.xml¿¡ ´ëÀÀµÇ´Â °ÍÀ¸·Î project.xmlÀ» ÀÛ¼ºÇϴµ¥ ÀÌ project.xml¿¡´Â ÇÁ·Î¼¼½º°¡ ÀüÇô µé¾î°¡Áö ¾Ê°í ¿À·ÎÁö ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ¼³¸í¸¸ÀÌ µé¾î°©´Ï´Ù. <¸®½ºÆ® 2>¸¦ º¾½Ã´Ù.
| <¸®½ºÆ® 2> project.xmlÀÇ ¿¹ | | | |
<?xmlversion="1.0"encoding="UTF-8"?>
<project>
<pomVersion>3</pomVersion>
<artifactId>fireside</artifactId>
<name>fireside</name>
<groupId>fireside</groupId>
<currentVersion>1.0</currentVersion>
<inceptionYear>2005</inceptionYear>
<logo>/images/logo.gif</logo>
<mailingLists>
<mailingList>
<name>${pom.name} Dev List</name>
</mailingList>
<mailingList>
<name>${pom.name}User List</name>
</mailingList>
</mailingLists>
<dependencies>
<dependency>
<groupId>jsp-api</groupId>
<artifactId>jsp-api</artifactId>
<jar>jsp-api.jar</jar>
<type>jar</type>
</dependency>
<dependency>
<groupId>servlet-api</groupId>
<artifactId>servlet-api</artifactId>
<jar>servlet-api.jar</jar>
<type>jar</type>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/java</sourceDirectory>
<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
</unitTest>
<resources>
<resource>
<directory>src/conf</directory>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
| |
 |
À̰ÍÀÌ project.xmlÀÇ ¿¹ÀÔ´Ï´Ù. º¸´Ù½ÃÇÇ ¾î¶»°Ô ºôµå¸¦ ÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ ³»¿ëÀº ÀüÇô ¾ø½À´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ±¸Á¶¿¡ ´ëÇÑ ¼³¸íµé¸¸ ÀÖÁÒ. ¾î¶»°Ô ºôµåÇÒ °ÍÀΰ¡´Â MavenÀÇ Ç÷¯±×Àο¡ ÀÖ½À´Ï´Ù. Ç÷¯±×ÀÎÀº Jelly ½ºÅ©¸³Æ®¶ó´Â XML ±â¹ÝÀÇ ½ºÅ©¸³Æ® ¾ð¾î¿Í Àڹ٠Ŭ·¡½º¸¦ °áÇÕÇØ¼ ¸¸µé°Ô µÇ¸ç goalÀ̶ó´Â °ÍÀ» Á¤ÀÇÇϴµ¥ À̰ÍÀº AntÀÇ target°ú ºñ½ÁÇÏ¸ç ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
maven <goal À̸§>
Maven Ç÷¯±×ÀÎÀÇ Jelly ½ºÅ©¸³Æ®´Â AntÀÇ build.xml º¸´Ù ÈξÀ ´õ ÇÁ·Î±×·¡¹Ö ¿ä¼Ò¸¦ ¸¹ÀÌ Æ÷ÇÔÇϰí Àֱ⠶§¹®¿¡ ´õ °·ÂÇÕ´Ï´Ù. °Ô´Ù°¡ µ¥ÀÌÅÍ¿Í ÇÁ·Î¼¼½º°¡ ¿ÏÀüÈ÷ ºÐ¸®µÇ¾î ÀÖ¾î »ç¿ëÇÏ´Â ÀÔÀå¿¡¼´Â µ¥ÀÌÅ͸¸ Àß Á¤ÀÇÇØµµ µË´Ï´Ù. µû¶ó¼ Antº¸´Ù ´õ ¼±¾ðÀûÀ̰í ÀÛ¼ºÇϱ⵵ ½±½À´Ï´Ù.
±×¸®°í Ant´Â ¶óÀ̺귯¸® ÀÇÁ¸¼º, ÇÁ·ÎÁ§Æ®°£ ÀÇÁ¸, »ó¼Ó °ü°è µî¿¡ ´ëÇÑ Áö¿øÀÌ ÀüÇô ¾ø¾ú´Âµ¥ Maven¿¡¼´Â Repository¶ó´Â °³³äÀ» µµÀÔÇÏ¿© ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϰí ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®°¡ ¾î¶² ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´ÂÁö, ¾î¶² ÇÁ·ÎÁ§Æ®ÀÇ Æ¯¼ºÀ» »ó¼Ó¹Þ´ÂÁö µîÀ» project.xml¿¡ ¼³Á¤¸¸ ÇØÁÖ¸é ÇÊ¿äÇÑ jar ÆÄÀÏÀ» ÀÚµ¿À¸·Î Maven Repository¿¡¼ ´Ù¿î¹Þ¾Æ¼ ºôµå¸¦ ÇØÁÖ´Â °ÍÀÌÁÒ. µ¥ºñ¾È GNU/¸®´ª½º¸¦ »ç¿ëÇØ ºÃ´Ù¸é dselect¸¦ ½áºÃÀ» °ÍÀÔ´Ï´Ù.
dselect¿¡¼´Â ¾î¶² ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡ÇÏ·Á°í ¼±ÅÃÇÏ¸é ±× ¼ÒÇÁÆ®¿þ¾î°¡ ÇÊ¿ä·Î ÇÏ´Â ¶óÀ̺귯¸®³ª ´Ù¸¥ ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚµ¿À¸·Î ´Ù¿î·ÎµåÇØ¼ ¼³Ä¡ÇØÁÝ´Ï´Ù. MavenÀÌ Á¦°øÇÏ´Â ÀÇÁ¸¼º °ü¸®µµ ÀÌ¿Í °°Àº °³³äÀÔ´Ï´Ù.
¶Ç MavenÀº ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ °¢Á¾ ¹®¼°¡ Áý¾àµÈ »çÀÌÆ®¸¦ »ý¼ºÇϵµ·Ï ÇØÁÝ´Ï´Ù. ¿ÀǼҽº ÇÁ·ÎÁ§Æ®ÀÇ È¨ÆäÀÌÁö¸¦ µ¹¾Æ´Ù´Ï´Ù º¸¸é ¡®built by maven¡¯À̶ó´Â µüÁö°¡ ºÙÀº »çÀÌÆ®°¡ ¸¹½À´Ï´Ù. ÀÌ·± »çÀÌÆ®¿¡´Â °øÅëÀûÀ¸·Î Project Info¿Í Project Reports°¡ ÀÖ°í ÀÌ ¾È¿¡ ¼Ò½º ÀúÀå¼Ò ¿¬°á, Javadoc, Å×½ºÆ® ¸®Æ÷Æ®, checkstyle ¸®Æ÷Æ® µîÀÇ ¹®¼µéÀÌ ÀÖ½À´Ï´Ù.
À̰ÍÀº MavenÀÇ site Ç÷¯±×ÀÎÀÌ ÀÚµ¿À¸·Î »ý¼ºÇÑ »çÀÌÆ®ÀÔ´Ï´Ù. ¿©·¯ °¡Áö À¯¿ëÇÑ Á¤º¸µéÀ» ÀÚµ¿À¸·Î »ý¼ºÇØÁֱ⠶§¹®¿¡ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ Á¤º¸¸¦ ÆÀ³»¿¡¼ ½±°Ô °øÀ¯ÇÒ ¼ö ÀÖÁÒ. ½ºÄÉÁì·¯¸¦ ÀÌ¿ëÇØ¼ ¸ÅÀÏ Æ¯Á¤ ½Ã°£¿¡ ºôµåÇÏ°í »çÀÌÆ®¸¦ »ý¼ºÇϵµ·Ï ÇÏ¸é ¸ÅÀÏ ¸ÅÀÏ °³¹ß ÁøÃ´ »óȲÀ» »ìÆìº¼ ¼ö ÀÖ½À´Ï´Ù.
°í¹ÎÇÒ ÇÊ¿ä ¾øÀÌ MavenÀ» ¾²¸é µÇ°Ú±¸³ª ½ÍÁö¸¸ ¾ÆÁ÷Àº ¾Æ´Õ´Ï´Ù. MavenÀº Áö¿øÇÏ´Â ±â´ÉÀÌ ¸¹´Ùº¸´Ï mavenÀ» Á¦´ë·Î ¹è¿ì´Â µ¥´Â ÀûÁö ¾ÊÀº ½Ã°£ÀÌ °É¸³´Ï´Ù. °Ô´Ù°¡ Ç÷¯±×ÀεéÀº ¿©·¯ °¡Áö ±¸Á¶ÀûÀÎ ºÎºÐ¿¡¼ ¸¹Àº ¡®°¡Á¤¡¯À» Æ÷ÇÔÇÑ »óÅ·Π°³¹ßµÇ¾î ÀÖ½À´Ï´Ù. À̸¦Å׸é MavenÀ¸·Î ºôµåÇÏ´Â jar ÆÄÀÏÀº Ç×»ó ¹öÀü ³Ñ¹ö°¡ µÚ¿¡ ºÙ¾î¾ß ÇÑ´Ù´Â ½ÄÀÌÁÒ.
ÀÌ·± ¾Ï¹¬ÀûÀÎ ·êµéÀÌ ¸¹±â ¶§¹®¿¡ Maven Ç÷¯±×ÀÎÀ» È®ÀåÇÏ°í ½ÍÀ» ¶§ ÀÚ½ÅÀÇ »ý°¢Çß´ø °Í°ú ´Ù¸£°Ô µ¿ÀÛÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. °Ô´Ù°¡ Maven¿¡¼ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ® ¾ð¾îÀÎ Jelly ½ºÅ©¸³Æ®´Â Antº¸´Ù´Â ³´Áö¸¸ ¿©ÀüÈ÷ º¹ÀâÇÑ ¿ä±¸»çÇ×À» ¼ö¿ëÇϱ⿡´Â ¡®ÁøÂ¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¡¯¿¡ ºñÇØ ºÎÁ·ÇÑ Á¡ÀÌ ¸¹½À´Ï´Ù. °á±¹ Jelly ½ºÅ©¸³Æ®·Î ÀÛ¼ºÇÑ ÄÚµå´Â AntÀÇ build.xml ¸øÁö ¾Ê°Ô ¾îÁö·¯¿î Äڵ尡 µÇ°ï ÇÏÁÒ. °Ô´Ù°¡ MavenÀº ¼Óµµ°¡ Ant¿¡ ºñÇØ ¾ÆÁÖ ´À¸°µ¥ ÀÌ Á¡ÀÌ ÀǿܷΠ°³¹ßÇÏ¸é¼ ÀÚÁÖ ºôµåÇØ¾ß ÇÒ ¶§´Â Ä¡¸íÀûÀÎ ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
¼±ÅÃÀÇ ¹®Á¦
ÀÌ·± Á¡µé ¶§¹®¿¡ MavenÀ» ¹«ÀÛÁ¤ ±Ç°íÇϱâ´Â ¾î·Æ½À´Ï´Ù. ±×·¡¼ ¶Ç ´Ù¸¥ ´ë¾ÈÀ» ã´Â »ç¶÷µéµµ ÀÖ½À´Ï´Ù. Groovy+Ant¶ó´Â °Íµµ ÀÖ½À´Ï´Ù. Groovy¶ó´Â ÀÚ¹Ù ±â¹ÝÀÇ ½ºÅ©¸³Æ® ¾ð¾î¿¡¼ AntÀÇ Å½ºÅ©µéÀ» ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ°Ô ±¸¼ºÇØ ³õÀº °ÍÀÌÁÒ. ³ª¸§´ë·Î ±¦ÂúÀº ´ë¾ÈÀÌÁö¸¸ ¾ÆÁ÷ MavenÀÇ ´Ù¾çÇÑ ±â´ÉµéÀ» ¼ÒÈÇϰí ÀÖÁø ¸øÇÕ´Ï´Ù. °á±¹ ¼±ÅÃÀº °³¹ßÀÚÀÇ ¸òÀÔ´Ï´Ù. Ant´Â ÇѰ谡 ÀÖÁö¸¸ ½±°í °¡º¿î ÅøÀ̰í, MavenÀº ±â´ÉÀÌ ´Ù¾çÇÏÁö¸¸ ¾î·Æ°í ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.
ÀÏ´ÜÀº Ant·Î ±¸¼ºÇØ ³õ°í MavenÀ» °³¼±ÇÑ »õ·Î¿î ÅøÀÌ ³ª¿À±â¸¦ ±â´Ù¸®´Â °Íµµ ³ª»ÚÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ±×¸®°í »ç½Ç ºôµå µµ±¸ ¸¸µå´Â °ÍÀÌ ¾î·Á¿î ÀÏÀº ¾Æ´Ï¹Ç·Î ½º½º·Î ÀÚ½ÅÀÇ ÆÀ¿¡ ¸Â´Â ºôµå µµ±¸¸¦ ¸¸µé¾îº¸´Â °Íµµ ÁÁ½À´Ï´Ù. ¸ñÀûÀº À§¿¡¼ ³ª¿ÇÑ À¥ ÇÁ·ÎÁ§Æ®ÀÇ ºôµå °úÁ¤À» È¿°úÀûÀ¸·Î ÇØ³»´Â °ÍÀÌÁö ¾î¶² µµ±¸¸¦ »ç¿ëÇÏ´À³Ä°¡ Áß¿äÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù.
°ü¸®ÀÇ ÀÚµ¿È
ÀÚµ¿ÈÀÇ ´ë»óÀº ÇÁ·ÎÁ§Æ®ÀÇ ºôµå¸¸ÀÌ ¾Æ´Õ´Ï´Ù. ±× ¿Ü¿¡ °³¹ß¿¡¼ ¹ß»ýÇÏ´Â ¼ö¸¹Àº À⹫µéµµ ¸ðµÎ ÀÚµ¿È ´ë»óÀÔ´Ï´Ù. ´ÙÀ½ÀÌ ±×·± ÀÛ¾÷µéÀÔ´Ï´Ù.
[1] ¼¹ö ¼³Ä¡ ¹× ¼¹ö ȯ°æ ±¸¼º
[2] ºôµåÇÑ ÇÁ·ÎÁ§Æ®¸¦ À¥ ÄÁÅ×À̳ʿ¡ ¹èÄ¡Çϱâ
[3] À¥ ÄÁÅ×À̳ʸ¦ ½ºÅ¾/½ºÅ¸Æ®/¸®½ºÅ¸Æ® ½Ã۱â
[4] ÁÖ±âÀûÀ¸·Î ÇÁ·ÎÁ§Æ®¸¦ Å×½ºÆ®ÇÏ°í °á°ú¸¦ ¸®Æ÷ÆÃÇϱâ
[5] »óȲ¿¡ µû¶ó ¼¹öÀÇ ¼ÂÆÃ º¯°æÇϱâ
Ant¿Í MavenÀº ÀÌ·± ÀÏ¿¡µµ »ó´ç ºÎºÐ µµ¿òÀ» ÁÝ´Ï´Ù. ÀÌ¹Ì ÀÌ·± ÀÛ¾÷µéÀÌ Ant ŽºÅ©³ª Maven Ç÷¯±×ÀÎÀ¸·Î ¸¹ÀÌ ¸¸µé¾îÁ® Àֱ⵵ ÇÏ°í ¶ÇÇÑ ºôµå ÀÚµ¿È¿Í ÀϰüµÈ ¹æ½ÄÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù´Â °Íµµ ÀåÁ¡ÀÔ´Ï´Ù. ÇÏÁö¸¸ »ç½Ç ÀÌ·± ºÎºÐµéÀº ºôµå Åøº¸´Ù´Â bash °°Àº ¼Ð ½ºÅ©¸³Æ®°¡ ´õ °£ÆíÇÑ °æ¿ì°¡ ¸¹½À´Ï´Ù. ¼¹ö¿¡ Á¢¼ÓÇØ¾ß ÇÏ´Â Àϵ鵵 ¸¹°í Ant³ª MavenÀÇ Å½ºÅ©º¸´Ù ¸®´ª½º/À¯´Ð½ºÀÇ ÅøµéÀÌ ´õ À¯¿ëÇÑ °æ¿ì°¡ ¸¹½À´Ï´Ù. ¸®´ª½º/À¯´Ð½º ¼¼°è¿¡¼´Â ÀÌ¹Ì ¿À·¡ ÀüºÎÅÍ ÀÌ·± ÀϵéÀ» ½© ½ºÅ©¸³Æ®·Î ÇØ¿Ô½À´Ï´Ù.
ÇÏÁö¸¸ ¿©±â¿¡µµ ¹®Á¦°¡ ÀÖ´Â °ÍÀÌ ¼Ð ½ºÅ©¸³Æ® ¿ª½Ã Ant³ª MavenÀÇ Jelly ½ºÅ©¸³Æ®Ã³·³ ¿ÏÀüÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ¾Æ´Ï±â ¶§¹®¿¡ ÆÄ¿öµµ ºÎÁ·ÇÏ°í ¹®¹ýµµ Á» ´ú Ä£¼÷ÇÕ´Ï´Ù. ±×·¡¼ ÀÌ·± °æ¿ì´Â ÆÞ(Perl)À̳ª ÆÄÀ̽㠵îÀÇ ½ºÅ©¸³Æ® ¾ð¾î¸¦ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù. ½ºÅ©¸³Æ® ¾ð¾î´Â ¼Ð ¸í·ÉÀ» ¼Ð ½ºÅ©¸³Æ®¿¡ ºñÇØ Å« ºÒÆí ¾øÀÌ ½ÇÇà½Ãų ¼ö ÀÖ°í ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼ÀÇ ÆÄ¿öµµ °®°í ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Â ¹Ý¸é ¹è¿ö¾ß ÇÒ ¾ð¾î°¡ Çϳª ´õ ´Ã°í ÀÌ·± ·ùÀÇ ÀÛ¾÷À» À§ÇØ ÀÌ¹Ì ¸¸µé¾îÁø °ÍµéÀÌ ¸¹Áö ¾Ê´Ù´Â ¹®Á¦°¡ ÀÖ½À´Ï´Ù. °á±¹ ¶Ç´Ù½Ã ¼±ÅÃÀÇ ¹®Á¦·Î ±Í°áµË´Ï´Ù.
Âü°í·Î ÇÊÀÚÀÇ ¼±ÅÃÀº °£´ÜÇÑ °æ¿ì´Â ¼Ð ½ºÅ©¸³Æ®, Á» º¹ÀâÇØÁö¸é ÆÄÀ̽ãÀÔ´Ï´Ù. Áß¿äÇÑ °ÍÀº À⹫¸¦ ¸ðµÎ ÀÚµ¿ÈÇØ¼ ÇÁ·Î±×·¡¸Ó°¡ °³¹ßÇÑ °ÍÀ» ½±°Ô Å×½ºÆ®ÇÏ°í ¶Ç ½ÇÁ¦ ¼ºñ½º¿¡ ½±°Ô ¹Ý¿µÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é ¾î¶² µµ±¸¶óµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â À¯¿¬ÇÑ »ç°í¹æ½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
°ÔÀ¸¸¦ ¼ö ÀÖ´Â ±Ç¸®
¡°Àΰ£Àº ´©±¸³ª °ÔÀ¸¸¦ ±Ç¸®°¡ ÀÖ´Ù.¡± Æú ¶óÆÄ¸£Å©ÀÇ ¡º°ÔÀ¸¸¦ ¼ö ÀÖ´Â ±Ç¸®¡»¿¡ ³ª¿À´Â ¸»ÀÔ´Ï´Ù. ÀÌ Ã¥¿¡¼´Â ÀÏÀÇ ³ë¿¹°¡ µÇ¾î°¡´Â Çö´ëÀε鿡°Ô »îÀÇ ¸ñÀû¿¡ ´ëÇØ ´Ù½Ã ÇÑ ¹ø »ý°¢Çغ¼ °ÍÀ» ¿ä±¸ÇÏ¸ç ¶ÇÇÑ ¹«ÀÛÁ¤ ºÎÁö·±Çϱ⸸ ÇÑ °ÍÀÌ È¿À²ÀûÀÌÁöµµ ¾Ê´Ù°í ¸»ÇÕ´Ï´Ù.
ÇÁ·Î±×·¡¸Ó¿¡°Ôµµ ÀÌ ¸»Àº Àû¿ëµË´Ï´Ù. ÁÖ¾îÁø ÀÏÀº ¹«Á¶°Ç ¿½ÉÈ÷ ÇÏ°í º¸ÀÚ´Â »ý°¢¿¡ ³°Àº ¹æ½Ä´ë·Î ¹¬¹¬È÷ Áö°Ü¿î ÀÏÀ» ÇØ³»´Â °ÍÀº °³Àο¡µµ Á¶Á÷¿¡µµ ¹Ù¶÷Á÷ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ°Ç Á¶Á÷ÀÇ ÀÔÀå¿¡¼µµ »ý»ê¼º Çâ»óÀ» ÇÒ ¼ö ÀÖ´Â ±âȸ¸¦ ³õÄ¡±â Çϱ⠶§¹®¿¡ ¶Ç´Ù¸¥ ÀǹÌÀÇ Å¾÷ÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â ±ÍÂúÀº ÀÏ¿¡ ´ëÇØ °ÔÀ»·¯Á®¾ß ´õ ³ªÀº ¹æ¹ýÀ» ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. ÁöÆÛÀÇ ¹ß¸íµµ ±¸µÎ²öÀ» ¸Å±â ±ÍÂú¾ÆÇÏ´Â »ç¶÷ÀÌ ÇØ³½ °ÍÀÌ°í ¸¹Àº ¹ß¸íµéÀÌ °ÔÀ¸¸§ÀÇ ¼Ò»êÀÔ´Ï´Ù.
ÇÁ·Î±×·¡¸Ó¿¡°Ô ÀÌ·± °ÔÀ¸¸§Àº ÀÌ¹Ì ±Ç¸®¸¦ ³Ñ¾î¼ Àǹ«ÀÔ´Ï´Ù.
¹°·Ð °ÔÀ¸¸§¸¸À¸·Î´Â ÃæºÐÇÏÁö ¾Ê½À´Ï´Ù. ¸¶³É °ÔÀ»·¯Áö±â¸¸ ÇØ¼´Â ±ÍÂúÀº ÀÏÀ» ÇÏÁö ¾Ê°Ô µÉ »ÓÀÌ°í ´õ ³ªÀº ¹æ½ÄÀ¸·Î ÇÏ°Ô ÇÏÁø ¸øÇÕ´Ï´Ù. °á±¹ ÇÒ ÀÏÀ» ÇÏ¸é¼ Á» ´õ °ÔÀ»·¯Áö±â À§Çؼ´Â ±ÍÂúÀ½À» ÇØ°áÇÏ´Â °úÁ¤¿¡¼ÀÇ ºÎÁö·±ÇÔÀº ÇÊ¿äÇÕ´Ï´Ù. ±¸µÎ²öÀ» ¸Å±â ±ÍÂú¾Æ ÇÏ´Â »ç¶÷ÀÌ ÁöÆÛ¸¦ ¹ß¸íÇÏ´Â ¼ö°í¸¦ ÇØ¾ß ÇßµíÀÌ ¸»ÀÌÁÒ. ±×¸®°í ±âÁ¸ÀÇ ¹æ½ÄÀ» °³¼±ÇØ¾ß Çϱ⠶§¹®¿¡ ¾î´À Á¤µµÀÇ Ã¢ÀǼºµµ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¡®¿ì¸®´Â ÀÌÁ¦±îÁö ÀßÇØ¿Ô´Ù¡¯´Â ³í¸®¿¡ ºüÁö´Â °Í ¶ÇÇÑ °æ°è ´ë»óÀÔ´Ï´Ù. Çѹø ¼º°øÀ» °ÅµÐ °æÇèÀÌ ÀÖ´Â Á¶Á÷Àº ÀڽŵéÀÇ ¹æ½ÄÀÌ ¼º°øÀ» °¡Á®¿Ô±â ¶§¹®¿¡ ½±°Ô ¸Å³Ê¸®Áò¿¡ ºüÁý´Ï´Ù. ÇÏÁö¸¸ IT ¼¼°è´Â ºü¸£°Ô ¹ßÀüÇϰí ÀÖ°í ¿¹Àü¿¡´Â È¿À²ÀûÀ̾ú´ø ¹æ½ÄÀÌ ´õ È¿À²ÀûÀÎ ±â¼úµéÀÌ ³ª¿È¿¡ µû¶ó ¿ÀÈ÷·Á ¹ß¸ñÀ» ºÙÀâ°í ÀÖ´Â °æ¿ìµµ ¸¹´Ù´Â »ç½ÇÀ» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù.
±×·³ ÀÌ·± ÀÚµ¿È·Î Àý¾àÇÑ ½Ã°£µéÀº ¾î¶»°Ô ½á¾ß ÇÒ±î¿ä? ¹°·Ð ´õ °ÔÀ»·¯Áö±â À§Çؼ ÇÑ ÀϵéÀÌÁö¸¸ ±×·¸´Ù°í Á¤¸»·Î °ÔÀ»·¯Á®¼´Â °ï¶õÇÕ´Ï´Ù. ÇÁ·Î±×·¡¸ÓÀÇ °ÔÀ»·¯Áú ±Ç¸®´Â ´Ü¼øÇÑ ¹Ýº¹ ÀÛ¾÷¿¡¸¸ ÇØ´çµÇ´Â °ÍÀÔ´Ï´Ù. ÁÁÀº °³¹ß ȯ°æÀ¸·Î ÀÎÇØ Àý¾àÇÑ ½Ã°£µéÀº Á» ´õ âÁ¶ÀûÀÎ ÀÏÀ» Çϴµ¥ ÀçÅõÀÚÇØ¾ß ÇÕ´Ï´Ù. ÇÁ·Î±×·¡¹Ö ÀÚü¿¡ ÁýÁßÇÏ´Â °Íµµ ÁÁ°í Á» ´õ ³ôÀº ¼öÁØÀÇ ÀÚµ¿È¿¡ µµÀüÇØº¸´Â °Íµµ ÁÁ½À´Ï´Ù. °³¹ß ȯ°æ ±¸Ãà °úÁ¤¿¡¼ °æÇèÇÏ°Ô µÈ °ÍµéÀ» °øÀ¯Çغ¸´Â °Íµµ ¿©·¯ »ç¶÷¿¡°Ô À¯ÀÍÇÑ °á°ú°¡ µÉ °ÍÀÔ´Ï´Ù.
ÇÐâ ½ÃÀý ¹è¿ü´ø ·¯´ÙÀÌÆ® ¿îµ¿(Luddite Movement)À» ±â¾ïÇÒ °ÍÀÔ´Ï´Ù. »ê¾÷Çõ¸í ÀÌÈÄ ±â°è°¡ Àΰ£ÀÌ ÇÒ ÀÏÀ» ´ëüÇϱ⠽ÃÀÛÇÏ¸é¼ ¸¹Àº »ç¶÷µéÀÌ ÀÏÀÚ¸®¸¦ ÀÒ°í Àӱݵµ ±Þ¶ôÇß½À´Ï´Ù. ±×·¡¼ ³ëµ¿ÀÚµéÀÌ µé°í ÀϾ¼ ±â°è¸¦ ÆÄ±«ÇÏ°í ´Ù´Ï´Â ºñ¹Ð Á¶Á÷À» °á¼ºÇÑ °ÍÀÌ ¹Ù·Î ·¯´ÙÀÌÆ® ¿îµ¿ÀÔ´Ï´Ù.
ÇÁ·Î±×·¡¸Ó¿¡°Ôµµ ÀÌ·± ÀÏÀÌ ´ÚÄ¡Áö ¸»¶õ ¹ýÀÌ ¾ø½À´Ï´Ù. ±â°è°¡ ÇÒ ¼ö ÀÖ´Â ÀÏÀº ±â°è¿¡ ¸Ã±â°í Á» ´õ âÁ¶ÀûÀÎ ÀÏÀ» ÇÒ ÁÙ ¾Ë¾Æ¾ß ±â°è¿¡°Ô ÀÏÀÚ¸®¸¦ »©¾Ñ±âÁö ¾Ê°ÚÁÒ. Ant¶ó´Â À̸§¿¡µµ ÀÌ·± »ý°¢ÀÌ ´ã°Ü ÀÖ½À´Ï´Ù. ¸ð ±¤°í Ä«ÇÇó·³ ´Ü¼ø ¹Ýº¹ ÀÛ¾÷Àº ºÎÁö·±ÇÑ °³¹Ì¿¡°Ô ¸Ã±â°í ´ç½ÅÀº ÇÁ·Î±×·¡¹ÖÀ» Áñ±â¶ó´Â ¶æÀÎ °ÅÁÒ.
»ç½Ç ÀÚ½ÅÀÇ À⹫¸¦ ½º½º·Î ÀÚµ¿ÈÇÒ ¼ö ÀÖ´Â »ç¶÷Àº ÇÁ·Î±×·¡¸Ó ¹Û¿¡ ¾ø½À´Ï´Ù. À̰ÍÀÌ ÇÁ·Î±×·¡¸Ó¶ó´Â Á÷¾÷ÀÇ ¸Å·ÂÀ̱⵵ ÇÏÁÒ. ÇÏ·ç Àϰú¿¡¼ °¡Àå ¸¹Àº ½Ã°£À» ÀÏÇÏ¸é¼ º¸³»´Âµ¥ ÀÌ ÀÏÀÌ Áñ°Å¿ö¾ß ÇÏÁö ¾Ê°Ú½À´Ï±î. Áñ°Å¿î ÇÁ·Î±×·¡¹ÖÀ» Çϴ ù°ÉÀ½Àº ±ÍÂú°í ÀÏÀ» Á¦°ÅÇÏ´Â °ÍÀÔ´Ï´Ù. ±ÍÂúÀº °ÍµéÀ϶û ¸ðµÎ ÄÄÇ»ÅÍ¿¡ ¸Ã±â°í ¿ì¸®´Â ÇÁ·Î±×·¡¹ÖÀ» Áñ°Ü º¾½Ã´Ù.@
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.