ÀÌ Àý¿¡¼´Â ³×ÀÓ½ºÆäÀ̽º¸¦ ÀÌ¿ëÇÏ°í ¶óÀ̺귯¸®¸¦ Á÷Á¢ ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. C# ÇÁ·Î±×·¥¿¡¼ ÄÄÆÄÀÏÀ» ÅëÇØ¼ ¸¸µé ¼ö ÀÖ´Â ÆÄÀÏÀº exe¿Í dll ÇüÅÂÀÇ ÆÄÀÏÀÔ´Ï´Ù. exe ÆÄÀÏÀº ÇÁ·Î±×·¥ÀÇ ÁøÀÔÁ¡À» Æ÷ÇÔÇϰí ÀÖ´Â ÇüÅÂÀ̸ç ÁøÀÔÁ¡À» Æ÷ÇÔÇÏÁö ¾Ê´Â ¼ø¼öÇÑ ¶óÀ̺귯¸® Çüŵµ ÀÖ½À´Ï´Ù. ÁøÀÔÁ¡ÀÌ ÀÖ´Ù´Â °ÍÀº Main() ¸Þ¼µå¸¦ Æ÷ÇÔÇÏ´À³Ä ÇÏÁö ¾Ê´À³ÄÀÇ ¹®Á¦ÀÔ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ½ÇÇà ÆÄÀÏ ÇüÅ·Π¸¸µé°í ½Í´Ù¸é ¹Ýµå½Ã ÁøÀÔÁ¡À» Æ÷ÇÔÇÏ´Â Main() ¸Þ¼µå¸¦ Æ÷ÇÔ ÇØ¾ß ÇÕ´Ï´Ù.
|
¢Ã C#ÇÁ·Î±×·¥ÀÇ Á¾·ù |
|
q ÁøÀÔÁ¡À» Æ÷ÇÔÇÑ ÇüÅÂÀÇ ½ÇÇà ÆÄÀÏ(exe) q ÁøÀÔÁ¡À» Æ÷ÇÔÇÏÁö ¾Ê´Â ¶óÀ̺귯¸® ÇüÅÂÀÇ ÆÄÀÏ(dll) q exe³ª dllÀº ¸ðµÎ Áß°£¾ð¾î(IL) ÇüÅ·ΠµÇ¾î ÀÖ´Ù. |
ÄÄÆÄÀÏÀ» ÅëÇØ¼ ³ª¿Â °á°ú ÆÄÀÏÀ» C#¿¡¼´Â ¾î¼Àºí¸®(Assembly)¶ó°í ºÎ¸¨´Ï´Ù. Å©°Ô º»´Ù¸é ÁøÀÔÁ¡À» ÀÖ´Â ÇüÅÂÀÌµç ¾Æ´Ïµç ÀÏ´ÜÀº ¾î¼Àºí¸® ÇüÅ·Π¹ÀÌ°Ô µË´Ï´Ù. ¾Õ Àý¿¡¼ HelloWorld.cs¸¦ ÄÄÆÄÀÏÇÏ¿© ¸¸µé¾îÁø HelloWorld.exe ¶ÇÇÑ ¾î¼Àºí¸®°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ÀÌ ¾î¼Àºí¸® ³»¿¡ Àִ Ŭ·¡½ºµéÀº ³×ÀÓ½ºÆäÀ̽º(namespace)¸¦ ÅëÇØ¼ ±¸ºÐÇÏ°Ô µË´Ï´Ù.
|
¢Ã C#ÀÇ ¾î¼Àºí¸®(Assembly) |
|
q C#ÀÇ ¾î¼Àºí¸®´Â Áß°£¾ð¾î ÇüŵéÀÇ ÁýÇÕÀ̶ó°í ºÎ¸¦ ¼ö ÀÖ´Ù. q ÀÚ¹ÙÀÇ ÆÐŰÁö¿Í ºñ½ÁÇÑ °³³ä q ¾î¼Àºí¸® ³»¿¡¼ °¢°¢ÀÇ Å¬·¡½ºµéÀ» ±¸ºÐÇÏ´Â ±âÁØÀÌ ³×ÀÓ½ºÆäÀ̽º(namespace)ÀÌ´Ù. |
±×·¸´Ù¸é ³×ÀÓ½ºÆäÀ̽º(namespace)¸¦ ¾î¶»°Ô »ç¿ëÇÒ±î¿ä? ´ÙÀ½Àº C# ³×ÀÓ½ºÆäÀ̽ºÀÇ »ç¿ëÇÏ´Â ¿¹¸¦ º¸¿© ÁÖ°í ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼´Â ÁøÀÔÁ¡ÀÌ ¾ø´Â ´Ü¼øÇÑ ¶óÀ̺귯¸® ÇüÅÂÀÇ ¾î¼Àºí¸®¸¦ ¸¸µéµµ·Ï ÇϰڽÀ´Ï´Ù.
|
& |
Person.cs |
Ü namespace¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦ |
|
namespace aaa { namespace bbb { namespace ccc { public class Person { public int age; public long height; public float weight; }//class }//ccc }//bbb }//aaa | ||
|
C:\C#Example\03>csc /target:library /out:Person.dll Person.cs C:\C#Example\03>dir *.dll C:\C#Example\03 µð·ºÅ͸® 3,072 Person.dll 1°³ ÆÄÀÏ 3,072 ¹ÙÀÌÆ® 0 µð·ºÅ͸® 4,015,730,688 ¹ÙÀÌÆ® ³²À½ | ||
³×ÀÓ½ºÆäÀ̽º aaa¾È¿¡ ³×ÀÓ½ºÆäÀ̽º bbb¸¦ ¸¸µé°í, ¶Ç ±× ¾È¿¡ ³×ÀÓ½ºÆäÀ̽º ccc¸¦ ¸¸µç ÈÄ, PersonÀ̶ó´Â Ŭ·¡½º¸¦ ¸¸µé¾ú½À´Ï´Ù. ³×ÀÓ½ºÆäÀ̽º´Â À§ÀÇ ¿¹¸¦ º¸µíÀÌ ¿µ¿ªÀ» ±¸ºÐÇϴµ¥ »ç¿ëµÇÁö ±× ¿Ü Ưº°ÇÑ Àǹ̴ ¾ø½À´Ï´Ù. PersonŬ·¡½º´Â ¸â¹öÇʵå age, height, weight¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
ÄÄÆÄÀÏ ¿É¼ÇÀ» ÁÖÀÇÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ¸ÕÀú ÇѰ¡Áö »ó½ÄÀ¸·Î ¾Ë¾Æ µÑ »çÇ×Àº À§ Äڵ忡´Â Main() ¸Þ¼µå Áï, ÇÁ·Î±×·¥ ÁøÀÔÁ¡ÀÌ ¾ø±â ¶§¹®¿¡ exe ÆÄÀÏÀº ¸¸µé ¼ö ¾ø½À´Ï´Ù. ¿©±â¼´Â Person.cs¸¦ C# ¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾î ÁÖ´Â ÄÄÆÄÀÏ ¹æ¹ýÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. Áï, /target¿¡¼ library¸¦ ¸¸µé¾îÁÖ°Ú´Ù°í ¸í½ÃÇϰí /out¿¡¼ ÄÄÆÄÀϽà »ý¼ºµÉ dll ¸íÀ» ÀÔ·ÂÇÏ¿´½À´Ï´Ù.
n csc /target:library /out:Person.dll Person.cs
À§¿Í °°ÀÌ ÄÄÆÄÀÏ ÇÔÀ¸·Î½á Person.dllÀÇ ¾î¼Àºí¸®¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. Persion Ŭ·¡½º´Â ³×ÀÓ½ºÆäÀ̽º aaa.bbb.ccc ¼Ò¼ÓÀ̸ç Person.dllÀÇ ¾î¼Àºí¸®ÀÇ ÀϺκÐÀÌ µÈ °ÍÀÔ´Ï´Ù. ´ÙÀ½ Àý¿¡¼´Â Person.dll ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦3°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |