lecture Home > ASP.NET > .NET Board

.NET °Ô½ÃÆÇ °­Á - ±è¿¬Áø´Ô Á¦°ø

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2001³â 09¿ù 10ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2001³â 09¿ù 20ÀÏ

   ÀÛ¼ºÀÚ : Cassatt(±è ¿¬Áø)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇØº¸ÀÚ

ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇØº¸ÀÚ

asp´Â °´Ã¼ÁöÇâ°ú´Â °Å¸®°¡ ¸Ö¾ú½À´Ï´Ù. vbscript 5.0ºÎÅÍ´Â class °¡ Áö¿ø µÇ¾úÁö¸¸, ÆÛÆ÷¸Õ½º ¹®Á¦·Î, ȤÀº ÀÌ·± Àú·± ´Ù¸¥ ¹®Á¦·Î Àß »ç¿ëÇÏÁö ¸øÇß½À´Ï´Ù.

°´Ã¼ÁöÇâ½ÄÀ¸·Î ÇÁ·Î±×·¡¹ÖÇϸé, ±âº»ÀÌ µÇ´Â °´Ã¼¸¦ Çϳª ¸¸µé¾îµÎ°í, °Å±â¼­ ¿ø·¡ °´Ã¼°¡ °¡Áö°í ÀÖ´Â ¸ðµç ¸Þ¼­µå¿Í ¼Ó¼ºÀ» "»ó¼Ó" ¹ÞÀº °´Ã¼¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ±×·±µ¥ vbscript 5 ¿¡¼­ class¸¦ »ç¿ëÇϱ⠲¨·ÁÁ³´ø °ÍÀº, ÆäÀÌÁö°¡ ·ÎµåµÉ¶§¸¶´Ù Ç×»ó ±× ¸ðµç class Á¤Àǰ¡ ¹ø¿ª(interprete)µÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¼¼¹ø »ó¼ÓµÇ°í °¢°¢ÀÇ class°¡ °¢°¢ÀÇ ÆÄÀÏ¿¡ ÀúÀåµÇ¾î ÀÖ´Ù¸é include¹®À» ¼¼¹ø½á¾ß ÇÑ´Ù´Â ¾ê±â°¡ µË´Ï´Ù. ±×·³ ±× °¢°¢À» ¸Å¹ø ¹ø¿ªÇÕ´Ï´Ù. ÀÌ°Ç ¿ä»õ ÄÄÇ»ÅͰ¡ ¾Æ¹«¸® ºü¸£´ÙÁö¸¸ ²¨·ÁÁö´Â ÀÏÀÔ´Ï´Ù´Ù. Â÷¶ó¸® ÇÔ¼ö¸¦ ¿©·¯ ÆÄÀÏ¿¡ ³ª´²¼­ ³Ö¾îµÎ°í, ÇÊ¿äÇÑ ÇÔ¼ö¸¦ °¡Áø ÀÛÀº ÆÄÀϸ¸ includeÇÏ´Â °ÍÀÌ ³´½À´Ï´Ù. ( class´Â ±× ¾È¿¡ ¸ðµç ¸Þ¼­µå¸¦ ³Ö¾î¾ß Çϱ⠶§¹®¿¡, ³ª´­ ¼ö°¡ ¾ø½À´Ï´Ù )

* ±×·³¿¡µµ class´Â Çѹø ½áº¸½Ã±â ±ÇÇÕ´Ï´Ù. class·Î ¸¸µé¾îÁø ¼Ò½º´Â vb·Î ±Ý¹æ Æ÷ÆÃÇØ¼­ dll·Î ¸¸µé ¼ö ÀÖ½À´Ï´Ù. asp ¼Ò½º´Â ¾à°£¸¸( New -> Server.CreateObject ) º¯ÇÏ¸é µË´Ï´Ù. ÇöÀçÀÇ com dllÀº µð¹ö±ëÇϱⰡ ³ª»Ú±â ¶§¹®¿¡, vbscriptÀÇ class·Î ¸¸µé°í Å×½ºÆ®ÇÑ ÈÄ Æ÷ÆÃÇÏ´Â °ÍÀÌ ³ªÀ»¼ö ÀÖ½À´Ï´Ù.

COMÀº °´Ã¼ÁöÇâ¿¡ °¡±î¿ÔÁö¸¸, »ó¼ÓÀÌ ¾ø¾î¼­ ¿ÏÀüÇÑ °´Ã¼ÁöÇâÀ̶ó Çϱ⠾î·Á ¿ü½À´Ï´Ù. VB´Â »ó¼ÓÀÌ ¾ø°í, C++Àº ¹°·Ð »ó¼ÓµÇÁö¸¸, COM °³Ã¼¸¦ ¸¸µé¸é °Å±â¼­ »ó¼ÓÀº ³¡ÀÔ´Ï´Ù. Áï, ¹Ì¸® Á¤ÀǵǾî ÀÖ´Â °³Ã¼¿¡¼­ »ó¼Ó¹Þ¾Æ »õ·Î¿î °³Ã¼¸¦ ¸¸µé ¼ö´Â ÀÖÁö¸¸, ±× Àüü´Â ÇϳªÀÇ ÆÄÀÏ(dllÀ̵ç, exeµç)·Î ¸¸µé¾îÁö°í, ´õÀÌ»óÀÇ »ó¼ÓÀº ¾ø½À´Ï´Ù. ( ¾î´À dll¿¡¼­ »ó¼Ó¹ÞÀº ´Ù¸¥ dllÀ» Á¤ÀÇÇϰųª ÇÒ ¼ø ¾ø´Ù´Â ¶æÀÔ´Ï´Ù. )

»ó¼ÓÀº °´Ã¼ÁöÇâ¿¡¼­ ¸Å¿ì Áß¿äÇÑ ºÎºÐÁß ÇϳªÀÔ´Ï´Ù. »ó¼ÓÀ» ÅëÇØ¼­, ÄÚµå Àç»ç¿ë¼ºÀÌ ´Ã¾î³³´Ï´Ù.
±×·±µ¥, ¿©±â ÁÁÀº ¼Ò½Ä(?) ÀÌ ÀÖ½À´Ï´Ù. ´å³ÝÀº °´Ã¼ÁöÇâ¾ð¾îÀ̱⿡ »ó¼ÓÀÌ µÉ »Ó¸¸ ¾Æ´Ï¶ó, dll °£¿¡µµ »ó¼ÓÇÒ »Ó´õ·¯, vb·Î ¸¸µç dllÀ» c#¿¡¼­ »ó¼Ó¹Þ¾Æ¼­ ´Ù¸¥ dll ¸¸µé°í, ±×°É JScript¿¡¼­ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ°Ç ( °³ÀÎÀûÀ¸·Î ) ¸Å¿ì ³î¶ø°í ¹Ý°¡¿î ÀÏÀ̾ú½À´Ï´Ù.

