[Áöµð³ÝÄÚ¸®¾Æ]¿©·¯ºÐÀº ¾ó¸¶³ª ¸¹Àº ÁÖ¼®À» ÀÛ¼ºÇմϱî? ±×¸®°í ÁÖ¼®À» ¾î¶² ¿ëµµ·Î »ç¿ëÇϽʴϱî? ÁÖ¼®À» ÀÛ¼ºÇØ¾ß ÇÏ´ÂÁö, ¶Ç´Â ¸»¾Æ¾ß ÇÏ´ÂÁö¿¡ ´ëÇÑ ³íÀÇ´Â »ó´çÈ÷ ¿À·£ ½Ã°£ µ¿¾È Áö¼ÓµÇ¾î ¿ÔÀ¸¸é¼µµ ¿©ÀüÈ÷ °á·ÐÀÌ ³»·ÁÁú °¡´É¼ºÀÌ ±×·¸°Ô ¸¹Áö ¾Ê¾Æ º¸ÀÌ´Ù. ±× ¿¾³¯ ¼ÒÅ©¶óÅ×½º°¡ Á¦Àڵ鿡°Ô ÁÖ¼®À» ÀÛ¼ºÇÏ´Â °ÍÀÌ ¿ÇÀº°¡¿¡ ´ëÇÑ Áú¹®À» ÇßÀ» ¶§, ÇÑ Á¦ÀÚ´Â ÄÚµåÀÇ À¯Áö º¸¼ö Ãø¸é¿¡¼ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù°í ÁÖÀåÇϰí, ¶Ç ´Ù¸¥ Á¦ÀÚ´Â Äڵ尡 ¸ðµç °ÍÀ» ¸»ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù°í ÁÖÀåÇÑ´Ù.
°³ÀÎÀûÀ¸·Î´Â ¸Å¿ì ¾î·Á¿î ¾Ë°í¸®ÁòÀÌ ¾Æ´Ñ ÀÌ»ó ÁÖ¼®À» ÀÛ¼ºÇÒ Çʿ䰡 °ÅÀÇ ¾øÀ¸¸ç, ÁÖ¼®À» ÀÛ¼ºÇØ¾ß ÇÒ ¸¸Å º¹ÀâÇÑ ¸ðµâÀº ¸®ÆÑÅ丵À» ÅëÇØ¼ ½º½º·Î¸¦ ¼³¸íÇÒ ¼ö ÀÖ´Â(Self-Document) º¸´Ù ÀÛÀº ¸ðµâ·Î ³ª´©¾îÁ®¾ß ÇÑ´Ù°í »ý°¢ÇÑ´Ù. Áö±Ý±îÁö ÀÌ·¯ÇÑ ³íÀǰ¡ ²÷ÀÌÁö ¾Ê¾Ò´ø ÀÌÀ¯ Áß Çϳª´Â ÁÖ¼®ÀÌ ÄÚµå ¹ÛÀ¸·Î ³ª¿ÀÁö ¸øÇϰí ÄÚµå ³»¿¡¼¸¸ Á¸ÀçÇÑ´Ù´Â °¡Á¤ÀÌ ÀÖ¾ú±â ¶§¹®ÀÌ´Ù. ¸¸¾à ÁÖ¼®À» ÅëÇØ¼ Äڵ带 Á÷Á¢ »ìÆìº¸Áö ¾Ê°í ÀÌÇØÇÒ ¼ö ÀÖÀ» Á¤µµÀÇ ¹®¼È°¡ °¡´ÉÇß´Ù¸é, ¾Æ¸¶µµ ÁÖ¼®ÀÌ ±×·¸°Ô õ´ë¹ÞÁö´Â ¾Ê¾ÒÀ» °ÍÀÌ´Ù.
C#Àº °³¹ßÀÚ¿¡°Ô ÁÖ¼®À» ÀÛ¼ºÇÒ °ÍÀ» Àû±ØÀûÀ¸·Î ±ÇÀåÇϰí ÀÖ´Ù. ±×¸®°í °³¹ßÀÚÀÇ ±×·¯ÇÑ ¼ö°í·Î¿òÀ» ¹®¼ ÆÄÀÏ(document file)À̶ó´Â ÇüÅ·Πº¸´äÇÑ´Ù. ¹®¼ ÆÄÀÏÀº XML(Extensible markup Language) Æ÷¸ËÀ¸·Î ÁÖ¼®À» ÀÛ¼ºÇÏ¿© »ý¼ºÇÒ ¼ö ÀÖ´Ù. »ý¼ºµÈ ¹®¼ ÆÄÀÏÀÇ Æ÷¸Ëµµ XMLÀ̱⠶§¹®¿¡ »ç¿ëÀÚ°¡ ¿øÇÏ´Â ´Ù¸¥ ÇüÅ·Πº¯È¯ÀÌ °¡´ÉÇÏ´Ù. ºñ·Ï Visual Studio°¡ Á¦°øÇÏ´Â IntelliSense ±â´ÉÀÇ µµ¿òÀ» ¹ÞÀ¸¸é XML ÁÖ¼®À» º¸´Ù ½±°í ºü¸£°Ô ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸, ¹®¼ ÆÄÀÏÀ» »ý¼ºÇÏ´Â ±â´ÉÀº C# ÄÄÆÄÀÏ·¯ÀÇ ±â´É(/doc ¿É¼Ç)À̱⠶§¹®¿¡ Visual Studio°¡ ¾øÀ̵µ ¼Ò½º ÆÄÀÏÀ» ÄÄÆÄÀÏÇÏ´Â °Í¸¸À¸·Îµµ »ý¼ºÀÌ °¡´ÉÇÏ´Ù.
ÁÖ¼® ÀÛ¼º
C#¿¡¼ ÁÖ¼®Àº /* ... */ ¶Ç´Â // À¸·Î ½ÃÀÛÇÑ´Ù. ¹Ý¸é¿¡ ¹®¼ ÁÖ¼®Àº /// ¶Ç´Â /**·Î ½ÃÀÛÇÑ´Ù. ¹®¼ ÁÖ¼®Àº ÀÏ¹Ý ÁÖ¼®°ú ´Þ¸® »ç¿ëÀÚ ÁöÁ¤ ŸÀÔ(Ŭ·¡½º, µ¨¸®°ÔÀÌÆ®, ÀÎÅÍÆäÀ̽º)°ú ¸â¹ö(Çʵå, À̺¥Æ®, ¼Ó¼º, ¸Þ¼µå)À§¿¡ ÀÛ¼ºµÇ¾î¾ß ÇÑ´Ù. ¾Õ¼ ¼³¸íÇßµíÀÌ, ¹®¼ ÁÖ¼®Àº XML Æ÷¸Ë(http://www.w3.org/TR/REC-xml)À» µû¸£±â ¶§¹®¿¡, Á¤ÇüȵÈ(well-formed) ÇüŸ¦ À¯ÁöÇØ¾ß ÇÑ´Ù. ¿ì¼± °£´ÜÇÑ ¿¹¸¦ ÅëÇØ¼ ¹®¼ ÁÖ¼®ÀÇ ½Çü¸¦ È®ÀÎÇØ º¸°Ú´Ù.
/// <remarks><c>Point</c> Ŭ·¡½º´Â 2Â÷¿ø »óÀÇ Á¡(point)À»
/// ³ªÅ¸³½´Ù.</remarks>
public class Point
{
/// <remarks><c>draw</c> ¸Þ¼µå´Â Á¡À» ±×¸°´Ù.</remarks>
void draw() { }
}
ÀÌ Äڵ忡¼ ¹®¼ ÁÖ¼®À» ÀÛ¼ºÇϱâ À§Çؼ »ç¿ëµÈ ű״ <remarks>¿Í <c>ÀÌ´Ù. Àá½Ã ÈÄ¿¡ ¹®¼ ÁÖ¼®¿¡ »ç¿ëµÇ´Â ű׵éÀ» ¼Ò°³ÇϰÚÁö¸¸, <remarks> ű״ ŸÀÔ¿¡ ´ëÇÑ ¼³¸íÀ» ±â¼úÇϰí, <c>´Â ÄÚµå·Î ³ªÅ¸³¾ ÅØ½ºÆ®¸¦ °¡¸®Å²´Ù. Visual Studio¿¡¼ ¹®¼È ÆÄÀÏÀ» »ý¼ºÇϱâ À§Çؼ´Â ´ÙÀ½ ±×¸²°ú °°ÀÌ ÇÁ·ÎÁ§Æ® ¿É¼Ç âÀÇ ºôµå ÅÇ¿¡¼ XML document file üũ »óÀÚ¸¦ ¼±ÅÃÇÑ´Ù.
±×¸®°í Visual Studio´Â ¹®¼ ÁÖ¼®À» Áö¿øÇϹǷÎ, ÁÖ¼®À» Ãß°¡ÇϰíÀÚ Çϴ ŸÀÔÀ̳ª ¸â¹ö À§¿¡¼ ///¸¦ ÀÔ·ÂÇϸé ÀÚµ¿À¸·Î <summary> ű׸¦ »ý¼ºÇÑ´Ù. ¸¸¾à ±âÁ¸¿¡ ÀÛ¼ºµÈ ÁÖ¼®¿¡ »õ·Î¿î ű׸¦ Ãß°¡ÇÏ´Â °æ¿ì¶ó¸é, ´ÙÀ½ ±×¸²°ú °°ÀÌ IntelliSense ±â´ÉÀÌ È°¼ºÈµÇ¾î »óȲ¿¡ ¸Â´Â ű׸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
ÁÖ¼®À» ÀÛ¼ºÇÏ°í ¿É¼ÇÀ» ¼³Á¤ÇÑ ÈÄ ºôµå¿¡ ¼º°øÇϸé Debug Æú´õ¿¡ <ÇÁ·ÎÁ§Æ® À̸§>.xml°ú °°Àº ÇüÅÂÀÇ XML ÆÄÀÏÀÌ »ý¼ºµË´Ï´Ù. ´ÙÀ½ ÄÚµå´Â »ý¼ºµÈ XML ÆÄÀÏ Áß¿¡¼ Point Ŭ·¡½º¿Í °ü·ÃµÈ ºÎºÐÀÌ´Ù.
<member name="T:XMLDocument.Point">
<remarks><c>Point</c> Ŭ·¡½º´Â 2Â÷¿ø »óÀÇ Á¡(point)À»
³ªÅ¸³À´Ï´Ù.</remarks>
</member>
<member name="M:XMLDocument.Point.draw">
<remarks><c>draw</c> ¸Þ¼µå´Â Á¡À» ±×¸³´Ï´Ù.</remarks>
</member>
<member>¶ó´Â »õ·Î¿î űװ¡ Ãß°¡µÈ Á¡À» Á¦¿ÜÇÏ¸é ¿ø·¡ Äڵ忡 ÀÖ´ø ű׵éÀ» ±×´ë·Î ÀÛ¼ºµÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. »ý¼ºµÈ XML ¹®¼ ÁÖ¼®Àº XSLT(Extensible Stylesheet Language Transformation)µîÀ» »ç¿ëÇÏ¿© »õ·Î¿î ÇüÅÂÀÇ ¹®¼·Î º¯È¯ÀÌ °¡´ÉÇÏ´Ù.
¹®¼ ÁÖ¼®¿¡ ´ëÇÑ ±ÇÀå ű×
¹®¼ ÁÖ¼®¿¡ »ç¿ëµÇ´Â ű״ Á¦ÇÑÀÌ ¾ø½À´Ï´Ù(È®À强 °í·Á). °³¹ßÆÀ¸¶´Ù ¿øÇϴ ű׸¦ ¸¸µé¾î¼ »ç¿ëÇÑ ÈÄ, »ý¼ºµÈ XMLÀ» Àç°¡°øÇÏ¿© »ç¿ëÇÏ¸é µÈ´Ù. ÇÏÁö¸¸ MS´Â ÀϹÝÀûÀ¸·Î °³¹ßÀÚ¿¡°Ô ´ÙÀ½°ú °°Àº ű׵éÀ» ±ÇÀåÇϰí ÀÖ´Ù.
| |
| | ÅÂ±× | ¿ëµµ | | <c> | ¼³¸í¿¡ ÀÖ´Â ÅØ½ºÆ®¸¦ ÄÚµå·Î Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. | | <code> | ¿©·¯ ÁÙÀ» ÄÚµå·Î Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. | | <example> | ¸Þ¼µå³ª ±âŸ ¶óÀ̺귯¸® ¸â¹öÀÇ »ç¿ë ¹æ¹ý¿¡ ´ëÇÑ ¿¹Á¦¸¦ ÁöÁ¤ÇÕ´Ï´Ù. | | <exception> | throwÇÒ ¼ö ÀÖ´Â ¿¹¿Ü¸¦ <exception> ű׿¡ ÁöÁ¤ÇÕ´Ï´Ù. | | <include> | ¼Ò½º ÄÚµåÀÇ Çü½Ä°ú ¸â¹ö¸¦ ¼³¸íÇÏ´Â ´Ù¸¥ ÆÄÀÏÀÇ ÁÖ¼®À» ÂüÁ¶ÇÕ´Ï´Ù. | | <list> | ¸®½ºÆ®³ª Å×À̺íÀ» »ý¼ºÇÕ´Ï´Ù. | | <para> | <summary>, <remarks> ¶Ç´Â <returns> °°Àº ÅÂ±× ³»¿¡¼ »ç¿ëÇÏ¿© ÅØ½ºÆ®¿¡ ±¸¹®À» Ãß°¡ÇÕ´Ï´Ù. | | <param> | ¸Å°³ º¯¼ö¸¦ ¼³¸íÇÕ´Ï´Ù. | | <paramref> | ƯÁ¤ ´Ü¾î°¡ ¸Å°³ º¯¼öÀÓÀ» ³ªÅ¸³À´Ï´Ù. | | <permission> | ¸â¹ö ¾×¼¼½º¸¦ ¹®¼ÈÇÕ´Ï´Ù. | | <remarks> | Çü½Ä¿¡ ´ëÇÑ Á¤º¸¸¦ Ãß°¡ÇÏ¿© <summary>¿¡ ÁöÁ¤ÇÑ Á¤º¸¸¦ º¸ÃæÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. | | <returns> | ¹Ýȯ °ªÀ» ¼³¸íÇÕ´Ï´Ù. | | <see> | ÅØ½ºÆ® ³»ºÎ¿¡¼ ¸µÅ©¸¦ ÁöÁ¤ÇÕ´Ï´Ù | | <seealso> | Âü°í Ç׸ñ ºÎºÐ¿¡ ³ªÅ¸³ª´Â ÅØ½ºÆ®¸¦ ÁöÁ¤ÇÕ´Ï´Ù. | | <summary> | Çü½Ä ¶Ç´Â Çü½Ä ¸â¹ö¸¦ ¼³¸íÇÕ´Ï´Ù. | | <value> | ¼Ó¼ºÀ» ¼³¸íÇÕ´Ï´Ù. | <MSDN ¶óÀ̺귯¸® Âü°í> | | | | |
| |
NDocÀ» ÀÌ¿ëÇÑ µµ¿ò¸» ÆÄÀÏ »ý¼º
Áö±Ý±îÁö ¹®¼ ÁÖ¼®ÀÌ ¹«¾ùÀÌ°í ¹®¼ ÁÖ¼®À» ÀÌ¿ëÇÏ¿© XML ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ »ìÆìº¸¾Ò´Ù. ¸¶Áö¸·À¸·Î »ý¼ºµÈ XML ¹®¼ ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© MSDN ¶óÀ̺귯¸®¿Í °°Àº µµ¿ò¸» ÆÄÀÏÀ» »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¼Ò°³ÇϰڴÙ. XML ¹®¼ ÆÄÀÏÀ» µµ¿ò¸» ÆÄÀÏ·Î º¯È¯Çϱâ À§Çؼ NDoc(http://ndoc.sourceforge.net)À» »ç¿ëÇÒ °ÍÀÌ´Ù. NDocÀº .NET ¾î¼Àºí¸®¿Í XML ¹®¼ ÆÄÀÏÀ» »ç¿ëÇÏ¿© Ŭ·¡½º ¶óÀ̺귯¸® ¹®¼¸¦ »ý¼ºÇÏ´Â ÅøÀÌ´Ù(¾ÈŸ±õ°Ôµµ .NET 2.0À» Áö¿øÇÏÁö´Â ¾Ê±â ¶§¹®¿¡, NDocÀ» ½ÇÇàÇϱâ À§Çؼ .NET 1.1 ÀÌÇÏÀÇ ¹öÀüÀÌ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù).
NDocÀ» ¼³Ä¡ÇÑ ÈÄ, ½ÇÇà½ÃŰ¸é »õ·Î¿î ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµË´Ï´Ù. NDocÀº ÀÚü ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» °ü¸®ÇÏÁö¸¸, Visual Studio ¼Ö·ç¼Ç ÆÄÀÏ(.sln)À» ÀÌ¿ëÇÏ¿© »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÒ ¼ö Àֱ⠶§¹®¿¡, µµ¿ò¸» ÆÄÀÏÀ» »ý¼ºÇϰíÀÚ ÇÏ´Â ¼Ö·ç¼Ç ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù. µµ¿ò¸» ÆÄÀÏÀ» »ý¼ºÇϱâ Àü¿¡, ¿©·¯ °¡Áö ¿É¼ÇÀ» ¼±ÅÃÇÏ¿© ÃÖÁ¾ ¿Ï¼ºµÉ ÆÄÀÏ¿¡ Ç¥½ÃµÉ Ç׸ñµéÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ±×¸²Àº NDoc¿¡¼ XMLDocument ¼Ö·ç¼ÇÀ» ¿¾úÀ» ¶§ÀÇ ¸ð½ÀÀÌ´Ù.
¼³Á¤À» ¿Ï·á ÇÑ ÈÄ, Document ¸Þ´ºÀÇ Build ¸Þ´º¸¦ ¼±ÅÃÇÏ¸é µµ¿ò¸» ÆÄÀÏÀ» »ý¼ºÇϱâ À§ÇÑ ºôµå ÀÛ¾÷ÀÌ ½ÃÀ۵ǰí, ÃÖÁ¾ ¿Ï¼ºµÈ ÆÄÀÏÀº Document ¸Þ´ºÀÇ View ¸Þ´º¸¦ ¼±ÅÃÇÏ¿© È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¿Ï¼ºµÈ µµ¿ò¸» ÆÄÀÏÀº ´ÙÀ½ ±×¸²°ú °°½À´Ï´Ù. ÇѱÛÀÌ Áö¿øµÇÁö ¾Ê¾Æ ±úÁö´Â ¸ð½ÀÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ÇÊÀÚ ¼¿ì¼®´ÔÀº Microsoft MVPÀ̸ç, ÇöÀç Ä«À̽ºÆ® ´ëÇпø ÀçÇÐ ÁßÀ̸ç, C°ü·Ã ÇÁ·Î±×·¡¹Ö¿¡ ´ÉÅëÇÏ´Ù.