ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇØº¸ÀÚ
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À» »ç¿ëÇÑ´Ù°í ¼±¾ðÇÏ¿´½À´Ï´Ù.
À̰ÍÀº 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
|