¼Ò¼³°°ÀºC#  Á¦3°­ÀÇ C# ½ÃÀÛÇϱ⠠03. ³×ÀÓ½ºÆäÀ̽º¿Í ¾î¼Àºí¸®  

 

 

3.3 ³×ÀÓ½ºÆäÀ̽º¿Í ¾î¼Àºí¸®

 

ÀÌ Àý¿¡¼­´Â ³×ÀÓ½ºÆäÀ̽º¸¦ ÀÌ¿ëÇÏ°í ¶óÀ̺귯¸®¸¦ Á÷Á¢ ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. 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°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü