°Á Àü Å¿ÀÀÇ Àâ´ã>
»çÀÌÆ®¸¦ ½ÃÀÛÇÑ Áöµµ ¾î´Àµ¡ 10³â°¿¡ À̸£¸£°í Àֳ׿ä. ±× »çÀÌ Àúµµ ³ªÀ̸¦ ¸¹ÀÌ ¸Ô¾î¹ö·È½À´Ï´Ù.
óÀ½ ½ÃÀÛÇÒ ¶§´Â ¿Á¤µµ ³ô¾Ò°í, ü·Âµµ »ó´çÇߴµ¥.. 10³âÀ̶õ ¼¼¿ùÀº Àú¸¦ ¸¹ÀÌ ´Ä°Ô(?) ¸¸µé¾ú³×¿ä ¤¾¤¾
ÇÏÁö¸¸, ¿Á¤Àº ¾ÆÁ÷ ³²¾ÆÀÖ½À´Ï´Ù. ºñ·Ï ¾÷µ¥ÀÌÆ®°¡ ´Ê´Ù ÇÏ´õ¶óµµ ¸»ÀÔ´Ï´Ù.
Àú¿¡°Ô ÈûÀ» ÁÖ¼¼¿ä ^^ ¿©·¯ºÐÀÇ °Ý·Á´Â Á¦°Ô Å« ÈûÀÌ µË´Ï´Ù. ¤Ì¤Ì
It ain't over 'til it's over - ¿µÈ [·ÏŰ] Áß¿¡¼ -
ASP.NET·Î °³¹ßÇÏ´Â ¸¹Àº °³¹ßÀÚ ºÐµéÀÌ ±¸¼º Á¤º¸ ÆÄÀÏÀÎ web.config ÆÄÀÏ¿¡ ¾î´À Á¤µµ Àͼ÷ÇØ ÀÖÀ» °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù. ´Ùµé ¾Æ½Ã´Ù½ÃÇÇ, ÀÌ ÆÄÀÏÀº À¥ »çÀÌÆ®ÀÇ ´Ù¾çÇÑ ±¸¼º Á¤º¸µéÀ» ÀúÀåÇØ³õ´Â ¿ªÇÒÀ» ÇÏÁÒ. µ¥ÀÌÅͺ£À̽º ¿¬°á ¹®ÀÚ¿(ÁÖ·Î)ºÎÅÍ À¥ »çÀÌÆ®ÀÇ ´Ù¾çÇÑ ¼³Á¤µéÀ» ÀÌ ÆÄÀÏ¿¡ ÀúÀåÇØ ³õ°ï Çϴµ¥¿ä. À̹ø °Á¿¡¼´Â ÀÌ ±¸¼º ÆÄÀÏ¿¡ ¿ì¸®¸¸ÀÇ »ç¿ëÀÚ Á¤ÀÇ ±¸¼º ¼½¼ÇÀ» º°µµ·Î Á¦ÀÛÇÏ¿© ±¸¼ºÁ¤º¸µéÀ» Á÷°üÀûÀ¸·Î ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϰíÀÚ ÇÕ´Ï´Ù.
±×·¯´Ï±ñ, ¿¹¸¦ µé¸é ¸»ÀÔ´Ï´Ù. ¿¹Àü¿¡´Â ´Ù¾çÇÑ ¼³Á¤ Á¤º¸µéÀ» ÁÖ·Î <appSettings> ¿µ¿ª¿¡ ÁÖ¿í ³ª¿ÇÏ´Â ÇüŸ¦ ¸¹ÀÌ ½á¿Ô´Âµ¥¿ä. À̰ÍÀÌ ¹¹ ±×·±´ë·Î ±¦Âú±â´Â Çß½À´Ï´Ù¸¸, ¼³Á¤ Á¤º¸°¡ ¼ö½Ê °³ ÀÌ»ó¿¡ À̸£´Â °æ¿ì¿¡´Â °ü¸®°¡ ¿ëÀÌÇÏÁö ¾Ê´Ù´Â ´ÜÁ¡ÀÌ ÀÖ¾ú½À´Ï´Ù(Àú¸¸ ±×·¸°Ô ´À³¤ °ÍÀº ¾Æ´Ï¾ú°ÚÁÒ?). ±×·ìÀ¸·Î ¹ÀÓ¾øÀÌ ÀÏ·Ä·Î ÁÖ·ç·è ³ª¿µÇ´Â ÇüÅÂÀÌ´Ù º¸´Ï º¸±â¿¡µµ, °ü¸®Çϱ⿡µµ ±×´ÙÁö Á÷°üÀûÀÌÁö ¾Ê¾Ò´Ù´Â °ÍÀÌÁÒ. ´ÙÀ½Ã³·³ ¸»ÀÔ´Ï´Ù.
<configuration>
<appSettings>
<add key="ConnectionStr" value="server=(local);database=A;uid=siteUser;pwd=xx" />
<add key="MailTemplate" value="/Users/MailTemplate.htm" />
<add key="MailServer" value="100.100.100.100" />
<add key="MailServerPort" value="25" />
<add key="FileDownloadVPath" value="/Download/Files" />
¡¦ ±âŸ µîµîÀÇ ¼³Á¤ÀÌ ¼ö½Ê °³~~ ¡¦
</appSettings>
¹°·Ð, ÀÌ·¸°Ô »ç¿ëÇÏ´Â °ÍÀÌ ¹º°¡ Å©°Ô ¾È ÁÁÀº °ÍÀº ¾Æ´Õ´Ï´Ù¸¸, °¡µ¶¼º Ãø¸é°ú °ü¸® Ãø¸é¿¡¼ ±×´ÙÁö ÁÁÁö ¾Ê´Ù´Â(ÀÌ·¸°Ô ¸»Çϸé À¯¼ö¼®´ÔÀÌ µýÁö¸¦ °É ¼öµµ ÀÖ°ÚÁö¸¸ ¤¾¤¾¤¾)¡¦
ÇØ¼, .NET 1.x ½ÃÀý¿¡µµ ÀÌ·¯ÇÑ ±¸¼ºÁ¤º¸ ¼½¼ÇÀ» ´ÙÀ½°ú °°ÀÌ Á÷°üÀûÀ¸·Î ºÐ·ùÇØ¼ ÀÛ¼ºÇÏ´Â °æ¿ì°¡ ¸¹¾Ò´Âµ¥¿ä. ÀÌ´Â È®½ÇÈ÷ Á÷°üÀûÀÎ ±¸¼ºÀ» °¡Áú ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù¸¸, À̸¦ À§Çؼ Ãß°¡ÀûÀ¸·Î Configuration °ü·Ã Ŭ·¡½º¸¦ °³¹ßÇØ¾ß ÇÑ´Ù´Â ´ÜÁ¡µµ ÀÖ½À´Ï´Ù.
<configuration>
<configSections>
<sectionGroup name="TaeyoSite">
<section name="Mail" type="System.Configuration.DictionarySectionHandler,
System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
</configSections>
<!-- Å¿À »çÀÌÆ® Àü¿ë ±¸¼º ¼½¼Ç -->
<TaeyoSite>
<Mail>
<add key="MailTemplate" value="/Users/MailTemplate.htm" />
<add key="MailServerPort" value="25" />
<add key="MailServer" value="192.168.0.2" />
</Mail>
</TaeyoSite>
Ãß°¡ÀûÀÎ Configuration °ü·Ã Ŭ·¡½º¶ó°í ¸»ÇÏ´Ï ¹º°¡ Á» ¸»ÀÌ ÀÌ»óÇϳ׿ä. Á¤È®È÷ ¸»ÇÏÀÚ¸é, System.Configuration.IConfigurationSectionHandler ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ(custom) ±¸¼º ¼½¼Ç 󸮱⸦ Á¦ÀÛÇØ¾ß ÇÕ´Ï´Ù Web.config ÆÄÀÏ¿¡ ¿ì¸® ¸Ú´ë·Î Ãß°¡ÇسõÀº XML ±¸Á¶¸¦ ÀÌÇØ ¹× ºÐ¼®ÇÒ ¼ö Àִ ó¸®±â¸¦ ¸»ÀÌÁÒ(¾Æ~ ¸»ÀÌ ³Ê¹« ±æ°í ¾î·Æ³×¿ä ¤Ì¤Ì).. ±Ùµ¥, ±× Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾à°£(?) ÇÇ°ï ³»Áö º¹ÀâÇϱ⿡ °³¹ßÀÚÀÇ ±ÍÂ÷´ÏÁòÀÌ ¹ßµ¿ÇÏ¿©, "º°µµ ¼½¼ÇÀº ¹«½¼~ ±×³É <appSetting>¸¦ ÀÌ¿ëÇÏÀÚ"¶ó°í ÇÏ°Ô ¸¸µé¾ú¾úÁÒ. ¤¾¤¾ (»¹ÂâÇÏ¸é °Á ¿ô½À´Ï´Ù?)
¾Æ¾Æ! ¹°·Ð, ±âÁ¸¿¡µµ System.Configuration.DictionarySectionHandler¿Í °°ÀÌ ±âº»À¸·Î Á¦°øµÇ´Â 󸮱⸦ »ç¿ëÇØ¼ ±¸¼ºÀ» ÇÒ ¼öµµ ÀÖ±ä Çß½À´Ï´Ù¸¸(»ç½Ç, À§ÀÇ ¿¹°¡ ¹Ù·Î ±×¸¦ »ç¿ëÇÑ ¿¹ÀÔ´Ï´Ù), ÀÌ´Â XML Æ÷¸ËÀÌ µü Á¤ÇØÁ® Àֱ⿡ ¿ì¸®°¡ ¿øÇÏ´Â ÇüÅ·ΠXMLÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù´Â ´ÜÁ¡ÀÌ ÀÖÁÒ. À§¿¡¼ º¸ÀÌ´Ù½ÃÇÇ, ±¸¼ºÀÇ ½ÃÀÛ(<TaeyoSite>)Àº ±×·²½ÎÇÏÁö¸¸, ½ÇÁ¦ °ª ¼³Á¤Àº ¿©ÀüÈ÷ <add>¸¦ ÀÌ¿ëÇØ¼ ±¸¼ºÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. Á» ´õ ³ªÀº ±¸Á¶¶ó¸é ´ÙÀ½°ú °°Àº °ÍÀÌ ¾Æ´Ò±î¿ä? ¹°·Ð, ÀÌ °ßÇØ´Â Áö±ØÈ÷ ÁÖ°üÀûÀÏ ¼ö ÀÖ½À´Ï´Ù¸¸ ¸»ÀÔ´Ï´Ù.
<configuration>
<site title="Taeyo.NET">
<mail server="192.168.0.2" template="/Users/MailTemplate.htm" port="25" />
</site>
...
±×·±µ¥! ÀÌ·¸°Ô ±¸¼ºÇÏ°Ô µÇ¸é, DictionarySectionHandler¿Í °°ÀÌ ±âº»À¸·Î Á¦°øµÇ´Â 󸮱â·Î´Â ºÒ°¡´ÉÇϰí, À§ÀÇ XML ±¸Á¶¸¦ ºÐ¼®Çϱâ À§ÇÑ º°µµÀÇ ±¸¼º 󸮱⸦ Á¦ÀÛÇØ¾ß ÇÏ´Â »óȲ¿¡ À̸£°Ô µË´Ï´Ù. ½½½½ ±ÍÂú¾ÆÁöÁÒ? ½ÉÁö¾î´Â °Á¸¦ Àд °Íµµ ½½½½ ±ÍÂú¾ÆÁöÁö ¾Ê³ª¿ä? ÇÏÇÏ!! µü °É·È¾î~~
±×·¡¼, .NET 2.0¿¡¼´Â ÀÌ·¯ÇÑ Ã³¸®±â¸¦ ½±°Ô °³¹ßÇÒ ¼ö ÀÖµµ·Ï µ½´Â Ŭ·¡½ºµéÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. ÇØ¼, ÀÚü 󸮱⸦ °³¹ßÇÏ´Â °ÍÀÌ »ó´çÈ÷ °£´ÜÇÏ°Ô µÇÁÒ. À̹ø °Á¿¡¼´Â ±×¿Í °ü·ÃµÈ Ŭ·¡½º¸¦ ¼Ò°³Çϰí, À̸¦ ÀÌ¿ëÇØ ¸Å¿ì ½±°Ô(?) ¿ì¸®¸¸ÀÇ ±¸¼º ¼½¼ÇÀ» ÀÛ¼ºÇÏ¿© web.config ÀÇ °¡µ¶¼ºÀ» ³ôÀÌ´Â ¹æ¹ýÀ» ¼³¸í µå¸®°íÀÚ ÇÕ´Ï´Ù.
ConfigurationSection Ŭ·¡½º
.NET 2.0¿¡¼ »õ·ÎÀÌ Ãß°¡µÈ ConfigurationSection Ŭ·¡½º. ÀÌ Ä£±¸°¡ ¹Ù·Î »ç¿ëÀÚ ÁöÁ¤ ¼½¼Ç Çü½ÄÀ» ±¸ÇöÇÒ ¼ö ÀÖ°Ô Çϴ Ŭ·¡½ºÀÔ´Ï´Ù. ¸¸ÀÏ, ¿©·¯ºÐÀÌ ´ÙÀ½°ú °°Àº XML ±¸Á¶¸¦ web.config¿¡¼ »ç¿ëÇÏ°í ½Í´Ù¸é,
<configuration>
<configSections>
<section name="mySite" type="SiteSection"/>
</configSections>
<mySite title="Taeyo.NET" MailServerIP="61.100.xx.xx" MailServerPort="25"
MailTemplate="/temps/mail.tmp" />
</mySite>
´ÙÀ½°ú °°Àº ½ÄÀ¸·Î 󸮱â Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ½Ã¸é µË´Ï´Ù. (ÀÛ¼ºÇÑ Ã³¸®±â´Â À§¿¡¼ º¸ÀÌ´Â °Í°ú °°ÀÌ <configSections>ÀÇ ÇÏÀ§·Î µî·ÏÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù)
public class SiteSection : ConfigurationSecqtion
{
public string Title { ... }
public string MailServerIP { ... }
public string MailServerPort { ... }
public string MailTemplate { ... }
...
}
°³¹ß ±ÔÄ¢Àº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. 󸮱â Ŭ·¡½º´Â ¹Ýµå½Ã ConfigurationSection¸¦ »ó¼ÓÇÏ¿© ±¸ÇöµÇ¾î¾ß Çϸç, XMLÀÇ °¢ ¾îÆ®¸®ºäÆ®µéÀº Ŭ·¡½ºÀÇ ¼Ó¼ºÀ¸·Î¼ Á¤ÀÇÇÏ¸é µË´Ï´Ù. ´Ù¸¸, Ãß°¡ÀûÀ¸·Î °¢ ¼Ó¼ºµéÀÌ [ConfigurationProperty] ¾îÆ®¸®ºäÆ®¸¦ °¡Á®¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇϼ¼¿ä. ´ÙÀ½Àº ½ÇÁ¦·Î »ó±â XMLÀ» À§ÇÑ Ã³¸®±â Ŭ·¡½ºÀÇ ÄÚµåÀÔ´Ï´Ù.
public class SiteSection : ConfigurationSection
{
[ConfigurationProperty("title", DefaultValue="Taeyo.NET")]
public string Title
{
get { return (string)base["title"]; }
set { base["title"] = value; }
}
[ConfigurationProperty("mailServerIP")]
public string MailServerIP {
get { return (string)base["mailServerIP"]; }
set { base["mailServerIP"] = value; }
}
[ConfigurationProperty("mailServerPort")]
public string MailServerPort {
get { return (string)base["mailServerPort"]; }
set { base["mailServerPort"] = value; }
}
[ConfigurationProperty("mailTemplate")]
public string MailTemplate {
get { return (string)base["mailTemplate"]; }
set { base["mailTemplate"] = value; }
}
}
ConfigurationProperty ¾îÆ®¸®ºäÆ®¿¡ »ç¿ëµÇ´Â À̸§Àº ½ÇÁ¦ XML¿¡¼ÀÇ °¢ ¾îÆ®¸®ºäÆ® ¸í°ú µ¿ÀÏÇØ¾ß ÇÑ´Ù´Â Á¡À» ÁÖÀÇÇÏ½Ã¸é µÇ±¸¿ä. ½ÇÁ¦ ¼Ó¼º ¾È¿¡¼ÀÇ get, set ¿ë °ªÀº base["xml ¾îÆ®¸®ºäÆ® ¸í"];°ú °°ÀÌ Á¢±ÙÇÏ½Ã¸é µË´Ï´Ù. ¸Å¿ì °£´ÜÇÏÁÒ?
´Ù¸¸, ÀÌÀüÀÇ XML ±¸Á¶¸¦ »ìÆìº¸¸é Mail°ú °ü·ÃµÈ Á¤º¸µéÀÌ 3°³ Á¤µµ°¡ Àִµ¥¿ä. À̵éÀ» ÇÏÀ§ ³ëµå·Î¼ ºÐ¸®ÇÏ¸é ´õ¿í ±¸Á¶°¡ ÀÌ»Ü °Í °°Áö ¾Ê³ª¿ä? ´ÙÀ½Ã³·³ ¸»ÀÔ´Ï´Ù.
<mySite title="Taeyo.NET">
<mail server="192.168.0.2" template="/Users/MailTemplate.htm" port="25" />
</mySite>
±×·¸ÁÒ? ÀÌ·¸°Ô XMLÀ» ±¸¼ºÇÏ´Â °ÍÀÌ º¸´Ù Á÷°üÀûÀÏ °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é, ÀÌ·± ±¸Á¶¸¦ À§Çؼ¶ó¸é 󸮱⸦ ¾î¶»°Ô ±¸¼ºÇØ¾ß ÇÒ±î¿ä? ÀÌ ¶ÇÇÑ ¾î·Á¿ï °ÍÀÌ ¾ø½À´Ï´Ù. ÇÏÀ§ ³ëµå¸¦ À§Çؼ´Â ConfigurationElement Ŭ·¡½º¸¦ »ó¼ÓÇÏ´Â ÇÏÀ§ Ŭ·¡½º¸¦ Á¤ÀÇÇÏ¸é µË´Ï´Ù. ´ÙÀ½Àº ±×·¸°Ô Á¤ÀÇÇÑ Å¬·¡½ºÀÇ ÇÁ·ÎÅä ŸÀÔÀÔ´Ï´Ù.
public class SiteSection : ConfigurationSection
{
public string Title { ... }
public MailServerElement Mail { ... }
public class MailServerElement : ConfigurationElement
{
public string Server { ... }
public string Port { ... }
public string Template { ... }
}
}
ÀÚ½Ä ³ëµåÀÎ mailÀ» À§Çؼ ÇÏÀ§ Ŭ·¡½º¸¦ ±¸¼ºÇØ¾ß Çϴµ¥¿ä. À̸¦ À§Çؼ´Â ConfigurationElement¸¦ »ó¼ÓÇϴ Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ¸é µË´Ï´Ù. ±×¸®°í, mailÀÇ °¢ xml ¾îÆ®¸®ºäÆ®¿¡ ´ëÇØ¼´Â Ŭ·¡½ºÀÇ ¼Ó¼ºÀ¸·Î ÀÛ¼ºÇÏ½Ã¸é µÇ´Â °ÍÀÌÁÒ. ±ÔÄ¢Àº °£´ÜÇÕ´Ï´Ù. "ÀÚ½Ä ³ëµå¸¦ À§Çؼ´Â ConfigurationElement¸¦ »ó¼ÓÇÏ´Â ÇÏÀ§ Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ¸é µÈ´Ù!" ÀÌ°Ô ÀüºÎÀÔ´Ï´Ù. ^^ (Ŭ·¡½ºÀÇ ¸íĪÀº ±×´ÙÁö Áß¿äÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ´Â ³»ºÎÀûÀÎ Çü½ÄÀÏ »ÓÀ̴ϱî¿ä)
ÀÚ. ±×·³ ½ÇÁ¦·Î Çѹø ¿¹Á¦¸¦ ¿Ï¼ºÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. »õ·Î¿î À¥ »çÀÌÆ®¸¦ Çϳª ¸¸µå½Ã°í(ȤÀº, ±âÁ¸ÀÇ ¿©·¯ºÐÀÇ À¥ »çÀÌÆ®¿¡´Ù°¡) »õ·Î¿î Ŭ·¡½º¸¦ Çϳª Ãß°¡Çϵµ·Ï ÇϰڽÀ´Ï´Ù. Ŭ·¡½º´Â ´ç¿¬È÷ App_Code Æú´õ¿¡ ³õ¿©Á®¾ß ÇϰÚÁÒ? Àú´Â ´ÙÀ½°ú °°ÀÌ SiteConfig ¶ó´Â À̸§ÀÇ C# Ŭ·¡½º¸¦ Ãß°¡Çß½À´Ï´Ù.
±×¸®°í, ¿ì¸®´Â ´ÙÀ½°ú °°Àº ±¸¼º Çü½ÄÀ» °¡Áú ¿¹Á¤À̹ǷΠÀÌ¿¡ ¸Âµµ·Ï handler(󸮱â) Ŭ·¡½º Äڵ带 ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇϵµ·Ï ÇÕ´Ï´Ù.
±¸¼º ¼½¼Ç
<mySite title="Taeyo.NET">
<mail server="192.168.0.2" template="/Users/MailTemplate.htm"
port="25" />
</mySite>
Ŭ·¡½º ÄÚµå
public class SiteConfig : ConfigurationSection
{
[ConfigurationProperty("title", DefaultValue="Taeyo.NET")]
public string Title
{
get { return (string)base["title"]; }
set { base["title"] = value; }
}
[ConfigurationProperty("mail", IsRequired=true)]
public MailServerElement Mail
{
get { return (MailServerElement)base["mail"]; }
}
public class MailServerElement : ConfigurationElement
{
[ConfigurationProperty("server", DefaultValue = "")]
public string Server
{
get { return (string)base["server"]; }
set { base["server"] = value; }
}
[ConfigurationProperty("port", DefaultValue = "")]
public string Port
{
get { return (string)base["port"]; }
set { base["port"] = value; }
}
[ConfigurationProperty("template", DefaultValue = "")]
public string Template
{
get { return (string)base["template"]; }
set { base["template"] = value; }
}
}
}
Ŭ·¡½º°¡ ¿Ï¼ºµÇ¾úÀ¸¸é, ÇØ´ç Ŭ·¡½º¸¦ web.configÀÇ <configSections> ¼½¼Ç¿¡ µî·Ï ÇÕ´Ï´Ù. ÀÌ Ã³¸®±â Ŭ·¡½º¸¦ <configSections>¿¡ µî·ÏÇØ¾ß¸¸ ¿Ã¹Ù¸£°Ô ¿ì¸®°¡ Á¤ÀÇÇÑ Xml ±¸Á¶¸¦ ÀÌÇØÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="mySite" type="SiteConfig"/>
</configSections>
<mySite title="Taeyo.NET">
<mail server="192.168.0.2" template="/Users/MailTemplate.htm"
port="25" />
</mySite>
...
´õºÒ¾î, ¿ì¸®¸¸ÀÇ ±¸¼º Á¤º¸(XML)µµ À§¿Í °°ÀÌ web.config ÆÄÀÏ¿¡ ±â·ÏÇÕ´Ï´Ù.
À̰ÍÀ¸·Î ¿Ï¼ºÀÌ µÇ¾ú½À´Ï´Ù. ^^
¿©·¯ºÐÀº ÀÌÁ¦ ´ÙÀ½°ú °°Àº Äڵ带 ÀÌ¿ëÇØ¼ ¿øÇÒ °æ¿ì, ¾îµð¿¡¼³ª ¿ì¸®¸¸ÀÇ ±¸¼º Á¤º¸¸¦ ½±°Ô Àоî¿Ã ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
SiteConfig Settings =
(SiteConfig)WebConfigurationManager.GetSection("mySite");
±×·¯³ª, Á» ´õ È¿À²ÀûÀ¸·Î À̸¦ »ç¿ëÇϱâ À§Çؼ´Â »çÀÌÆ® Àü¿ª ¼Ó¼ºÀ¸·Î À̸¦ Á¦°øÇÏ´Â ¹æ¹ýµµ »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¸é, ¸¹Àº ºÐµéÀÌ À¥ »çÀÌÆ®¿¡ Globals ¶ó´Â Á¤Àû Ŭ·¡½º¸¦ ¸¸µé°í, ±× Ŭ·¡½º¸¦ ÅëÇØ¼ »çÀÌÆ® Àü¿ªÀûÀÎ °øÅë Á¤º¸µéÀ» Á¦°øÇϰí ÀÖÀ»ÅÙµ¥¿ä(¾ÆÁ÷ ±×·¸°Ô ±¸¼ºÇÏÁö ¾ÊÀ¸½Å ºÐµéÀº À̹ø ±âȸ¿¡ Çѹø ÇØ º¸¼¼¿ä ^^). ±× Ŭ·¡½º¿¡ ÀÌ ¼³Á¤ Á¤º¸µµ ¼Ó¼ºÀ¸·Î¼ ³ëÃâÇϸé Á» ´õ ÆíÇÏ°Ô À¥ ÆäÀÌÁöµé¿¡¼ ±¸¼º Á¤º¸¿¡ Á¢±ÙÀÌ °¡´ÉÇÒ °ÍÀÔ´Ï´Ù. ¸»ÀÌ Á» º¹ÀâÇÏ°Ô ´À²¸Áø´Ù¸é, Çѹø °°ÀÌ ÇØº¼±î¿ä?
´ÙÀ½°ú °°ÀÌ App_Code Æú´õ¿¡ Globals ¶ó´Â Ŭ·¡½º¸¦ Çϳª Ãß°¡ÇØ º¸µµ·Ï Çϼ¼¿ä. ±×¸®°í, ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇϵµ·Ï ÇÕ´Ï´Ù.
using System;
using System.Configuration;
using System.Web.Configuration;
/// <summary>
/// GlobalsAC GlobalsÀÇ ¿ä¾à ¼³¸íÀÔ´Ï´Ù.
/// </summary>
public static class Globals
{
public readonly static SiteConfig Settings =
(SiteConfig)WebConfigurationManager.GetSection("mySite");
}
¾ÆÁÖ °£´ÜÇÏÁÒ? À̰ÍÀÌ ÀüºÎÀÔ´Ï´Ù. ´Ù¸¸, WebConfigurationManager Ŭ·¡½º¸¦ ÀÌ¿ëÇϱâ À§Çؼ´Â System.Web.Configuration ³×ÀÓ½ºÆäÀ̽º¸¦ Ãß°¡ÇØ Áà¾ß ÇÕ´Ï´Ù. ±×°ÍÀ» ÀØÁö ¸»µµ·Ï Çϼ¼¿ä ^^
ÀÚ. ÀÌÁ¦ ¾ó¸¶³ª °£ÆíÇÏ°Ô ¿ì¸®¸¸ÀÇ »çÀÌÆ® ±¸¼º Á¤º¸¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´ÂÁö Çѹø Å×½ºÆ®¸¦ ÇØº¸°Ú½À´Ï´Ù. Default.aspx.cs ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ÀÛ¼ºÇØ º¸¼¼¿ä ^^
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<br>title : " + Globals.Settings.Title);
Response.Write("<br>mail(server) : " + Globals.Settings.Mail.Server);
Response.Write("<br>mail(port) : " + Globals.Settings.Mail.Port);
Response.Write("<br>mail(template) : " + Globals.Settings.Mail.Template);
}
}
Globals.Settings¿Í °°ÀÌ ¿ì¸®ÀÇ ±¸¼º Á¤º¸ Ŭ·¡½º¿¡ Á¢±ÙÀÌ °¡´ÉÇÑ °ÍÀ» º¼ ¼ö ÀÖ°í, Settings ÀÇ ¼Ó¼ºÀ» ÅëÇØ¼ °¢°¢ÀÇ XML ¾îÆ®¸®ºäÅÍ Á¤º¸(¸ÞÀϼ¹ö, Æ÷Æ®, ÅÛÇø´¸í µî)¸¦ ½±°Ô ¾ò¾î¿Ã ¼ö ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
´ÙÀ½Àº °á°ú ȸéÀÔ´Ï´Ù.
¾î¶²°¡¿ä? »ý°¢º¸´Ù ½±°í °£ÆíÇÏÁö ¾Ê³ª¿ä?
¸¸ÀÏ, ¿©·¯ºÐÀÇ web.config ÆÄÀÏÀÌ ´ë´ÜÈ÷ º¹ÀâÇÑ ±¸¼ºÀ» °¡Áö°í ÀÖ´Ù¸é ÀÌ¿Í °°ÀÌ »ç¿ëÀÚ Á¤ÀÇ ±¸¼º Á¤º¸ ¼½¼ÇÀ» ¸¸µé¾îº¸´Â °Íµµ ³ª»ÚÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ^^ ¹°·Ð, ÀÚü 󸮱â Ŭ·¡½º¸¦ ¸¸µå´Â °ÍÀÌ ¿©ÀüÈ÷ º¹ÀâÇÏ°Ô ´À²¸Áö´Â µ¶ÀÚ¶ó¸é ¿¹Àü´ë·Î <appSettings> ¼½¼ÇÀ» ÀÌ¿ëÇØµµ ¹¹ ¹®Á¦´Â ¾ø½À´Ï´Ù¸¸ ¸»ÀÔ´Ï´Ù. ¤¾¤¾
°¨»çÇÕ´Ï´Ù. ^^
°Á ¸ñ·ÏÀ¸·Î..
|