[Áöµð³ÝÄÚ¸®¾Æ]½Ã°£Àº È»ì °°´Ù´Â ¸»ÀÌ ºÎ½ ½Ç°¨³ª´Â ¿äÁòÀÔ´Ï´Ù. ´Ùµé ¿¬ÃÊ¿¡ ¼¼¿ü´ø °èȹÀº Àß Áö۰í ÀÖ´ÂÁö ¸ð¸£°Ú³×¿ä. ´Ù½Ã Çѹø ¼ûÀ» µ¹¸®°í µÚ¸¦ µ¹¾Æº¸¸ç ¾ÕÀ¸·Î ³ª°¥ ÈûÀ» ºñÃàÇØ¾ß ÇÒ ¶§ÀÔ´Ï´Ù.
À̹ø¿¡´Â ±×µ¿¾È ºñÁÖ¾ó ½ºÆ©µð¿À 6.0ÀÇ ÀÌ·±Àú·± Å×Å©´ÐÀ» ÀÌ¿ëÇØ ¾î·Æ°Ô ó¸®ÇØ¾ß Çß´ø ´Ù±¹¾î ÇÁ·Î±×·¡¹ÖÀÇ ¹®Á¦°¡ ´å³Ý¿¡¼´Â ¾ó¸¶³ª ½±°í ÆíÇÏ°Ô ¹Ù²î¾ú´ÂÁö ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
´å³ÝÀÌ Á¦°øÇØ ÁÖ´Â ¿©·¯ °¡Áö ÀÌÁ¡
´å³Ý¡¡ÇÁ·¹ÀÓ¿öÅ©´Â ¸®¼Ò½º¿Í °ü·ÃµÈ ¿©·¯ Ŭ·¡½º¿Í µµ±¸µéÀ» °¡Áö°í ÀÖ½À´Ï´Ù. º»°ÝÀûÀ¸·Î ¿¹Á¦¸¦ ÅëÇØ ´Ù±¹¾î ÇÁ·Î±×·¡¹ÖÀ» ¿¬½ÀÇØ º¸±â Àü¿¡ ¿ì¼± ±âº»ÀûÀÎ Áö½ÄÀ» ½×¾Æº¸±â·Î ÇÒ±î¿ä? ±× ù ¹øÂ°·Î ´ÙÀ½¿¡ ¼Ò°³ÇÏ´Â ³»¿ëÀº ¸®¼Ò½º °ü·Ã Ŭ·¡½ºµéÀÔ´Ï´Ù.
¡ß ¸®¼Ò½º °ü·Ã Ŭ·¡½ºµé
1. ResourceManager Ŭ·¡½º : ResourceManager´Â ½ÇÇà½Ã ÀûÀýÇÑ ¸®¼Ò½º¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇØÁִ Ŭ·¡½ºÀÔ´Ï´Ù. Áö¿ªÈµÈ ¸®¼Ò½º°¡ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì¿¡ ´ëºñÇØ ¾ð¾î Á߸³ÀûÀÎ ¸®¼Ò½º¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ¿ªÇÒÀ» Çϸç, CreateFileBasedResourceManager ¶ó´Â ¸Þ½îµå¸¦ ÀÌ¿ëÇÏ¸é ¾î¼Àºí¸® ³»ºÎ¿¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀº ¸®¼Ò½º¿¡ ´ëÇÑ Á¢±Ùµµ °¡´ÉÇÏ°Ô ÇØÁÝ´Ï´Ù.
2. ResourceWriter Ŭ·¡½º : ResourceWriter Ŭ·¡½º´Â ½Ã½ºÅÛÀÇ ±âº» Çü½Ä¿¡ ¸ÂÃß¾î ¸®¼Ò½º¸¦ ÆÄÀÏÀ̳ª ½ºÆ®¸²ÀÇ ÇüÅ·ΠÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. AddResource¶ó´Â ¸Þ½îµå¸¦ ÀÌ¿ëÇØ À̸§-°ªÀÇ Â¦ÀÇ ÇüÅ·Π°ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
3. ResourceReader Ŭ·¡½º : ResourceReader ¸®¼Ò½º ÆÄÀÏ, ½ºÆ®¸² µîÀ» ÀоîµéÀÏ ¼ö ÀÖ½À´Ï´Ù.
4. ResourceSet Ŭ·¡½º : ResourceSet Ŭ·¡½º´Â ƯÁ¤ ¹®È¿¡ ¸ÂÃç Áö¿ªÈµÈ ¸ðµç Á¾·ùÀÇ ¸®¼Ò½º¸¦ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ResourceManager¿Í´Â ´Þ¸® Áö¿ªÈµÈ ¸®¼Ò½º°¡ ¾øÀ» °æ¿ìÀÇ ´ëºñÃ¥Àº Á¦°øÇØ ÁÖÁö ¾Ê½À´Ï´Ù.
5. CultureInfo Ŭ·¡½º : CultureInfo Ŭ·¡½º´Â »ç¿ëÀÚÀÇ ÁÖ¾ð¾î, º¸Á¶¾ð¾î, ±¹°¡/Áö¿ª, ¹®È Ư¼º¿¡ µû¸¥ »ç¿ëÀÚÀÇ ¼±È£µµ¿¡ µû¸¥ Á¤º¸¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ ÀÌ¿ëÇØ ³¯Â¥ Çü½ÄÀ̳ª ½Ã°£ Çü½Ä, ¼ýÀÚ Çü½Ä, ¹®ÀÚ¿ÀÇ Á¤·Ä µîÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
6. RegionInfo Ŭ·¡½º : RegionInfo Ŭ·¡½º´Â ÃøÁ¤ÀÇ ´ÜÀ§¸¦ °áÁ¤Çϰí Áö¿ª Äڵ带 À̸§À¸·Î º¯È¯ÇÏ´Â ±âÁØÀ» Á¦°øÇÕ´Ï´Ù.
¶ÇÇÑ ¸®¼Ò½º °ü·Ã µµ±¸µé¿¡´Â ¾î¶² °ÍµéÀÌ ÀÖÀ»±î¿ä?
¡ß ¸®¼Ò½º °ü·Ã µµ±¸µé
1. Resgen.exe(¸®¼Ò½º ÆÄÀÏ »ý¼º À¯Æ¿¸®Æ¼) : ÅØ½ºÆ® ÆÄÀϰú .resx ÆÄÀÏÀ» .resources ÆÄÀÏ·Î º¯È¯½ÃÄÑÁÖ´Â À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. ¶ÇÇÑ .resources ÆÄÀÏÀ» ´Ù½Ã .resx ÆÄÀÏ·Î º¯È½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ À¯Æ¿¸®Æ¼¿¡ »ç¿ëµÇ´Â ÅØ½ºÆ® ÆÄÀÏÀº ASCII, UTF-8, UTF-16 µîÀÇ Çü½ÄÀÌ¸é µË´Ï´Ù.
2. Al.exe(¾î¼Àºí¸® ¸µÄ¿) : .resources ÆÄÀÏÀ» dll ÆÄÀÏ·Î º¯È½Ãų ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¸°Ô¸¸ ¸»¾¸µå¸®´Ï ´ëü ¹«½¼ ¸»À» ÇÏ´ÂÁö ¸ð¸£°Ú´Ù±¸¿ä? ¾Õ¿¡¼ °£·«È÷ ¼³¸íÇÑ Å¬·¡½ºµé°ú µµ±¸µéÀº ½ÇÁ¦ ¿¹Á¦¸¦ ÅëÇØ ±× »ç¿ë¹ýÀ» ¹è¿öº¸±â·Î ÇϰڽÀ´Ï´Ù.
ù ¹øÂ° ¿¹Á¦ - ´Ù±¹¾î Æû ¸¸µé±â
ºñÁÖ¾ó ½ºÆ©µð¿À ´å³ÝÀ» ½ÃÀÛÇØ LocalizationDemo1À̶ó´Â À̸§ÀÇ ¼Ö·ç¼ÇÀ» À©µµ¿ì ÀÀ¿ë ÇÁ·Î±×·¥ ÇüÅ·Π¸¸µì½Ã´Ù. ÀÌÈÄ Form1.cs¸¦ <ȸé 1>°ú °°ÀÌ ±¸¼ºÇØ ÇÁ·ÎÁ§Æ®¿¡ »õ·Î¿î Æû Form2.cs¸¦ Ãß°¡ÇØ º¾½Ã´Ù.
 | |  |
