·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[C#] ÄÚµåÀÇ Àç¹ß°ß, Code Analysis

¼­¿ì¼®(Çѱ¹°úÇбâ¼ú¿ø)   2005/12/06
[Áöµð³ÝÄÚ¸®¾Æ]Äڵ带 ÀÛ¼ºÇÏ´Â °³¹ßÀÚ°¡ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ Äڵ忡 ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â ¹æ¹ýÀ» Å©°Ô µÎ°¡Áö·Î ³ª´­ ¼ö ÀÖ´Ù. ù ¹øÂ° ¹æ¹ýÀº Á¤Àû(static) ºÐ¼® ¹æ¹ýÀ̸ç, ´Ù¸¥ ¹æ¹ýÀº µ¿Àû(dynamic) ºÐ¼® ¹æ¹ýÀÌ´Ù. Á¤Àû ºÐ¼® ¹æ¹ýÀº Äڵ带 ½ÇÇàÇÏÁö ¾Ê°í Äڵ带 ºÐ¼®ÇÏ´Â °ÍÀ¸·Î ÁÖ·Î ÄÄÆÄÀÏ ¼öÁØ¿¡¼­ Äڵ带 ºÐ¼®ÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¸é, ÄÚµåÀÇ ±¸Á¶¸¦ ºñÁÖ¾óÇÏ°Ô º¸¿©ÁÖ´Â ±â´ÉÀÌ ÀÌ¿¡ ÇØ´çÇÑ´Ù. ¹Ý¸é¿¡ µ¿ÀûÀÎ ºÐ¼® ¹æ¹ýÀº Äڵ带 ½ÇÇàÇÔÀ¸·Î½á ¾òÀº °á°ú¸¦ º¸¿©ÁÖ´Â °ÍÀ¸·Î È£Ãâ Æ®¸®(call tree)¸¦ º¸¿©Áְųª µð¹ö°Å¸¦ ÅëÇÑ ºÐ¼® ¹æ¹ýÀÌ ÀÌ¿¡ ¼ÓÇÑ´Ù.

À̹ø¿¡ ¼Ò°³ÇÒ Code Analysis´Â Á¤ÀûÀÎ ºÐ¼® ¹æ¹ý¿¡ ÇØ´çÇÏ´Â °ÍÀ¸·Î Äڵ带 ½ÇÇàÇÔÀ¸·Î½áÄڵ忡 ³»Á¦µÇ¾î ÀÖ´Â ¹®Á¦Á¡À» ¾Ë·ÁÁØ´Ù. ÀÌ¿Í ¹Ý´ë·Î µ¿ÀûÀÎ ºÐ¼® µµ±¸¿¡´Â ÇÁ·ÎÆÄÀÏ·¯(Profiler)°¡ ÁÖ·Î »ç¿ëµÈ´Ù. ¾Õ¿¡¼­ ¸»ÇßµíÀÌ, Á¤ÀûÀÎ ºÐ¼® µµ±¸´Â Äڵ带 ½ÇÇàÇÏÁö ¾Ê±â ¶§¹®¿¡ ÄÚµåÀÇ ¼º´É¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ÀڷḦ Á¦½ÃÇÒ ¼ö ¾ø´Ù. ´ë½Å ÀÛ¼ºµÈ ÄÚµå ÀÚü¿¡ ´ëÇÑ ºÐ¼®ÀÌ ÁÖ¿ä ±â´ÉÀÌ´Ù.

Code Analysis´Â ±âÁ¸¿¡ FxCopÀ̶ó´Â À̸§À¸·Î CLR ÆÀ¿¡¼­ °ø°³ÇؿԴø ÅøÀÌ Visual Studio Team System(VSTS)¿¡ ÅëÇÕµÈ ¹öÀüÀÌ´Ù. FxCopÀÇ ±¸Ã¼ÀûÀÎ ±â´ÉÀº °ü¸®µÇ´Â ÄÚµå(Managed Code)°¡ Microsoft .NET FrameworkÀÇ µðÀÚÀÎ °¡À̵å¶óÀÎÀ» µû¸£°í ÀÖ´ÂÁö °Ë»çÇÏ´Â ÄÚµå ºÐ¼® ÅøÀ̸ç, http://www.gotdotnet.com/team/fxcop¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù. º¸´Ù ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇϸé, FxCopÀº ÀÛ¼ºµÈ Äڵ尡 COM interop¸¦ Á¦´ë·Î »ç¿ëÇϰí ÀÖ´ÂÁö, ¶Ç´Â °í¼º´É Äڵ带 ÀÛ¼ºÇϱâ À§ÇÑ ±ÔÄ¢µéÀ» Áö۰í ÀÖ´ÂÁö¿Í °°Àº 200°³°¡ ³Ñ´Â ±ÔÄ¢µé¿¡ ´ëÇØ¼­ Äڵ带 °Ë»çÇÑ´Ù.

FxCopÀÌ VSTS ÀÌÀüºÎÅÍ ¸¹ÀÌ »ç¿ëµÇ¾î ¿ÔÁö¸¸(°³¹ßÀÚ¿¡°Ô °ø°³µÇ´Â µµ±¸), VSTS¿¡ ¿Í¼­ Code Analysis¶ó´Â À̸§À¸·Î ¿ë¾î°¡ º¯°æµÇ¾ú±â ¶§¹®¿¡ MSDN µµ¿ò¸»¿¡¼­ FxCop¿¡ ´ëÇÑ µµ¿ò¸» ã±â À§Çؼ­´Â Code Analysis¶ó´Â À̸§À¸·Î °Ë»öÀ» ÇØ¾ß ÀûÀýÇÑ µµ¿ò¸»À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. Code Analysis¿Í FxCop°úÀÇ °ü°è¿¡ ´ëÇØ¼­´Â, °ÅÀÇ ´ëºÎºÐÀÇ ±â´ÉÀÌ ¹«·á·Î ¹èÆ÷µÇ´Â FxCop ¹öÀü°ú µ¿ÀÏÇÏÁö¸¸, CLR ÆÀ¿¡ ÀÇÇÏ¸é ¹«·á ¹öÀü¿¡¼­ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» Code Analysis¿¡¼­ Áö¿øÇÑ´Ù. ÇÏÁö¸¸ µÎ ±â´ÉÀÇ Â÷À̰¡ ºÐ¸íÇÏÁö ¾Ê±â ¶§¹®¿¡ ¾î´À ¹öÀüÀ» »ç¿ëÇÏ´õ¶óµµ ´ëºÎºÐÀÇ ¿À·ù¸¦ ã¾Æ³»´Â µ¥¿¡´Â ÀüÇô ¹®Á¦°¡ ¾øÀ» °ÍÀÌ´Ù.

±×·³ °£´ÜÇÑ ¿¹Á¦¸¦ ÅëÇØ¼­ Code AnalysisÀÇ ±â´ÉÀ» »ìÆìº¸µµ·Ï ÇÏÀÚ.

¾ÕÀ¸·Î »ç¿ëÇÒ ¿¹Á¦ ¼Ò½º ÄÚµå ´Â ´ÙÀ½°ú °°´Ù.

#region Using directives
using System;
#endregion

namespace testCode
{

    public class demo : Exception
    {

        public static void Initialize(int size) { }
        protected static readonly int _item;
        public static int item { get { return _item; } }
    }
}

Code Analysis Ȱ¼ºÈ­ Çϱâ
ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ¸é ±âº»ÀûÀ¸·Î Code Analysis ±â´ÉÀÌ ºñȰ¼ºÈ­µÇ¾î ÀÖ´Ù(ÀÌ ±â´ÉÀº ÀÚµ¿ ½ÇÇà ±â´É¿¡ ´ëÇÑ È°¼ºÈ­ À¯¹«ÀÌÁö »ç¿ë °¡´É¼º¿¡ °üÇÑ ±â´ÉÀº ¾Æ´Ï´Ù). ¸¸¾à Code Analysis ±â´ÉÀ» Ȱ¼ºÈ­Çϸé, Visual Studio´Â ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÒ ¶§¸¶´Ù ¸Å¹ø Code Analysis¸¦ ¼öÇàÇÒ °ÍÀÌ´Ù. ¹°·Ð Code Analysis ±â´ÉÀ» Ȱ¼ºÈ­ÇÏÁö ¾Ê´õ¶óµµ Run Code Analysis ¸Þ´º¸¦ ¼±ÅÃÇÏ¿© ¼öµ¿À¸·Î Code Analysis¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÒ ¶§¸¶´Ù Code Analysis¸¦ ¼öÇàÇÏ°í ½Í´Ù¸é, ¼³¸íÇÑ °Íó·³ ¼Ó¼º â¿¡¼­ Code Analysis ±â´ÉÀ» Ȱ¼ºÈ­ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¶§, ÇÁ·ÎÁ§Æ®ÀÇ Á¾·ù¿¡ µû¶ó¼­ Code Analysis¸¦ ¼³Á¤ÇÏ´Â À§Ä¡°¡ ´Ù¸£±â ¶§¹®¿¡ ¾à°£ÀÇ ÁÖÀǸ¦ ÇÊ¿äÇÏ´Ù. ÀÏ¹Ý °ü¸®µÇ´Â ÄÚµåÀÎ °æ¿ì¿¡´Â ´ÙÀ½ ±×¸²°ú °°ÀÌ ÇÁ·ÎÁ§Æ®ÀÇ ¼Ó¼º âÀ» ¶ç¿î ÈÄ Code Analysis ÅÇÀ» ¼±ÅÃÇÏ¿© Enable Code Analysis üũ »óÀÚ¸¦ ¼±ÅÃÇÏ¸é µÈ´Ù.


¹Ý¸é¿¡ ASP.NET ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡´Â Website âÀ» ¶ç¿î ÈÄ Code Analysis Configuration ÅÇÀ» ¼±ÅÃÇÏ¿© Enable Code Analysis üũ »óÀÚ¸¦ ¼±ÅÃÇÑ´Ù. ¾Æ¸¶µµ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ¿© Äڵ带 ÀÛ¼ºÇÑ ÈÄ Ã³À½À¸·Î Code Analysis¸¦ ½ÇÇàÇÏ¸é »ó´çÈ÷ ¸¹Àº °æ°í°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù. ¹ß»ýÇÑ °æ°íµéÀ» Áö±Ý ¹Ù·Î ÇØ°áÇÏÁö ¾Ê¾Æµµ µÈ´Ù¸é, ¾Æ¸¶µµ ºôµåÇÒ ¶§¸¶´Ù Code Analysis¸¦ ½ÇÇàÇÏ´Â °³¹ßÀÚ´Â ¸¹Áö ¾ÊÀ» °ÍÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ÇÁ·ÎÁ§Æ®ÀÇ Å©±â°¡ Ä¿Áú¼ö·Ï Code Analysis¸¦ ½ÇÇàÇϴµ¥ ¸¹Àº ½Ã°£ÀÌ °É¸®±â ¶§¹®¿¡ ÀæÀº ºôµå¸¦ ¼öÇàÇÏ´Â °³¹ßÆÀ¿¡¼­´Â ¿ÀÈ÷·Á ºÎ´ãÀÌ µÉ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ÀϺ° ºôµå(Daily build)¸¦ ¼öÇàÇÏ´Â ÆÀÀº ºôµå°¡ ³¡³­ ÈÄ ÀÚµ¿À¸·Î Code Analysis¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚµ¿À¸·Î Äڵ带 °ËÁõÇÒ ¼ö ÀÖ´Ù. ÀÚ½ÅÀÌ ¼ÓÇÑ ÆÀÀÇ ºôµå Á¤Ã¥¿¡ ¸Â°Ô ¿É¼ÇÀ» ¼³Á¤Çϵµ·Ï ÇÑ´Ù.

Enable Code Analysis üũ »óÀÚ¸¦ ¼±ÅÃÇÏ´Â °Í°ú °ü·ÃÇØ¼­ ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº ¿ÜºÎ·Î ¹èÆ÷µÉ ¸±¸®Áî ºôµå¿¡´Â ÀÌ ±â´ÉÀ» Ȱ¼ºÈ­Çؼ­´Â ¾ÈµÈ´Ù´Â Á¡ÀÌ´Ù. ÀÌ ±â´ÉÀ» Ȱ¼ºÈ­Çϸé À§ÀÇ ±×¸²¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ´Â ¹Ù¿Í °°ÀÌ CODE_ANALYSIS »ó¼ö¸¦ Á¤ÀÇÇÏ°Ô µÇ´Âµ¥, CODE_ANALYSIS »ó¼ö°¡ Á¤ÀǵǸé SuppressMessage ¾ÖÆ®¸®ºäÆ®°¡ ¹ÙÀ̳ʸ®¿¡ Ãß°¡µÇ¾î ÀÚÄ© ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

Code Analysis ½ÇÇàÇϱâ
¿ì¼± ¾Õ¼­ ¼Ò°³ÇÑ ManagedDemo ¼Ö·ç¼ÇÀ» MSDN µµ¿ò¸»¿¡¼­ ´Ù¿î·Îµå¸¦ ¹Þ°Å³ª »õ·Î¿î C# ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ¿© ManagedDemo Äڵ带 ÀÛ¼ºÇÑ´Ù. »õ·Î¿î ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÇ¾ú´Ù¸é ¼Ó¼º âÀ» ¿­°í Enable Code Analysis (defines CODE_ANALYSIS constant) üũ »óÀÚ¸¦ ¼±ÅÃÇÏ°í ¼Ó¼ºÀ» ÀúÀåÇÑ´Ù. Code Analysis°¡ Ȱ¼ºÈ­µÇ¾î Àֱ⠶§¹®¿¡ ºôµå¸¦ ¼öÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ Error List â¿¡ ºôµå ¿À·ù°¡ º¸°íµÉ °ÍÀÌ´Ù.


¸¸¾à ManagedDemo¿Í µ¿ÀÏÇÑ Äڵ带 ÀÛ¼ºÇß´Ù¸é, ÃÑ 15°³ÀÇ ¿À·ù¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Error List âÀÇ »ó´Ü¿¡ º¸¸é, ErrorÀÇ ¼ö¿Í WarningÀÇ ¼ö, ±×¸®°í MessageÀÇ ¼ö¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç, ¹öưÀ» Ŭ¸¯ÇÏ¿© ƯÁ¤ ŸÀÔÀÇ ¿À·ù°¡ Ç¥½ÃµÇ°Å³ª Ç¥½ÃµÇÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖ´Ù. ±âº»ÀûÀ¸·Î Error List âÀº ¸ðµç ŸÀÔÀÇ ¿À·ù¸¦ Ç¥½ÃÇÑ´Ù.

¿À·ù ºÐ¼®Çϱâ
Code Analysis¸¦ ½ÇÇàÇÏ¿© ¹ß»ýÇÑ ¿À·ù´Â °íÀ¯ÇÑ ¿À·ù ¹øÈ£¸¦ °®´Â´Ù. ¿¹¸¦ µé¸é, À§ÀÇ ±×¸²¿¡¼­ 6¹ø °æ°í´Â CA1709¶ó´Â ¿À·ù ¹øÈ£¸¦ °®´Â´Ù. Description Ä®·³Àº °¢°¢ÀÇ °æ°í°¡ ¹ß»ýÇÑ ÀÌÀ¯¿¡ ´ëÇØ¼­ ¼³¸íÇϰí, File°ú LineÀº °¢°¢ ¼Ò½º ÆÄÀϰú ÁÙ ¹øÈ£¸¦ Ç¥½ÃÇÑ´Ù. ¸¹Àº °æ¿ì¿¡ Description¿¡ ¼³¸íµÈ ³»¿ë¸¸À¸·Îµµ °æ°í¸¦ ¾î¶»°Ô Á¦°ÅÇÒ °ÍÀÎÁö¸¦ ¾Ë ¼ö ÀÖÁö¸¸, ¸¸¾à ´õ ¸¹Àº Á¤º¸°¡ ÇÊ¿äÇÏ´Ù¸é °æ°í¸¦ ¼±ÅÃÇÑ ÈÄ F1À» ´­·¯ ¿À·ù ¹øÈ£¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ µµ¿ò¸»À» »ìÆìº¼ ¼ö ÀÖ´Ù. µµ¿ò¸»À» óÀ½ ÀÌ¿ëÇÏ´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ µµ¿ò¸»À» ¼±ÅÃÇÒ ¼ö Àִ âÀÌ ¶ß´Âµ¥, ÀϹÝÀûÀ¸·Î ¿Â¶óÀÎ µµ¿ò¸»À» ÀÌ¿ëÇÏ´Â °Íº¸´Ù´Â ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ µµ¿ò¸»ÀÌ ´õ ºü¸£±â ¶§¹®¿¡ ´ÙÀ½ ±×¸²¿¡¼­¿Í °°ÀÌ Use Local Help as primary source¸¦ ¼±ÅÃÇÑ ÈÄ, OK ¹öưÀ» Ŭ¸¯ÇÏ¿©, µµ¿ò¸»À» ½ÇÇàÇϵµ·Ï ÇÑ´Ù.


±×¸®°í ´ÙÀ½ ±×¸²°ú °°ÀÌ CA1709 °æ°í¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¾Õ¼­ ¼Ò°³ÇÑ ±×¸²¿¡´Â ³ªÅ¸³ªÁö ¾Ê¾ÒÁö¸¸, How to Fix Violations¶ó´Â Ç׸ñÀ» ÅëÇØ¼­ ¹ß»ýÇÑ °æ°í¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ÀÚ¼¼ÇÏ°í ¼Ò°³Çϰí ÀÖ´Ù. ÀÌ °æ¿ì¿¡´Â "Change the name so that it is cased correctly."¿Í °°ÀÌ ÇØ°áÃ¥À» Á¦½ÃÇϰí ÀÖ´Ù.


µµ¿ò¸»À» »ç¿ëÇϰųª DescriptionÀ» ÅëÇØ¼­ °æ°í¿¡ ´ëÇÑ ¿øÀÎÀ» ÆÄ¾ÇÇϰí ÇØ°áÃ¥ÀÌ ¶°¿Ã¶ú´Ù¸é, °æ°í°¡ ¹ß»ýÇÑ ÄÚµå·Î À̵¿ÇÏ¿© °æ°í¸¦ Á¦°ÅÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¸¸¾à ƯÁ¤ÇÑ °æ°íÀÇ °æ¿ì ±»ÀÌ Äڵ带 º¯°æÇÏ¿© Á¦°ÅÇÒ Çʿ䰡 ¾ø´Ù¸é, ´ÙÀ½°ú °°ÀÌ °æ°í¸¦ ¼±ÅÃÇÑ ÈÄ, ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» ´­·¯ Suppress Message(s) ¸Þ´º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.


6¹øÂ° °æ°í¿¡¼­ Suppress Message¸¦ ¼±ÅÃÇϸé, ´ÙÀ½°ú °°Àº Äڵ尡 demo Ŭ·¡½º À§¿¡ Ãß°¡µÈ´Ù.


[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
    public class demo : Exception
    {

        public static void Initialize(int size) { }
        protected static readonly int _item;
        public static int item { get { return _item; } }
    }

±×¸®°í ´ÙÀ½ ±×¸²°ú °°ÀÌ 6¹ø ÁÙÀº °æ°í°¡ »èÁ¦µÇ¾ú´Ù´Â Àǹ̷ΠÁÙÀÌ ±×¾îÁø´Ù.


ÇÏÁö¸¸ ¾Õ¼­ ¼³¸íÇÑ °Íó·³ ÀÌ¿Í °°ÀÌ SuppressMessage ¾ÖÆ®¸®ºäÆ®¸¦ »ç¿ëÇÏ¸é ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö Àֱ⠶§¹®¿¡ °¡´ÉÇÏ´Ù¸é, ÀûÀýÇÑ Á¶Ä¡¸¦ ÃëÇØ¼­ °æ°í¸¦ ¾ø¾Ö´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

Áö¸é»ó, °¢°¢ÀÇ ¸ðµç ¿À·ù¸¦ Á¦°ÅÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¼Ò°³ÇÏÁö´Â ¾Ê¾ÒÁö¸¸(´ëºÎºÐÀÇ ÇØ°á ¹æ¹ýÀº µµ¿ò¸»À» ÅëÇØ¼­ ¾òÀ» ¼ö ÀÖ´Ù), Code Analysis¸¦ ½ÇÇàÇØ¼­ ¾òÀº ´ëºÎºÐÀÇ °æ°í´Â °³¹ßÀÚ°¡ ÁÖÀǸ¦ ÇÑ´Ù¸é »çÀü¿¡ ¿¹¹æÀÌ °¡´ÉÇÏ´Ù. ¹°·Ð Àͼ÷ÇØ Áö±â À§Çؼ­´Â ¾î´À Á¤µµÀÇ ½Ã°£ÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ƯÈ÷ À̸§ ±Ô¾àÀÇ °æ¿ì¿¡´Â À̸§ ±Ô¾àÀ» Áö۱â À§Çؼ­ Áö±Ý±îÁöÀÇ ½ÃµµµÇ¾î¿Ô´ø ¸¹Àº ¹æ¹ýµé Áß °¡Àå °­·ÂÇÑ ±â´ÉÀÌ´Ù. Code Analysis¸¦ »ç¿ëÇÏ¿© ³ª»Û ÄÚµåÀÇ ÈçÀûÀ» ¿Ïº®ÇÏ°Ô Á¦°ÅÇØ º¸ÀÚ~!

ÇÊÀÚ ¼­¿ì¼®´ÔÀº Microsoft MVPÀ̸ç, ÇöÀç Ä«À̽ºÆ® ´ëÇпø ÀçÇÐ ÁßÀ̸ç, C°ü·Ã ÇÁ·Î±×·¡¹Ö¿¡ ´ÉÅëÇÏ´Ù.
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
[DDD ¨è] UI ÇÁ·ÎÅäŸÀÌÇÎ
[DDD ¨ç] µµ¸ÞÀÎ ÁÖµµ °³¹ß
°¡»óÈ­¿¡ ½ÇÆÐÇÏ´Â 10°¡Áö ÀÌÀ¯
[Ã¥¼Ò°³]ÇÁ¸®Á¨Å×ÀÌ¼Ç Á¨: »ý°¢À»...
[±â°í]±×¸° ½ºÅ丮Áö·Î °¡´Â±æ
[Ã¥¼Ò°³] À¥ °³¹ßÀÚ¸¦ À§ÇÑ ½ºÇÁ...
À©µµ¿ìCE µð¹ö±ë¿¡ °üÇÑ 12°¡Áö...
[Å×Å©º¸µå ½ÃÁð3]MS, ´ÑÅÙµµ À§(Wii)¿¡ 'ÃÊ´ëÇü ¾÷µ¥ÀÌÆ®'·Î ¸ÂºÒÀü [00:08:26]
±âȹ ·ùÁØ¿µ ±âÀÚ, ÁøÇà ¹ÚÀ±¹Ì, Á¦ÀÛ À¯È¸Çö PD
[CNET ¿µ¹®¹æ¼Û]3G¾ÆÀÌÆù ¸ÅÀ帶´Ù 'ºÏÀûºÏÀû'¡¦ÀϺΠ¸ÅÀå ǰ±ÍÇö»óµµ [00:01:56]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
Á¶Áßµ¿, ´ÙÀ½¿¡ ´º½º°ø±Þ Áß´Ü¡¦"...
º¸¾È°­È­ ±¸±Û ¡°À©µµ ¹ö¸®°í À¥À¸...
¡®³ªÈ¦·Î ¾×ƼºêX¡¯¡¦¼¼°è ÀÎÅͳݰú...
¡®À©µµXP¡¯½Ã´ë Æó¸·, »ç¿ëÀÚ¿¡°Ô...
ÀÎÅÍ³Ý ¹ðÅ· ºê¶ó¿ìÀú´Â µû·Î ÀÖ´Ù...
´ÙÀ½ vs Á¶Áßµ¿, Á¤¸éÃæµ¹·Î Ä¡...
ÆÃÅ©¿þ¾î, ¾ÆÀ̳ªºñ 7¿ù ¾÷µ¥ÀÌÆ®...
Çѱ¹IBM, 23ÀÏ 'ºò±×¸°2.0...
ÆÇµµ¶óTV, e½ºÆ÷Ã÷ ±¹°¡´ëÇ¥ ¼±...
ÆæÅ¸½Ã½ºÅÛ, BI ¼Ö·ç¼Ç »ç¾÷ °­...
½Ã¸¸ÅØ, ³×Æ®¿öÅ© Á¢±Ù Á¦¾î CC...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.