±×¸®°í

  • RegSvr32·Î dllÀ» µî·ÏÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ·çÆ®¿¡ /bin Æú´õ¸¦ ¸¸µé°í ¸ô¾Æ³ÖÀ¸¸é µË´Ï´Ù.
  • dll¿¡´Â lockÀÌ ¾È°É¸³´Ï´Ù. Àü¿¡´Â dllÀ» ´Ù½Ã ÄÄÆÄÀÏÇØ¼­ ÀúÀåÇÏ·Á Çϸé dllÀÌ ÀÌ¹Ì »ç¿ëÁßÀΰæ¿ì lockÀÌ °É·ÁÀ־ ÀúÀåÀÌ ¾ÈµÇ¾ú½À´Ï´Ù. lockÀ» Ç®±â À§ÇØ À¥»çÀÌÆ®¸¦ ÇÁ·Î¼¼½º °Ý¸®»óÅ¿¡¼­ ½ÇÇàÇϰųª, ȤÀº IIS¸¦ ¼Ë´Ù¿îÇϰųª, ½ÉÇѰæ¿ì NT ÀÚü¸¦ ºÎÆÃ½ÃÄÑ¾ß Çß¾ú½À´Ï´Ù.
¿ä¾à Á¤¸®ÇÑ °á·ÐÀº, ÀÌÁ¨ dllÀ» Áý¿¡¼­ ÄÄÆÄÀÏÇØ¼­, ftp·Î ¼­¹ö¿¡ ¾÷·ÎµåÇØµµ µÈ´Ù´Â °ÍÀÔ´Ï´Ù. IDC¼¾ÅÍ¿¡ ÀÖ´Â ¼­¹öÀÇ dllÀ» Áý¿¡¼­ µð¹ö±ë ÇØº» ºÐÀº ±× Â÷À̸¦ ¾Æ½Ç °Ì´Ï´Ù. ( ÇØºÃ´Âµ¥, ÇÒÁþÀÌ ¸øµË´Ï´Ù ^^; )
¾Ïư,
  • comÀ» ¾²ÀÚ´Ï µð¹ö±ë/À¯Áöº¸¼ö°¡ Èûµé´Ù.
  • vbscript class »ç¿ëÇÏÀÚ´Ï interpreter¶ó, ÆÛÆ÷¸Õ½º°¡ ¸¾¿¡ °É¸°´Ù.
ÀÌ »óȲÀÌ
  • ·¹Áö½ºÆ®¸®¿¡ µî·ÏÇÒ Çʿ䰡 ¾ø°í, lockµµ ¾È°É¸®´Ï µð¹ö±ë/À¯Áöº¸¼ö°¡ asp ÆäÀÌÁö Â¥´Â °Íº¸´Ù ±×¸® ³ª»ÚÁö ¾Ê´Ù.
  • ÄÄÆÄÀϵǹǷΠºü¸£´Ù.

ÀÌ·¸°Ô ¹Ù²î°Ô µË´Ï´Ù. Àü¿¡´Â asp¸¦ Áß½ÉÀ¸·Î, ²À ÇÊ¿äÇÑ ºÎºÐ¸¸ COM °³Ã¼·Î ¸¸µé¾ú´Ù¸é, ÀÌÁ¦´Â ¾Æ¸¶µµ, cs(ȤÀº vb) ÆÄÀÏÀ» Áß½ÉÀ¸·Î Çϰí, È­¸éó¸® °ü·Ã ·ÎÁ÷¸¸ aspx¿¡ ³Ö°Ô µÉ °ÍÀÔ´Ï´Ù.


¼­·ÐÀÌ Á» ±æ¾ú½À´Ï´Ù. ÀÌÁ¦, °Ô½ÃÆÇ¿¡ ¾²ÀÏ ÄÄÆ÷³ÍÆ®¸¦ Á÷Á¢ ¸¸µé¸é¼­ ¼³¸íÇØ º¸°Ú½À´Ï´Ù. ÇϳªÇϳª ¼³¸íÇϸ鼭 ÁøÇàÇÏ¸é ³Ê¹«³ª ¸¹Àº ºÐ·®ÀÌ µÉ°Í °°¾Æ¼­, ¿ì¼± ¸¸µé°í ³ª¼­ °£·«È÷ ¼³¸íÇÏ´Â ¹æ½ÄÀ¸·Î ÁøÇàÇϰíÀÚ ÇÕ´Ï´Ù.

À̹ø °­¿¡¼­´Â °Ô½ÃÆÇÀÇ Æ²ÀÌ µÉ, ±âº» ÄÄÆ÷³ÍÆ® ¼¼°³¸¦ ¸¸µé°Ô µË´Ï´Ù. Çϳª´Â DB ¿¬°á ¹®ÀÚ¿­(connection string)À» ¾ò¾î¿À´Â °£´ÜÇÑ ±â´ÉÀÇ cstConnectionStringÀ̶ó´Â °³Ã¼À̰í, µÎ¹øÂ°´Â DB Connect¿Í close¸¸ Àü´ãÇÏ´Â DBConnectedObject¶ó´Â °³Ã¼ÀÔ´Ï´Ù. ±×¸®°í ¼¼¹øÂ°´Â DBConnectedObject¸¦ »ó¼Ó¹ÞÀº OrderedTableReader ¶ó´Â °³Ã¼·Î, °Ô½ÃÆÇ/¹æ¸í·Ï/°øÁö»çÇ×µîÀÇ »À´ë°¡ µÉ °³Ã¼ÀÔ´Ï´Ù. ( ¹°·Ð Áö±ÝÀº °Ô½ÃÆÇ¸¸ ¸¸µéÁö¸¸, ³ªÁß¿¡ Àç»ç¿ëÀ» À§ÇÑ °ÍÀÔ´Ï´Ù )

ÄÄÆ÷³ÍÆ®¸¦ ¸¸µé°Ô µÇ¸é ¼³°è°¡ ¸Å¿ì Áß¿äÇØ Áý´Ï´Ù. Àç»ç¿ë¼º, À¯Áöº¸¼ö ¿ëÀÌ °°Àº, ÄÄÆ÷³ÍÆ®ÀÇ ÀåÁ¡À» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù.

±×·±µ¥, ¾ÕÀ¸·Î ¸¸µé°Ô µÉ ÄÄÆ÷³ÍÆ®´Â ¾Æ¸¶µµ, Á» ƯÀÌÇÑ ±¸Á¶°¡ µÉ°Í °°½À´Ï´Ù. ^^; ÀÌ·¯ÇÑ ÇüÅÂÀÇ ¼³°è°¡ ÁÁ´Ù´Â °ÍÀº ÀüÇô ¾Æ´Ï¸ç, ¿©·¯ºÐµµ ¿©·¯ºÐ ³ª¸§ÀÇ, ÃÖÀûÀÇ ¼³°è¸¦ ã¾Æ³»±æ ¹Ù¶ø´Ï´Ù. ¼³°è¿£ Á¤´äÀÌ ¾ø´Ù´Â »ý°¢ÀÔ´Ï´Ù. ( ÁÁÀº ¼³°è´Â ¹°·Ð ÀÖ°ÚÁö¸¸¿ä )