| <ȸé 1> Form1ÀÇ ±¸¼º | | <ȸé 2> Form2 Ãß°¡Çϱâ |
¡®´Ý±â¡¯ ¹öưÀÇ À̸§À» btnCloseFormÀ¸·Î Á¤Çϰí, Ŭ¸¯ÇÏ¸é ÆûÀÌ ´ÝÈ÷µµ·Ï ´ÙÀ½ÀÇ Äڵ带 Ãß°¡ÇØ µÓ½Ã´Ù.
this.Hide();
Áö¿ªÈ¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï Form2.csÀÇ ¼Ó¼º â¿¡¼ Localizable ¼Ó¼ºÀ» True·Î ¹Ù²Ù°í, Language Ư¼ºÀ» ±âº» °ª¿¡¼ ¿µ¾î·Î º¯°æÇØ º¾½Ã´Ù.
 | |  |
| <ȸé 3> ¿µ¾î¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ¼Ó¼ºÃ¢ º¯°æÇϱâ | | <ȸé 4> Language¸¦ ¿µ¾î·Î ¼³Á¤ÇßÀ» °æ¿ìÀÇ Form2 ±¸¼º |
Lanuage¸¦ ¿µ¾î·Î ¹Ù²Ù´Â ¼ø°£, ¸®¼Ò½º°¡ Ãß°¡µÈ´Ù´Â ¸Þ½ÃÁö ¹Ú½º°¡ ³ªÅ¸³ª¼ ÀÌÁ¦ µÎ ¾ð¾îÀÇ µðÀÚÀΠȯ°æÀÌ °¢°¢ ´Ù¸£°Ô °ü¸®µÈ´Ù´Â »ç½ÇÀ» ¾Ë·ÁÁÖ°Ô µË´Ï´Ù. ÀÌÁ¦ ´Ù½Ã Form1ÀÇ µðÀÚÀΠȯ°æÀ¸·Î µ¹¾Æ°¡ º¾½Ã´Ù. ÇÁ·Î±×·¥ ½ÃÀÛ ¹öưÀ» ´õºí Ŭ¸¯Çؼ ´ÙÀ½ÀÇ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
private void button1_Click(object sender, System.EventArgs e)
{
if( this.radioButton1.Checked )
{
//Get the Default installed culture
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.InstalledUICulture ;
}
else if( this.radioButton2.Checked )
{
//Get the English culture
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("en") ;
}
Form2 f2 = new Form2();
f2.Show();
}
ù ¹øÂ° ¶óµð¿À ¹öưÀÌ ¼±ÅÃµÉ °æ¿ì ½ÇÇàµÇ°í Àִ ȯ°æÀÇ ±âº» ·ÎÄÉÀÏÀ» µû¶ó ¸®¼Ò½º¸¦ ¼±ÅÃÇØ ÆûÀ» ·ÎµåÇÏ´Â °ÍÀ̰í, µÎ ¹øÂ° ¶óµð¿À ¹öưÀÌ ¼±ÅÃµÇ¸é ¿µ¾î ȯ°æ¿¡ ¸ÂÃçÁø ¸®¼Ò½º¸¦ ¼±ÅÃÇØ Æû¸¦ ·ÎµåÇÏ´Â ÄÚµåÀÔ´Ï´Ù. ¾ÕÀÇ Äڵ忡¼´Â ¾Õ¼ ¸»¾¸µå¸° CultureInfo Ŭ·¡½º°¡ »ç¿ëµÇ¾úÀ¸¸ç, ÇöÀç ½ÇÇà ÁßÀÎ ¾²·¹µåÀÇ UI¸¦ °áÁ¤Çϱâ À§ÇØ System.Threading.Thread.CurrentThread.CurrentUICulture¶ó´Â °ªÀ» ÀÌ¿ëÇϰí ÀÖ½À´Ï´Ù.
¿©±â±îÁö¸¸ »ìÆìº¸¾Æµµ ´å³ÝÀÌ ±âº»ÀûÀ¸·Î Á¦°øÇØÁÖ´Â Áö¿ªÈ µµ±¸°¡ »ó´çÈ÷ Æí¸®ÇØÁ³À½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¿¹Àü °°À¸¸é ±âº»ÀûÀÎ ¸®¼Ò½º ÆíÁý±â·Î´Â »ç½Ç ´Ù±¹¾î ÇÁ·Î±×·¡¹Ö¿¡ ÇÊ¿äÇÑ ¸®¼Ò½º¸¦ ÆíÁýÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇß½À´Ï´Ù. µÎ °¡Áö ¾ð¾îÀÇ ¸®¼Ò½º¸¦ °°ÀÌ ÀÔ·ÂÇÏ´Â °Í ÀÚü°¡ ºÒ°¡´ÉÇ߱⠶§¹®ÀÔ´Ï´Ù. ÇÏÁö¸¸ ´å³ÝÀº ÆûÀÇ Language ÇÁ·ÎÆÛƼ¸¦ ¹Ù²Ù´Â °Í¸¸À¸·Î °£´ÜÇÏ°Ô °¢°¢ÀÇ Culture¿¡ ´ëÇÑ ¸®¼Ò½º¸¦ µðÀÚÀΠȯ°æ¿¡¼ ÆíÁýÇÒ ¼ö ÀÖ´Â °·ÂÇÔÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¼Ò½ºÄÚµå ÀÚüµµ À¯´ÏÄÚµå·Î °ü¸®µÇ´Â Æí¸®ÇÔµµ Á¦°øÇÕ´Ï´Ù.
µÎ ¹øÂ° ¿¹Á¦ - ¹®ÀÚ¿ Áö¿ªÈÇϱâ
ÀÌÁ¦ µÎ ¹øÂ° ¿¹Á¦¸¦ ¸¸µé¾î º¾½Ã´Ù. ÇÁ·ÎÁ§Æ®ÀÇ À̸§À» LocalizationDemo2¶ó°í Çϰí, Form1À» <ȸé 5>°ú °°ÀÌ ±¸¼ºÇØ º¾½Ã´Ù.
 |
| <ȸé 5> ¿¹Á¦ 2ÀÇ Form1ÀÇ ±¸¼º |
µðÀÚÀΠȯ°æ¿¡¼ ÄÁÆ®·ÑÀ» Ãß°¡ÇÒ ¶§ ÀÚµ¿À¸·Î »ý¼ºµÈ Äڵ尡 <¸®½ºÆ® 1>ó·³ ³ªÅ¸³³´Ï´Ù. ÀÌÁß¿¡¼ À©µµ¿ì Æû µðÀÚÀ̳ʿ¡¼ »ý¼ºÇÑ ÄÚµå ºÎºÐÀ» ¿¾î Äڵ带 ±¸°æÇØ º¸¸é ¿©·¯ºÐÀÌ µðÀÚÀΠȯ°æ¿¡¼ ÇÑ ÀÛ¾÷ÀÌ ¾î¶»°Ô ÄÚµå·Î Ç¥½ÃµÇ¾ú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
| <¸®½ºÆ® 1> ÀÚµ¿À¸·Î »ý¼ºµÈ Form1.cs ¼Ò½ºÀÇ ÀϺΠ| | | |
/// »ç¿ë ÁßÀÎ ¸ðµç ¸®¼Ò½º¸¦ Á¤¸®ÇÕ´Ï´Ù.
protected override void Dispose( bool disposing )
{
if( disposing )
if(components ! = null)
{
component.Dispose();
}
}
base.Dispose( Disposing );
}
/// À©µµ¿ì Æû µðÀÚÀ̳ʿ¡¼ »ý¼ºÇÑ ÄÚµå
| |
 |