ù¹øÂ°·Î ¸¸µé¾î º¼°ÍÀº DB ¿¬°á ¹®ÀÚ¿­(connection string)À» °ü¸®ÇÒ °³Ã¼ÀÔ´Ï´Ù. ÀÌ °³Ã¼¸¦ ¸¸µé¸é¼­, C#ÀÇ °³Ã¼¿Í web.config¶ó´Â ¼³Á¤ÆÄÀÏ, ±×¸®°í ÄÄÆÄÀÏ ¹æ¹ýÀ» ÇѲ¨¹ø¿¡ µµ¸Å±ÝÀ¸·Î ³Ñ±â·Æ´Ï´Ù. ^^;

Âü, µé¾î°¡±âÀü¿¡, c#Àº vb¿Í ´Þ¸® ´ë/¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ´Ù´Â Á¡À» °­Á¶ÇϰڽÀ´Ï´Ù. c#À¸·Î ÀÛ¼ºÇÏ´Ù ¿¡·¯°¡ ³ª¸é, 1) ¼¼¹ÌÄÝ·ÐÀ» º¸½Ã°í, 2) ´ë¼Ò¹®ÀÚ¸¦ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ±×·³ ¾Æ¸¶µµ ¿¡·¯ÀÇ ¹ÝÀº ÀâÀ¸½Ç °Ì´Ï´Ù.

/bin/cstDB.cs :
using System;
using System.Configuration;

namespace cstDB {

   public class cstDBConnectionString {
      public static String connectionString {
        get {
          return ConfigurationSettings.AppSettings["connectionString"];
        }
      }
   }
}

À§ ÆÄÀÏÀ» ·çÆ®Æú´õ ¹Ø /bin Æú´õ¿¡( ¾øÀ¸¸é ¸¸µë) cstDB.cs ·Î ÀúÀåÇÕ´Ï´Ù. ±×¸®°í ÄÄÆÄÀÏÇϴµ¥¿ä,
½ÃÀÛ¹öư->½ÇÇà¿¡¼­ cmd(win98¿¡¼± command.com)¸¦ ½ÇÇà½ÃŲ ÈÄ [root]/bin Æú´õ·Î À̵¿ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î À¥»çÀÌÆ®ÀÇ root Æú´õ°¡ c:\wwwroot¶ó¸é, ´ÙÀ½ ó·³ csc¸¦ ÀÌ¿ëÇÏ¿© ÄÄÆÄÀÏÇÕ´Ï´Ù.

c:\>cd wwwroot
c:\wwwroot>md bin <- µð·ºÅ͸® ¸¸µë.
c:\wwwroot>cd bin
c:\wwwroot\bin>csc /t:library /out:cstDB.dll /debug+ /optimize+ cstDB.cs

ÀÌ·¯¸é Æú´õ¿¡ cstDB.dll À̶õ ÆÄÀÏÀÌ »ý±æ°ÍÀÔ´Ï´Ù. ¿¡·¯°¡ ³­´Ù¸é, ´ë¼Ò¹®ÀÚµîÀ» ÁÖÀÇÇØ¼­ ´Ù½Ã ¼Ò½º¸¦ »ìÆìº¾´Ï´Ù.

csc´Â c-sharp-compilerÀÇ ¾àÀÚ·Î, c# ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇÒ¶§ ¾²ÀÔ´Ï´Ù. Ç×»ó À§Ã³·³ Űº¸µå·Î Ä¡±â´Â ºÒÆíÇϴϱî, .bat ¹èÄ¡ ÆÄÀÏÀ» ¸¸µé¾î »ç¿ëÇÏ¸é ÆíÇÕ´Ï´Ù. ( ¼Ò½º¿¡´Â mkcstboard.bat·Î µÇ¾î ÀÖ½À´Ï´Ù )
¿©·¯ ¿É¼ÇÀÌ Àִµ¥, À§¿¡ ¾²ÀÎ ¿É¼Ç¸¸ ¼³¸íÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù.

  • /t:library : ÆÄÀÏÀ» dll·Î( exe°¡ ¾Æ´Ñ) ÄÄÆÄÀÏÇÕ´Ï´Ù
  • /out:cstDB.dll : ÄÄÆÄÀÏµÈ ÆÄÀÏÀº cstDB.dll·Î ÀúÀåµÉ °ÍÀÔ´Ï´Ù.
  • /debug+ : µð¹ö±× ¸ðµå·Î ÄÄÆÄÀÏÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀ» ÁÖ¸é, ·±Å¸ÀÓ ¿¡·¯°¡ ³µÀ»¶§ ¿¡·¯°¡ ³­ ÁÙ¹øÈ£µµ ¾Ë·ÁÁֱ⠶§¹®¿¡ Æí¸®ÇÕ´Ï´Ù. µð¹ö±ëÀÌ ³¡³­ ÈÄ ÀÌ ¿É¼ÇÀ» »©°í ´Ù½Ã ÄÄÆÄÀÏÇÏ¸é µË´Ï´Ù.
  • /optimize+ : ÃÖÀûÈ­ ½ÃÄѼ­ ÄÄÆÄÀÏÇÕ´Ï´Ù.
cstDB.cs ÀÌÈÄ¿¡´Â ÇØ´ç dll¿¡ Æ÷Ç﵃ ¼Ò½ºÆÄÀÏ À̸§À» Àû¾îÁÝ´Ï´Ù. ¿©·¯ ÆÄÀÏÀ̸é ÇÑÄ­¾¿ ¶ç¸é¼­ ¸ðµÎ Àû¾îÁÖ½Ã¸é µË´Ï´Ù.

¼³Á¤ÆÄÀÏ: /cstBoard/web.config
<configuration> 
    <appSettings>
          <add key="connectionString" 
                 value="server=localhost;uid=yourID;pwd=yourPassword;database=yourDB" />
    </appSettings>
</configuration>

ÀÌ ÆÄÀÏÀ» /cstBoard/web.config ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù. ¹°·Ð connectionString °ªÀº, ÀÚ½ÅÀÇ DB userid, password, db·Î ¼³Á¤ÇÏ¸é µË´Ï´Ù. web.config¿¡´Â ¿©·¯ ¼³Á¤°ªÀÌ µé¾î°©´Ï´Ù. dot.net ¼³Ä¡°¡ Àß µÇ¾ú´Ù¸é, root Æú´õ¿¡ web.config¶ó´Â ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ ÆÄÀÏÀ» º¯°æÇؼ­, À¥»çÀÌÆ®ÀÇ ¼¼ºÎ»çÇ×À» Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

web.config´Â À¥»çÀÌÆ®¿¡ ´ëÇÑ ¼³Á¤»çÇ×À» ÀúÀåÇØ µÎ´Â ÆÄÀÏÀÔ´Ï´Ù. ¿©±â¼­´Â ´Ù¸¸, connectionStringÀ» ÀúÀåÇϱâ À§Çؼ­¸¸ »ç¿ëÇÏ¿´Áö¸¸, ¸¹Àº ³»¿ëÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¥ ºÐÀÇ °­Á¿¡ ÀÇÇØ ä¿öÁö¸®¶ó ±â´ëÇÕ´Ï´Ù.