ÀÌÁ¦ ÇÁ·ÎÁ§Æ®¿¡ »õ Ç׸ñÀ» Ãß°¡ÇØ º¸°Ú½À´Ï´Ù. ¼Ö·ç¼Ç Ž»ö±âÀÇ ÇÁ·ÎÁ§Æ® ¸í¿¡¼ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇØ Ãß°¡ ¸Þ´º¿¡¼ »õ Ç׸ñ Ãß°¡¸¦ Ŭ¸¯ÇØ º¾½Ã´Ù. ÀÌ Áß ¡®¾î¼Àºí¸® ¸®¼Ò½º ÆÄÀÏ¡¯À» ¼±ÅÃÇØ »õ·Î »ý¼ºÇÕ´Ï´Ù(resource1.resx). ±×¸®°í <ȸé 6>, <ȸé 7>ó·³ resource1.resx¿¡ °ªÀ» Ãß°¡ÇØ º¾½Ã´Ù.
 |
| <ȸé 6> resource1.resx°¡ Ãß°¡µÈ ¸ð½À |
 |
| <ȸé 7> resource1.resx¿¡ °ªÀÌ Ãß°¡µÈ ¸ð½À |
ÇÁ·ÎÁ§Æ®¿¡ resource1.en-US.resx¶ó´Â À̸§ÀÇ ¾î¼Àºí¸® ¸®¼Ò½º ÆÄÀÏÀ» Ãß°¡ÇØ <ȸé 8>°ú °°ÀÌ ÆíÁýÇÕ´Ï´Ù.
 |
| <ȸé 8> resource1.en-US.resx ÆÄÀÏ |
ÀÌÁ¦ Form1.csÀÇ ¼Ò½º¸¦ ÆíÁýÇØ º¾½Ã´Ù. ¿ì¼± ´ÙÀ½ÀÇ ³×ÀÓ½ºÆäÀ̽ºµéÀ» Ãß°¡ÇÕ´Ï´Ù.
using System.Resources;
using System.Globalization;
using System.Threading;
¶ÇÇÑ ÄÁÆ®·ÑµéÀÌ ¼±¾ðµÈ ¾Æ·¡¿¡ ´ÙÀ½ÀÇ Äڵ带 Ãß°¡ÇÕ´Ï´Ù. ResourceManger Ŭ·¡½º¸¦ ÀÌ¿ëÇØ ´å³Ý¿¡¼ Á¦°øÇÏ´Â ±âº»ÀûÀÎ ¸®¼Ò½º Çü½ÄÀÎ .resx¸¦ ·ÎµåÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ÄÚµåÀÔ´Ï´Ù.
private ResourceManager m_ResourceManager = new ResourceManager("LocalizationDemo2.resource1",
System.Reflection.Assembly.GetExecutingAssembly());
private CultureInfo m_EnglishCulture = new CultureInfo("en-US");
private CultureInfo m_KoreanCulture = new CultureInfo("ko-KR");
´ÙÀ½ ÇÔ¼ö¸¦ Äڵ忡 Ãß°¡ÇØ ÁÖ°í, Form1ÀÇ »ý¼ºÀÚ¿¡¼ À̸¦ È£ÃâÇÕ´Ï´Ù. UpdateUI ÇÔ¼ö¸¦ È£ÃâÇϸé resx ÆÄÀϷκÎÅÍ ¸®¼Ò½º¸¦ Àоîµé¿© °¢ ÄÁÆ®·ÑÀÇ ¸®¼Ò½º¸¦ º¯°æÇÏ°Ô µË´Ï´Ù.
public Form1()
{
//
// À©µµ¿ì Æû µðÀÚÀÌ³Ê Áö¿ø¿¡ ÇÊ¿äÇÕ´Ï´Ù.
//
InitializeComponent();
UpdateUI();
//
// TODO: InitializeComponent¸¦ È£ÃâÇÑ ´ÙÀ½ »ý¼ºÀÚ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
//
}
:
:
private void UpdateUI()
{
lblName.Text = m_ResourceManager.GetString("lblName");
btnHello.Text = m_ResourceManager.GetString("btnHello");
optKorean.Text = m_ResourceManager.GetString("optKorean");
optEnglish.Text = m_ResourceManager.GetString("optEnglish");
}
¸¶Áö¸·À¸·Î ´ÙÀ½ÀÇ À̺¥Æ® Çڵ鷯µéÀ» Äڵ忡 Ãß°¡ÇØ ¶óµð¿À ¹öưÀ» Ŭ¸¯ÇßÀ» ¶§ ÇØ´ç ¾ð¾îÀÇ Àλ縻°ú ¸Þ´º°¡ ³ª¿Àµµ·Ï ¼öÁ¤ÇÕ´Ï´Ù.
private void optKorean_CheckedChanged(object sender, System.EventArgs e)
{
Thread.CurrentThread.CurrentUICulture = m_KoreanCulture;
UpdateUI();
}
private void optEnglish_CheckedChanged(object sender, System.EventArgs e)
{
Thread.CurrentThread.CurrentUICulture = m_EnglishCulture;
UpdateUI();
}
private void btnHello_Click(object sender, System.EventArgs e)
{
string message = String.Format(m_ResourceManager.GetString("greetingMessage"), txtName.Text);
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
¿Ï¼ºµÈ ÇÁ·Î±×·¥À» ½ÇÇàÇϸé <ȸé 9>, <ȸé 10>ó·³ Çѱ¹¾î ¿É¼ÇÀ» ¼±ÅÃÇßÀ» ¶§´Â Çѱ¹¾î Àλ縻ÀÌ, ¿µ¾î ¿É¼ÇÀ» ¼±ÅÃÇßÀ» ¶§´Â ¿µ¾î Àλ縻ÀÌ ³ª¿ÈÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
 | |  |
| <ȸé 9> Çѱ¹¾î ½ÇÇàȸé | | <ȸé 10> ¿µ¾î ½ÇÇàȸé |
´å³ÝÀÌ °¡Áø ´Ù±¹¾î ÇÁ·Î±×·¡¹ÖÀÇ Èû
Áö±Ý±îÁö »ìÆìº» ¹æ¹ýÀº À©µµ¿ì ȯ°æ ³»¿¡¼ ¸®¼Ò½º¸¦ ÆíÁýÇϰí À̸¦ ºÒ·¯¿À´Â ¹æ¹ýÀÔ´Ï´Ù. À̿ܿ¡µµ resgen.exe¸¦ ÀÌ¿ëÇØ ±âÁ¸ÀÇ .resx ÆÄÀÏÀ» .resource ÆÄÀÏ·Î º¯°æÇØ »õ·Î¿î ¸®¼Ò½º ÆÄÀÏÀ» ¸¸µé¾î³½ ÈÄ À̸¦ Al.exe¸¦ ÀÌ¿ëÇØ ¾ÖÇø®ÄÉÀ̼ǰú º°°³ÀÇ ¸®¼Ò½º dll·Î ¸®¼Ò½º¸¦ °ü¸®Çϱ⵵ ÇÕ´Ï´Ù. ¶ÇÇÑ ÅØ½ºÆ® ÆÄÀÏ¿¡ ¸®¼Ò½º¸¦ ÀúÀåÇϰí À̸¦ ºÒ·¯¿À´Â ¹æ¹ý¿¡ ´ëºñÇÑ Å¬·¡½ºµéµµ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
¾Õ¼ ¸»¾¸µå¸° °Íó·³ ´å³ÝÀº ±âÁ¸ÀÇ ºñÁÖ¾ó ½ºÆ©µð¿À 6.0ÀÌ ºÒ¿ÏÀüÇÏ°Ô Áö¿øÇÏ´ø ´Ù±¹¾î ÇÁ·Î±×·¡¹ÖÀ» ¼³°è ´Ü°è¿¡¼ºÎÅÍ ¿Ïº®ÇÏ°Ô Áö¿øÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. ´©±º°¡ Á¦°Ô ´Ù±¹¾î ÇÁ·Î±×·¥À» Çϳª Â¥¾ßÇÑ´Ù°í ¸»ÇÑ´Ù¸é Àú´Â ÁÖÀú¾øÀÌ ´å³ÝÀ» °³¹ßµµ±¸·Î ÅÃÇÒ °Í °°½À´Ï´Ù. ±× Æí¸®ÇÔÀ» ÇÑ ¹ø ¸Àº¸°í ³ª¸é ´Ù½Ã´Â ¿¹ÀüÀ¸·Î µ¹¾Æ°¥ ¼ö ¾ø¾î¼ ¸»ÀÌÁÒ.
Áö±Ý±îÁö ´Ù¼¸¹ø¿¡ °ÉÃÄ ºñÁÖ¾ó º£ÀÌÁ÷ 6.0, ºñÁÖ¾ó C++ 6.0, ºñÁÖ¾ó ½ºÆ©µð¿À ´å³ÝÀ» ÀÌ¿ëÇØ ´Ù±¹¾î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ °£·«ÇÏ°Ô »ìÆìº¸¾Ò½À´Ï´Ù. »ç½Ç ¿¬Àç¿¡¼ ´Ù·ïÁø ºÎºÐº¸´Ù ÈξÀ ´õ ¸¹Àº °ÍÀ» °í·ÁÇØ¾ß¸¸ Á¦´ë·Î µÈ ´Ù±¹¾î ÇÁ·Î±×·¥À» Çϳª ¸¸µé¾î³¾ ¼ö ÀÖ°ÚÁö¸¸, À̹ø ±Û·Î µ¶ÀÚ ¿©·¯ºÐµé²²¼ ´Ù±¹¾î ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ¿Í Áö½ÄÀ» °¡Á®°¬À¸¸é ÇÏ´Â °ÍÀÌ ÇÊÀÚÀÇ ÀÛÀº ¼Ò¸ÁÀÔ´Ï´Ù. ±×µ¿¾È ÀоîÁּż °¨»çÇÕ´Ï´Ù. µ¶ÀÚ ¿©·¯ºÐµé ¸ÅÀϸÅÀÏ ÇູÇÑ ³¯ µÇ½Ã°í, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¡¹Ö ½Ç·ÂÀÌ ºÎ½ºÎ½ ´Ã¾î³ª±æ ±â¿øÇØ º¾´Ï´Ù. @