* text ÆÄÀÏ¿¡ DB ¾ÏÈ£¸¦ ÀúÀåÇÑ´Ù´Â °ÍÀÌ º¸¾È»ó ¸¶À½¿¡ °É¸± ¼ö ÀÖÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù. ¿ì¼± web.config´Â url·Î Á÷Á¢ º¸·ÁÇϸé, "This type of page is not served"¶ó´Â ¿¡·¯°¡ ³ª°í ¸»±â ¶§¹®¿¡ ¾î´ÀÁ¤µµ´Â ¾ÈÀüÇÏÁö¸¸, ±×·³¿¡µµ ¿¹ÀüÀÇ ::$data³ª %cc °æ¿ìó·³ ¿ÏÀüÈ÷ ¹ÏÀ» ¼ö´Â ¾ø½À´Ï´Ù. ÀÌ¿¡ ´ëÇØ¼­ ¸¹Àº ³íÀǰ¡ ÀÖ¾úÀ¸¸é ÇÕ´Ï´Ù.
* ÀÌÆÄÀÏÀÌ ¿ÏÀüÇÑ xml ÆÄÀÏÀ̱⠶§¹®¿¡, ´ë¼Ò¹®ÀÚµµ ¾ö°ÝÈ÷ µûÁø´Ù´Â Á¡µµ ÁÖÀÇÇÕ´Ï´Ù.

Å×½ºÆ®: /cstBoard/dsnTest.aspx

<%@ Import Namespace="cstDB" %>

<script language="c#" runat="server">
  string ConnStr;

  void Page_Load( Object o, EventArgs e )
  {
     ConnStr = cstDBConnectionString.connectionString;
     DataBind();
  }
</script>

¿¬°á ¹®ÀÚ¿­ : <%# ConnStr %>

ÀÌ ÆäÀÌÁö¸¦ ½ÇÇàÇØ¼­, web.config ÆÄÀÏ¿¡ ÀúÀåÇÑ connectionString °ªÀÌ ³ª¿À¸é ¼º°øÀÔ´Ï´Ù.

Áö±Ý ¸¸µç °ÍÀº, DB ¿¬°á ¹®ÀÚ¿­ ( connection string )À» Á¦°øÇÏ´Â classÀÔ´Ï´Ù. ÀÌ °³Ã¼´Â connectionString À̶ó´Â static ÇÁ·ÎÆÛƼ Çϳª¸¸ Á¦°øÇÕ´Ï´Ù. static ¸Þ¼­µå´Â, ÇØ´ç °³Ã¼¿¡ ´ëÇÑ ÂüÁ¶ ¾øÀ̵µ ½ÇÇàµÉ ¼ö ÀÖ´Â ¸Þ¼­µåÀÔ´Ï´Ù. Áö±Ý ¾²ÀÌ´Â °³Ã¼°¡ ¾î´À °³Ã¼ÀÎÁö ¸ô¶óµµ ½ÇÇà°¡´ÉÇÒ¶§, staticÀ¸·Î ÇÏ°Ô µË´Ï´Ù. ( ½±°Ô ¼³¸íÀ» ¸øÇØ ÁË¼Û ) ±×³É, Àü¿¡ ¾²¿´´ø Àü¿ª º¯¼ö, Àü¿ª ÇÔ¼ö¸¦ c#¿¡¼­ ¾²°í ½ÍÀ¸¸é ¾Æ¹« °³Ã¼¿¡³ª ¸ô¾Æ³Ö°í ¾Õ¿¡ staticÀ» ºÙ¿©ÁÖ¸é µÈ´Ù°í ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù.

¾î·°Ç, ±×·³ °á·ÐÀº?

ConnStr = cstDBConnectionString.connectionString;

¾î´À ÆäÀÌÁö¿¡¼­°Ç, <%@ Import Namespace="cstDB" %> ó·³ ÇØ¼­(ȤÀº c# ¼Ò½º ÆÄÀÏÀ̶ó¸é using cstDB; ) ÇØ´ç namespace¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϰí, ¼Ò½º Áß°£¿¡ cstDBConnectionString.connectionString ·Î ¿¬°á¹®ÀÚ¿­À» ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.

À̰ÍÀº ibuyspy.comÀÇ beta1 ¹öÁ¯ ¼Ò½º¿¡¼­ »ç¿ëµÈ ¹æ½ÄÀ» ¾à°£ ¹Ù²Û °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ¿¬°á ¹®ÀÚ¿­À» ÇϳªÀÇ ¹æ½ÄÀ¸·Î °ü¸®¸¦ Çϸé, ³ªÁß¿¡ ¾ÏÈ£°¡ º¯°æµÇ´ø°¡ ÇÒ¶§ ÆíÇØÁý´Ï´Ù. À§¿¡¼­´Â web.config ¼³Á¤ ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿´½À´Ï´Ù. DB ¾ÏÈ£°¡ ¹Ù²ï´Ù¸é, web.config ÆÄÀÏÀ» ¹Ù²Ù¸é µË´Ï´Ù. º¸¾ÈÀÌ ¸¶À½¿¡ °É¸°´Ù¸é, connectionString ÇÁ·ÎÆÛƼ ÀÇ Äڵ带 ¿øÇÏ´Â ¹æ½ÄÀ¸·Î º¯°æÇϰí Àç ÄÄÆÄÀÏÇÏ¸é µË´Ï´Ù.

¿©±â¼­ ¸»ÇϰíÀÚ ÇÏ´Â ¿äÁ¡Àº, ÇϳªÀÇ ¹æ½ÄÀ¸·Î ÅëÀÏÇÏ´Â °ÍÀÌ ÁÁ´Ù´Â °ÍÀÔ´Ï´Ù. Àü¿¡ asp Ãʺ¸À϶§, °¢°¢ÀÇ ÆäÀÌÁö ¸¶´Ù ¿¬°á id/¾ÏÈ£¸¦ ³Ö¾î¼­ open Çß¾ú´Âµ¥, %cc ·Î ¼Ò½º°¡ ¶Õ¸®´Â ¹Ù¶÷¿¡ ¾ÏÈ£¸¦ ¹Ù²Ù´À¶ó °í»ýÇÑ ÀûÀÌ ÀÖ½À´Ï´Ù. ±×¶§ ȸ»ç À¥¼­¹ö ¼Ò½ºÀÇ DBÄÁ³Ø¼Ç ºÎºÐ¸¸ »©¼­ ¸ðµÎ <!--#include virtual="/include/dbopen.asp"--> ½ÄÀ¸·Î include ¹®À¸·Î ¹Ù²Ù¾ú½À´Ï´Ù. ÀÌ ¹æ½ÄÀ¸·Î º¸¾È ¹®Á¦°¡ ¿ÏÀüÈ÷ ÇØ°áµÈ °ÍÀº ¾Æ´Ï¾úÁö¸¸, Àû¾îµµ ´ÙÀ½ºÎÅÍ´Â ¾ÏÈ£¸¦ ¹Ù²Ù°Å³ª, ODBC ¿¬°áÀ» OLE-DB ¿¬°á·Î ¹Ù²Ù´Â °Í °°Àº ÀÛ¾÷ÀÌ ¼ö¿ùÇØÁ³½À´Ï´Ù.

¼Ò½º¸¦ Àá±ñ ¼³¸íÇÏ°í ³Ñ¾î°©´Ï´Ù.

using System.Configuration;

aspx ¿¡¼­ DB °ü·Ã °³Ã¼¸¦ »ç¿ëÇϱâ À§ÇØ <%@ Import Namespace="System.Data.SqlClient" %>¸¦ ½è´ø °Í ó·³, ¾î¶² °³Ã¼¸¦ »ç¿ëÇÏ·Á¸é ±× °³Ã¼°¡ ¼ÓÇÑ namespace¸¦ Import ÇØ¿Í¾ß ÇÕ´Ï´Ù. ÀÌÈÄ ConfigurationSettings °³Ã¼¸¦ »ç¿ëÇϱâÀ§ÇØ System.ConfigurationÀ» »ç¿ëÇÑ´Ù°í ¼±¾ðÇÏ¿´½À´Ï´Ù.

namespace cstDB {
...
}

À̰ÍÀº using°ú ¹Ý´ë·Î, ´ÙÀ½ ºÎÅÍ ¸¸µé¾îÁú °³Ã¼°¡ ¾î¶² namespace¿¡ ¼ÓÇÒÁö ¾Ë·ÁÁÖ´Â ºÎºÐÀÔ´Ï´Ù. ¿©±â¼­´Â cstDB¿¡ ¼ÓÇÑ´Ù°í ÇÏ¿´À¸¹Ç·Î Áß°ýÈ£( { } ) ¾ÈÀÇ ¸ðµç °³Ã¼´Â cstDB¶ó´Â namespace¿¡ ¼ÓÇÏ°Ô µË´Ï´Ù. ÀÌ·¸°Ô Çϰí ÄÄÆÄÀÏÇØ¼­ [root]/bin µð·ºÅ͸®¿¡ ³Ö¾îµÎ¸é ±× À¥»çÀÌÆ®ÀÇ ¸ðµç ÆäÀÌÁö¿¡¼­´Â <%@ Import Namespace="cstDB" %> ¸¦ Ãß°¡Çϰí, cstDB ³»ÀÇ °³Ã¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

   public class cstDBConnectionString {
      public static String connectionString {
        get {
          return ConfigurationSettings.AppSettings["connectionString"];
        }
      }
   }

¿©±â¼­ cstDBConnectionStringÀ̶ó´Â °³Ã¼¸¦ Á¤ÀÇÇØ ÁÖ¾ú´Âµ¥, connectionStringÀ̶ó´Â static ÇÁ·ÎÆÛƼ Çϳª¸¸ Á¤ÀÇÇØ ÁÖ°í ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·ÎÆÛƼÀÇ ÄÚµå´Â , Á¶È¸(get)ÇÒ °æ¿ì ¼³Á¤ ÆÄÀÏ(web.config)¿¡¼­ appSettings ű׿¡ connectionString¶ó´Â Űkey·Î Á¤ÀÇµÈ °ªÀ» °¡Á®¿À´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î ¾²À϶§´Â connectionStringÀº ´Ù¸¥ ¼Ó¼º°ª ó·³ (¸Þ¼­µå¿Í ´Þ¸®) °ýÈ£ ¾øÀÌ ¾²ÀÌÁö¸¸, ºí·° ³»¿¡¼­ Á¤ÀÇ ÇØÁØ get, set¿¡ ÀÇÇØ µ¿ÀûÀ¸·Î °ªÀ» ÁÖ°í ¹Þ°ÔµË´Ï´Ù. À§¿¡¼­´Â setÀº ¾²ÀÌÁö ¾Ê¾Ò´Âµ¥, ¸¸¾à º¯µ¿µµ °¡´ÉÇÑ ¼Ó¼ºÀÌ¸é ´ë·« ´ÙÀ½Ã³·³ ÇÏ°Ô µË´Ï´Ù.

    public String aProperty {
      get { // À̰ÍÀº a = °³Ã¼.aProperty ÇüÅÂÀÇ ¹®ÀåÀ϶§ ½ÇÇàµÈ´Ù.
        ... °ªÀ» ±¸ÇÑ ÈÄ,
        return °ª;
      }
      set { // À̰ÍÀº °³Ã¼.aProperty = a ÇüÅÂÀÇ ¹®ÀåÀ϶§ ½ÇÇàµÈ´Ù.
        .. value °ªÀ» ÀÌ¿ëÇØ¼­ ó¸®ÇÑ´Ù.
        xx = value;
      }
    }

ÀÌÁ¦ µÎ¹øÂ°·Î ¿©±â¿¡, ¾ÕÀ¸·Î ¿©·¯ °³Ã¼¸¦ ÆÄ»ýÇÒ ¿¹Á¤ÀÎ ±âº» °³Ã¼ µÎ°³¸¦ Ãß°¡½Ãŵ´Ï´Ù. cstDB.cs¸¦ ´Ù½Ã ÆíÁýÇÏ¿©, ´ÙÀ½Ã³·³ ¸¸µì´Ï´Ù.

( * ÀÌ ÆÄÀÏ¿¡¼­ OrderedTableReader ºÎºÐÀº ¾ÕÀ¸·Îµµ °è¼Ó ÷»èµË´Ï´Ù )

/bin/cstDB.cs
using System;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace cstDB {

   public class cstDBConnectionString {
      public static String connectionString {
        get {
          return ConfigurationSettings.AppSettings["connectionString"];
        }
      }
   }

   public class DBConnectedObject : IDisposable {
       
       protected SqlConnection dbConnection;

       public DBConnectedObject()
       {
           dbConnection = 
              new SqlConnection( cstDBConnectionString.connectionString );
           dbConnection.Open();
       }

       public void Dispose()
       {
          dbConnection.Close();
       }

   }

   public class OrderedTableReader : DBConnectedObject {
       
       protected String tableName;
       protected String orderedFieldName;

       public OrderedTableReader( String _tableName, 
                                  String _orderedFieldName ) : base()
       {
         tableName = _tableName;
         orderedFieldName = _orderedFieldName;
       }

       // ... ¾ÕÀ¸·Î ¿©·¯ ¸Þ¼­µå°¡ Ãß°¡µÈ´Ù.

    }
}

ÀÌÁ¦ µÎ°³ÀÇ °³Ã¼°¡ Ãß°¡ µÇ¾ú½À´Ï´Ù.

1. DBConnectedObject

ÀÌ °³Ã¼´Â DB ¿¬°á °³Ã¼ÀÎ dbConnection À̶õ ÇÁ·ÎÆÛƼ Çϳª¸¸ °®°í ÀÖ°í, ±× °³Ã¼¸¦ ¿­°í ´Ý´Â ¿ªÇÒ¸¸ ÇÕ´Ï´Ù.

   public class DBConnectedObject : IDisposable {

       protected SqlConnection dbConnection;

¿ì¼± DBConnectedObject´Â IDisposableÀ̶õ ÀÎÅÍÆäÀ̽º( °³Ã¼°¡ ¾Æ´Ô )¸¦ ÀÌ¿ëÇÕ´Ï´Ù. IDisposable ÀÎÅÍÆäÀ̽º¸¦ »ó¼ÓÇÏ´Â °³Ã¼´Â Àá½ÃÈÄ ¼³¸íÇÕ´Ï´Ù. DBConnectedObject´Â SqlConnection °³Ã¼ÀÎ, dbConnection À̶ó´Â ÇÁ·ÎÆÛƼ Çϳª¸¸ °¡Áý´Ï´Ù.

       public DBConnectedObject()
       {
           dbConnection = new SqlConnection( cstDBConnectionString.connectionString );
           dbConnection.Open();
       }

°³Ã¼ À̸§°ú °°Àº À̸§ÀÇ ¸Þ¼­µå´Â »ý¼ºÀÚ¶ó ºÒ¸®¿ì´Âµ¥, °³Ã¼°¡ ¸¸µé¾îÁú¶§ ½ÇÇàµË´Ï´Ù. Äڵ忡 ÀÇÇÏ¸é °³Ã¼°¡ new¿¡ ÀÇÇØ ¸¸µé¾îÁú¶§, DB¿¡ ¿¬°áÇÏ°Ô µË´Ï´Ù

       public void Dispose()
       {
          dbConnection.Dispose();
       }

Dispose´Â, IDiposable ÀÎÅÍÆäÀ̽º, ³ªÁß¿¡ ¼³¸íÇÒ using°ú ÇÔ²² »ç¿ëµÇ¾î¼­, °³Ã¼°¡ ´õÀÌ»ó ÇÊ¿ä¾ø°Ô µÉ¶§ È£ÃâµÇ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ¾ÕÀÇ class Á¤ÀÇ¿¡¼­ ÀÌ °³Ã¼°¡ IDisposable ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀ» º¸¾Ò´Âµ¥, IDisposableÀ» »ç¿ëÇÏ°Ô µÇ¸é Dispose¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. À§¿¡¼± SqlConnectionÀÇ Dispose()¸¦ È£ÃâÇϴµ¥¿ä, SqlConnection.Dispose()´Â ÄÁ³Ø¼ÇÀ» ´Ý´Â°Í Æ÷ÇÔÇØ¼­, ¸Þ¸ð¸®¿¡¼­ °³Ã¼¸¦ Á¦°ÅÇÏ´Â ÀÏÀ» ÇÕ´Ï´Ù.

java³ª C# ¿¡¼­, garbage collector¸¦ »ç¿ëÇÑ´Ù´Â µé¾îº¸¼ÌÀ» °ÍÀÔ´Ï´Ù. garbage collector¶õ, cpu°¡ ÇÏ´Â ÀÏÀÌ ¾ø°Å³ª ¸Þ¸ð¸®°¡ ºÎÁ·ÇÒ¶§ ½ÇÇàµÇ¾î¼­, ¸Þ¸ð¸®¿¡ ÇÒ´çµÈ °Íµé Áß ÇÊ¿ä¾ø´Â °Íµé(¾²·¹±â, garbage)À» ¼öÁýÇØ¼­(collect) ¾ø¾Ö´Â ¿ªÇÒÀ» ÇÏ´Â ½º·¹µåÀÔ´Ï´Ù. À̰ÍÀÌ Àֱ⠶§¹®¿¡, java³ª c#¿¡¼± ¸Þ¸ð¸®°¡ ÇÊ¿äÇϸé ÇҴ縸 ÇÒ »Ó, Áö¿ìÁø ¾Ê½À´Ï´Ù. Áï, new ´Â À־ delete ´Â ¾ø½À´Ï´Ù. ( c³ª c++¿¡¼± ÇÒ´çÇßÀ¸¸é ²À Áö¿ö¾ß ÇÕ´Ï´Ù. ÄÚµù¿¡ ¾à°£ÀÌ¶óµµ ½Ç¼ö°¡ ÀְųªÇÏ¸é ¸ð¸£´Â »õ¿¡ ¸Þ¸ð¸® ´©¼ö°¡ ÀϾ°í, ÄÄÇ»Å͸¦ Á×ÀÏ(?) ¼ö ÀÖ½À´Ï´Ù ) garbage collector°¡ Àֱ⠶§¹®¿¡, ¸Þ¸ð¸®¿¡ ½Å°æ¾²Áö ¾Ê°í ¸¾ÆíÈ÷ ÀÛ¾÷ÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.

±×·±µ¥ garbage collector´Â ¾Õ¼­ ½èµí, cpu°¡ ÇѰ¡Çϰųª ¸Þ¸ð¸®°¡ ºÎÁ·ÇÒ¶§ ½ÇÇàµË´Ï´Ù. ±× ¸»Àº ¹Ù²ã¸»Çϸé cpu°¡ ÇѰ¡ÇÏÁö ¾Ê´ÂÇÑ ¸Þ¸ð¸®°¡ ºÎÁ·ÇØ Áú¶§°¡ µÇ¾î¼­¾ß ½ÇÇàµÈ´Ù´Â ¶æÀÔ´Ï´Ù. À̰ÍÀº db connectionÀÎ °æ¿ì¿£ ÁÁÁö ¾Ê½À´Ï´Ù. ¿¹Àü ASP¶§ ±×·¨Áö¸¸, »ç¿ëÇÒ Çʿ䰡 ¾øÀ»¶© »¡¸® ´Ý¾Æ¹ö¸®´Â °ÍÀÌ ³´½À´Ï´Ù. ±»ÀÌ ¸Þ¸ð¸®°¡ ºÎÁ·ÇØÁú ¶§±îÁö ±â´Ù¸± Çʿ䰡 ¾øÀ¸´Ï±î¿ä.

* DB »ç¿ëÀÌ ³¡³µÀ¸¸é »¡¸® Close() Çϴ°ÍÀÌ ÁÁ´Ù´Â °Ç ´å³Ýµµ ¸¶Âù°¡Áý´Ï´Ù. Close() ÇØ¾ß Connection Pool·Î µé¾î°¡°í, ÄÁ³Ø¼Ç Ç®¿¡ ÄÁ³Ø¼ÇÀÌ ÀÖ¾î¾ß ´Ù¸¥ »ç¿ëÀÚ ¿¬°á¶§ Áï½Ã Á¦°øµÉ ¼ö ÀÖ½À´Ï´Ù.

¾ê±â°¡ Á» ±æ¾îÁ³´Âµ¥, DBConnectedObject °³Ã¼ ¸¸µç °ÍÀÌ, ÀÌ·± ÀÛ¾÷À» Á» ÆíÇÏ°Ô ÇÏ·Á´Â °ÍÀÔ´Ï´Ù.

IDisposable ÀÎÅÍÆäÀ̽º ¾²´Â °³Ã¼¸¦ »ç¿ëÇÒ¶§´Â, ´ÙÀ½ ¿¹Ã³·³ usingÀ» ¾²°Ô µË´Ï´Ù.

using( DBConnectedObject aObject = new DBConnectedObject() ) {
   .... ÀÌ·± Àú·± ÀÛ¾÷
}

using ºí·°À» ºüÁ®³ª°¥¶§¸é, using¿¡¼­ »ç¿ëÇÑ´Ù°í ÇÑ °³Ã¼(À§¿¡¼­ aObject)ÀÇ Dispose() ¸Þ¼­µå¸¦ È£ÃâÇØÁÝ´Ï´Ù. ( Áï, DBConnectionObject °æ¿ì ÄÁ³Ø¼ÇÀ» ´Ý¾ÆÁÝ´Ï´Ù ) ÀÌ·¸°Ô µÇ¸é ÀÏÀÏÈ÷ Close() ¹®À¸·Î DB¸¦ ´ÝÁö ¾Ê¾Æµµ µË´Ï´Ù. ÀÏÀÏÈ÷ ´Ý¾ÆÁ൵ µÇÁö¸¸, ... ^^; Àü¿¡ ASP ÄÚµùÇÒ¶§ ÀÌ°Ô ¸Å¿ì ±ÍÂú¾Ò¾ú½À´Ï´Ù. open ÈÄ ¿¡·¯ °Ë»ç·Î Áß°£¿¡ ºüÁ®³ª°¡´Â °æ¿ì¿¡µµ ÀÏÀÏÈ÷ close¸¦ ³Ö¾îÁà¾ß ÇÏ´Ù º¸´Ï,... Äڵ尡 ³Ê¹« ÁöÀúºÐÇØÁ®¼­ ±×³É ¾ÈÇÏ°í ¸¸ °æ¿ì°¡ Á» ÀÖ¾ú½À´Ï´Ù.

¾Æ¹«Æ°, ³»¿ëÀÌ¾ß ¾î¶»°Ç, Áß¿äÇÑ °ÍÀº °á·ÐÀÌ ¹¹³Ä´Â °ÍÀ̰í, ´ÙÀ½¿¡ »ç¿ëÇÒ »ç¶÷Àº °á·Ð¸¸ ¾Ë¸é µË´Ï´Ù. °á·ÐÀº - DBConnectedObject ¸¦ »ó¼ÓÇÑ ¸ðµç °³Ã¼´Â, using ¹®À» ¾²´Â ÇÑ, dbConnection ¿­°í ´Ý´Â°Ç ½Å°æ²¨µµ µÈ´Ù´Â °ÍÀÔ´Ï´Ù. »ý¼ºµÉ¶§ ¿¬°áµÇ°í, ÇÊ¿ä¾ø¾îÁú¶§ Dispose()µÇ´Â °ÍÀÌ º¸ÀåµÇ¹Ç·Î, ±×³É ÄÁ³Ø¼ÇÀº ¾ðÁ¦³ª ¿­·ÁÀÖ´Ù°í °¡Á¤Çϰí ÀÛ¾÷ÇÏ¸é µË´Ï´Ù. ±×¸®°í ±× °³Ã¼¸¦ »ç¿ëÇÒ¶§ using() { } ºí·°À» ¾²´Â °Í¸¸ ÀØÁö ¾ÊÀ¸¸é µË´Ï´Ù.

* ¿©±â¿£ ¸î°¡Áö °í·ÁÇÒ Á¡ÀÌ ÀÖ½À´Ï´Ù. ¿ì¼±, SqlConnection ÀÚü°¡ ¾Õ¼­ º¸¾Òµí, IDisposable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϱ⠶§¹®¿¡ using ¾²¸é µÇ°í¿ä, SqlCommand.ExecuteReader °æ¿ì CommandBehavior.CloseConnection ¸¦ Àμö·Î Á־ È£ÃâÇϸé, ¸ðµÎ ÀÐ°í³ª¸é ÀÚµ¿À¸·Î ÄÁ³Ø¼ÇÀÌ ´ÝÈ÷ÁÒ. ibuyspy.com ¼Ò½º°æ¿ì À̰ÍÀ» ÀÌ¿ëÇϴµ¥¿ä, ÀÌ ÆíÀÌ SqlConnection.Close()ÀÇ ±ÍÂúÀ½À» ÁÙÀ̴µ¥(?) ´õ ³ªÀ» ¼ö ÀÖ½À´Ï´Ù. ¼³°è¿£ ¿©·¯ ¹æ¹ýÀÌ ÀÖ°í, ÀÌ°Ô ²À ÁÁ´Ù´Â°Ç ¾Æ´Ï¶ó´Â Á¡À» ¸»¾¸µå¸®°í ½Í½À´Ï´Ù.

 

2. OrderedTableReader °³Ã¼

ÀÌ °³Ã¼´Â ¼ø¼­´ë·Î Á¤·ÄµÇ¾î Ãâ·ÂµÇ´Â °ÍµéÀ» À§ÇØ ¸¸µç °³Ã¼ÀÔ´Ï´Ù. °Ô½ÃÆÇ, ¹æ¸í·Ï, °øÁö»çÇ×µî, asp¿¡¼­ ¸¹Àº ºÎºÐÀ» Â÷ÁöÇÏ´Â °ÍµéÀÌ º¸Åë ¿ª¼øÀ¸·Î ( ÃÖ±Ù±ÛÀÌ ¾Õ¿¡ ¿Àµµ·Ï ) Á¤·ÄµÇ¾î Ãâ·ÂµË´Ï´Ù. select ¹®À¸·Î Ä¡¸é

select * from tableName order by fieldName desc

ÇüÅ·ΠÁ¤·ÄµÇ´Â °ÍµéÀÔ´Ï´Ù. ±×·¯ÇÑ °³Ã¼µéÀº ¸ðµÎ ÀÌ OrderedTableReader¸¦ »ó¼Ó¹Þ°Ô µË´Ï´Ù. À̹ø¿¡ ´Ù·çÁø ¾ÊÁö¸¸, ´äº¯Çü °Ô½ÃÆÇ °æ¿ìµµ, Á¦ °æ¿ì ¼ø¼­¸¦ Çʵå Çϳª¸¸À¸·Î Çϰí, ÀÌ °³Ã¼¿¡¼­ »ó¼Ó¹Þ¾Æ¼­ ¸¸µé ¼ö ÀÖ¾ú½À´Ï´Ù. ¹æ¸í·Ï, °øÁö»çÇ×, ÀÚ·á½Ç µîµî, °ÅÀÇ ¸ðµç °Ô½ÃÆÇ ÇüÅ¿¡ Àû¿ëÇÏ·Á°í ¸¸µç °³Ã¼ÀÔ´Ï´Ù.

   public class OrderedTableReader : DBConnectedObject {
       
       protected String tableName;
       protected String orderedFieldName;

       public OrderedTableReader( String _tableName, 
                                  String _orderedFieldName ) : base()
       {
         tableName = _tableName;
         orderedFieldName = _orderedFieldName;
       }

       // ... ¾ÕÀ¸·Î ¿©·¯ ¸Þ¼­µå°¡ Ãß°¡µÈ´Ù.
    }

DBConnectionObject¿¡¼­ »ó¼Ó¹Þ°í, »ý¼ºÀÚ¿¡¼­ Å×À̺íÀ̸§°ú ¼ø¼­ÀÇ ±âÁØÀÌµÉ ÇʵåÀÇ À̸§À» ¹Þ½À´Ï´Ù. ( Áï, ¸¸¾à OrderedTableReader¸¦ »ç¿ëÇÏ°Ô µÇ¸é OrderedTableReader otr = new OrderedTableReader("cstBoard", "seq") ½ÄÀ¸·Î »ý¼ºÇÕ´Ï´Ù )

¼ø¼­´ë·Î Á¤·ÄµÈ Å×ÀÌºí¿¡¼­ ÀϺΠÀÇ ·¹Äڵ带 »Ì¾Æ¿À´Â °Í ( ¿¹¸¦ µé¾î, 30 ¹øÂ° ºÎÅÍ 50 ¹øÂ°±îÁö ) Àº °Ô½ÃÆÇ, °øÁö»çÇ×, ¹æ¸í·Ï ¸ðµÎ Áߺ¹µË´Ï´Ù. ³ªÁß¿¡ ±¸ÇöÇϰÚÁö¸¸, ¾î´À Å×ÀÌºí ¸î¹øÂ°¼­ ºÎÅÍ ¸î ¹øÂ°±îÁöÀÇ ·¹Äڵ常 »Ì¾Æ³»´Â °Í, ·¹ÄÚµåÀÇ ÃÑ °¹¼ö¸¦ ¼¼´Â °Í, ¾î´À ±ÛÀÇ ÀÌÀü±Û°ú ´ÙÀ½±ÛÀ» ±¸ÇÏ´Â °Í µî ¿©·¯ °÷¿¡¼­ Áߺ¹µÇ´Â °ÍµéÀ» ÀÌ OrderedTableReader¿¡ ³ÖÀ» »ý°¢ÀÔ´Ï´Ù.


¼ø¼­°¡ À߸øµÈ°Í °°´Ù´Â »ý°¢µµ µå³×¿ä( asp Çϱ⵵ Àü¿¡ com dll¸ÕÀú ¸¸µå´Â °Í °°Àº ^^ ). Á» º¹ÀâÇÏ´õ¶óµµ, ÄÄÆ÷³ÍÆ® Áß½ÉÀÎ asp.netÀ» °­Á¶ÇÏ·Á´Ù º¸´Ï, °³Ã¼ Á¤ÀÇ ºÎÅÍ µé¾î°¡°Ô µÇ¾ú½À´Ï´Ù. À̹ø °­Á¿¡¼± ÄÄÆÄÀÏÇÏ´Â ¹æ¹ý¸¸ ÀÍÈ÷½Ã°í, ´ÙÀ½ °­Á¸¦ À§ÇÑ Áغñ·Î »ý°¢ÇϽñ⠹ٶø´Ï´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº ±Û¾²±â/±Ûº¸±â/±Û¸ñ·Ï µî °¢°¢ÀÇ ÆäÀÌÁö¸¦ ¸¸µé¶§ ´Ù½Ã ¼³¸íµå¸®°Ú½À´Ï´Ù.

Á¦°¡ ¸¸µé·Á°í, ¸Ó¸®¼Ó¿¡ ±×·Áº¸´Â °³Ã¼ÀÇ ±¸¼ºµµ´Â ´ÙÀ½°ú °°½À´Ï´Ù.

  • cstDBConnectionString : ¿¬°á ¹®ÀÚ¿­ °ü¸®
  • DBConnectedObject
    • OrderedTableReader
      • MessageBoard : °Ô½ÃÆÇ °³Ã¼.
      • GuestBook : ¹æ¸í·Ï °³Ã¼.
      • NoticeBoard : °øÁö»çÇ× °³Ã¼
      • ThreadedBoard : ´äº¯Çü °Ô½ÃÆÇ °³Ã¼
    • Poll : ¿©·ÐÁ¶»ç °³Ã¼
  • cstUtil : ¹®ÀÚ¿­ ġȯ, IP º¯È¯µî ¿©·¯ ÇÔ¼ö ¸ðÀ½
°­Á¿¡¼­ NoticeBoard, ThreadedBoard, Poll °°Àº °ÍÀ» ¸¸µå´Â °ÍÀº ¾Æ´Ï°í¿ä, ¹Ì¸®, ¾ÕÀ¸·Î ¾î¶² °³Ã¼¸¦ ¾îµð¼­ ÆÄ»ýÇØ¼­, ¾î¶»°Ô ¸¸µé¸é È¿À²ÀûÀÏÁö ±×·Áº¸´Â °ÍÀÔ´Ï´Ù. °­Á¿¡¼± DBConnectedObject ¸¦ »ó¼ÓÇØ¼­ OrderedTableReader¸¦ ¸¸µé°í, ´Ù½Ã ±×°ÍÀ» »ó¼ÓÇØ¼­ MessageBoard·Î ¸¸µå´Âµ¥¿ä, °Ô½ÃÆÇ ¸¸ ¸¸µéÀÚ¸é ±×·² Çʿ䰡 ¾ø½À´Ï´Ù. ±×·¯³ª À§Ã³·³ °øÁö»çÇ×À̳ª, ¿©·ÐÁ¶»ç °°Àº ´Ù¸¥ °Íµµ ¸¸µé°Ô µÇ¸é, ±â¹ÝÀÌ µÇ´Â Ŭ·¡½º¸¦ Çϳª ¸¸µé°í, °Å±â¼­ ÆÄ»ýÇØ ³ª°¡¸é¼­ Tree ÇüŸ¦ ¸¸µé¸é È¿À²ÀûÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

Àú´Â ÀÌ·¸°Ô ±¸¼ºÇÒ »ý°¢ÀÔ´Ï´Ù¸¸, °³Ã¼¸¦ ¼³°è¿¡´Â ¿©·¯ ¹æ¹ý, ¿©·¯ ±×¸²ÀÌ ÀÖÀ» ¼ö ÀÖ°Ú½À´Ï´Ù. ÁÁÀº ¼³°è, ³ª»Û ¼³°è´Â ÀÖÀ» ¼ö ÀÖÁö¸¸, Á¤´äÀº ¾ø´Â °Í °°½À´Ï´Ù. ¿©±â¼­ Á¦°¡ »ý°¢ÇÏ´Â ±×¸²À» ¼³¸íÇØ µå¸®´Â °ÍÀº, Á¦ ¼³°è°¡ ±¦Âú¾Æ¼­°¡ ¾Æ´Ï°í¿ä, °³Ã¼ ÁöÇâÇü ÇÁ·Î±×·¡¹ÖÀ̶ó´Â °Í°ú '»ó¼Ó'À̶õ °ÍÀ» Á¶±ÝÀ̳ª¸¶ º¸¿©ÁÖ·Á´Â °ÍÀ̾ú½À´Ï´Ù.

°Ô½ÃÆÇ ¸¸µé°í, °­Á¸¦ ¾²¸é¼­ »ý°¢ÇØ º¸´Ï, ´Ù¸¥ ¹æ¹ýÀÌ ´õ ÁÁ°Ú´Ù´Â »ý°¢ÀÌ ÀÚ²Ù µå³×¿ä ^^ Á» °æÇèÀÌ »ý±â¸é ±¦ÂúÀº ¼³°è°¡ ³ª¿ÀÁö ¾ÊÀ»±î ÇÕ´Ï´Ù.

 

Back