|
°Á Àü Å¿ÀÀÇ Àâ´ã>
À̹ø °Á´ Àú¹ø ASP.NET ³»ºÎ »ìÆìº¸±â °Á¿¡ ÀÌ¾î °¡·Îä±â ÇÊÅ͸¦ ±¸ÇöÇÏ´Â ¿¹ÀÔ´Ï´Ù. Áß±ÞÀûÀÎ ÁÖÁ¦ÀÌÁö¸¸
±×·¸°Ô ¾î·ÆÁö ¾ÊÀ¸´Ï ¿ì¸® ¸ðµÎ Èû³»¼ ¹Ù¦~ ´Þ·Áº¸ÀÚ±¸¿ä~~ ^^;
ASP.NET HTTP ·±Å¸ÀÓÀº °³Á¦ ÁöÇâÀûÀ̰í, À̺¥Æ® ÁöÇâÀûÀÎ ÇϺα¸Á¶¸¦ ³ëÃâÇϰí Àֱ⿡, ¿äû°ú ÀÀ´ä »çÀÌ¿¡ Âü¿©ÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀ» ½±°Ô(?) ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. Áï, ASP.NET ·±Å¸ÀÓÀÇ ¿©·¯ ÇÁ·Î¼¼½º »çÀÌ¿¡ ¿ì¸®°¡ Á¦ÀÛÇÑ Æ¯º°ÇÑ ±â´ÉµéÀ» ³¢¿ö ³Ö¾î ±¸µ¿½Ãų ¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ. ±×¸®°í, ±×°ÍÀ» °¡´ÉÇÏ°Ô ÇÏ´Â °Í Áß Çϳª°¡ À̹ø °Á¿¡¼ ´Ù·ê HttpModule ÀÔ´Ï´Ù.
µðÀÚÀÎ ÆÐÅÏÀÇ Ãø¸é¿¡¼ ¹Ù¶óº¸ÀÚ¸é, HttpModuleÀº Interceptiong Filter ÆÐÅÏÀÇ ÇÑ À¯ÇüÀ̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿äûÀÇ Ã³¸® Àü°ú ÈÄ¿¡ ¼¹öÀÇ Ã³¸® À̺¥Æ®µéÀ» °¡·Îä¾î¼ Ãß°¡ÀûÀÎ ¾î¶² ·ÎÁ÷À» ¼öÇàÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÆÐÅÏÀ» ÀϹÝÀûÀ¸·Î Interceptiong Filter ÆÐÅÏÀ̶ó°í Çϴµ¥, HttpModule°¡ ¹Ù·Î ±×·¯ÇÑ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ÇÊÅÍÀ̱⠶§¹®ÀÔ´Ï´Ù. .NET ÀÌÀü¿¡´Â ÀÌ·¯ÇÑ ÇÊÅ͸¦ Á¦ÀÛÇϱâ À§Çؼ C++·Î ISAPI ÇÊÅ͸¦ Á¦ÀÛÇØ¾ß Çß½À´Ï´Ù. ±×·¸±â¿¡, HTTP ¸ðµâÀº ÀÌÀüÀÇ ISAPI(Internet Services Application Programming Interface) FilterÀÇ .NET ÀÔÀåÀÇ ³í¸®ÀûÀÎ ´ëü¶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù.
HttpModuleÀÇ ¿ªÇÒ ¹× ½ÇÇà ½ÃÁ¡ µî¿¡ ´ëÇØ¼´Â ÀÌÀü °Á¿¡¼ ¾î´À Á¤µµ ¼³¸íÀÌ µÇ¾úÀ¸¹Ç·Î, ÀÌÁ¦´Â ½ÇÁ¦ÀûÀÎ À̾߱â·Î µé¾î°¡ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Á¶±ÝÀº ¾î·Á¿ï ¼öµµ ÀÖ´Â À̾߱âÁö¸¸, À̾߱â ÀçÁÖ²Û Å¿ÀÀÇ ½¬¿î ¼³¸íÀÌ ÀÖÀ¸´Ï °áÄÚ °Ì³ªÁö ¾Ê½À´Ï´Ù!!! ±×·¸Áö ¾Ê½À´Ï±î? -_-+ (¿ª½Ã ±×·¸Áö ¾Ê±º¿ä!)
¿ì¼± ¿©·¯ºÐÀº ±âÁ¸ÀÇ ±Ûµé ¹× À§ÀÇ ±ÛµéÀ» ÀÐÀ¸¸é¼ ÀÌ·¸°Ô »ý°¢ÇϼÌÀ» °¡´É¼ºÀÌ ¸Å¿ì Å®´Ï´Ù.
"±×·¡¼, HttpModuleÀ» ¸¸µé¾î¼ ¾îµð´Ù°¡ ¾²°Ú´Ù´Â °Å¾ß? ³ ¾ÆÁ÷µµ HttpModule¶ó´Â °ÍÀÌ ¹«¾ùÀÎÁö, ¿Ö ÇÊ¿äÇÑÁö, ±×¸®°í ¾îµð¿¡ Àû¿ëÇØ¾ß ÇÏ´Â °ÍÀÎÁö °¨ÀÌ µµÅë ¿ÀÁö ¾ÊÀ»¶ó±¸ ÇØ! Áö±Ý²¯ ±×°Å ¸ô¶ú¾îµµ ASP.NETÀ¸·Î ÇÁ·Î±×·¥ Â¥´Âµ¥ ¾Æ¹«·± ÇÁ¶óºí·³ÀÌ ¾ø¾ú´Ù±¸~"
±×·¸½À´Ï´Ù. ±×·¸´Ù¸é ÀÌÁ¦ ¸»ÀÔ´Ï´Ù. Àúµµ Àß ¸ð¸£¸é¼ ¾Æ´Â ô ±×¸¸Çϰí, ½ÇÁ¦·Î ÀÌÇØ¸¦ µµ¿ï¸¸ÇÑ À̾߱⸦ ÇØ¾ß ÇÒ µí ÇÕ´Ï´Ù. ¾È ±×·¨´Ù°£, ¡°±×·¡, ³× µ¢ ±½´Ù!¡±¶õ ÁöźÀ» ¹ÞÀ»Áöµµ ¸ð¸£´Ï±î¿ä ^^;;
¾Æ¸¶µµ ¿©·¯ºÐÀº Global.asax¸¦ »ç¿ëÇØ º¸½Å ÀûÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ±× ÆÄÀÏ ¾È¿¡´Â ´ÙÀ½°ú °°Àº À̺¥Æ®µéÀÌ ÀÖ´Â °ÍÀ» ¾Æ½Ç °ÍÀÔ´Ï´Ù.
Application_OnStart
Session_OnStart
Session_OnEnd
Application_OnEnd
ÀÌ À̺¥Æ®µéÀº asp ½ÃÀý¿¡µµ ÀÖ¾î¿Ô´ø °ÍµéÀ̱⿡ ÀÌ¹Ì ´Ùµé À̵éÀÇ ¿ªÇÒÀ» ¾Æ½Ç °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù. »çÀÌÆ®ÀÇ Ä«¿îÅ͸¦ ¸¸µé±â À§Çؼ, ȤÀº ¹æ¹®ÀÚ Á¢¼Ó Åë°è¸¦ ¸¸µé±â À§Çؼ ÀÌ·¯ÇÑ À̺¥Æ®µéÀ» »ç¿ëÇØ º» °æÇèµéÀÌ ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ±×·¸ÁÒ?
±×¸®°í, ASP.NET¿¡¼´Â Global.asax ÆÄÀÏÀÌ º¸À¯Çϰí ÀÖ´Â À̺¥Æ®°¡ ASP ½ÃÀýº¸´Ù ´õ ¸¹ÀÌ ÀÖ´Ù´Â °Íµµ ¾Æ½Ç °ÍÀÔ´Ï´Ù. ´çÀåÀÌ¶óµµ Global.asax ÆÄÀÏÀÇ ¼Ò½º¸¦ ¿¾îº¸¼¼¿ä. ¾Æ¸¶µµ ´ÙÀ½°ú °°Àº À̺¥Æ®µéÀÌ ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °Å¿¹¿ä
Application_BeginRequest
Application_Error
¶ÇÇÑ, Global.asax ÆÄÀÏÀÇ ºÎ¸ð Ŭ·¡½º°¡ HttpApplicationÀÎ °Íµµ º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, ÀÌ À̾߱â´Â Global.asaxµµ ±âº»ÀûÀ¸·Î ÀÌ·¯ÇÑ HttpApplication Ŭ·¡½ºÀÇ À̺¥Æ®µéÀ» ¸ðµÎ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ̰ÚÁÒ? Áï, ´ÙÀ½°ú °°Àº À̺¥Æ®µéÀ» ¸»ÀÔ´Ï´Ù.
| À̺¥Æ®
|
¼³¸í
|
| BeginRequest
|
»õ·Î¿î ¿äûÀÌ µé¾î¿Ã °æ¿ì ¼öÇàµÈ´Ù. ¸ðµç ¿äû¿¡ ´ëÇØ¼ ¹Ýµå½Ã ÀϾÙ.
|
| AuthenticationRequest
|
ÀÎÁõ ¸ÞÄ¿´ÏÁòÀÌ ÇØ´ç ¿äûÀ» ÀÎÁõÇÑ °æ¿ì ÀϾÙ
|
| AuthorizationRequest
|
AuthenticationRequest¿¡ À̾î¼, ¿äû¿¡ Çã°¡¸¦ ºÎ¿©ÇÑ °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.
|
| ResolveRequestCache
|
Ãâ·Â ij½Ã ¸ðµâÀº ij½ÌµÈ ¿äû 󸮸¦ ½Å¼ÓÈ÷ ó¸®Çϱâ À§Çؼ ÀÌ À̺¥Æ®¸¦ »ç¿ëÇÑ´Ù.
|
| AcquireRequestState
|
°³º°ÀûÀÎ ¿äû »óŸ¦ ¾ò¾î¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë¸°´Ù.
|
| PreRequestHandlerExecute
|
¿äû Çڵ鷯°¡ ½ÇÇàµÇ±â Á÷Àü¿¡ ¹ß»ýÇÑ´Ù. ÀÌ À̺¥Æ®´Â HTTP Çڵ鷯°¡ È£ÃâµÇ±â Àü¿¡ ¸¶Áö¸·À¸·Î ´Ù·ê ¼ö ÀÌ´Â À̺¥Æ®ÀÌ´Ù.
|
| PostRequestHandlerExecute
|
HTTP Çڵ鷯°¡ ¿äûÀ» ¸¶Ä£ µÚ ¹ß»ýÇÑ´Ù.
|
| ReleaseRequestState
|
¾îÇø®ÄÉÀ̼ÇÀÌ ¿äû 󸮸¦ ¸¶ÃƱ⿡, ¿äû »óŰ¡ ÀúÀåµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë¸°´Ù
|
| UpdateRequestCache
|
ÄÚµå 󸮰¡ ¿Ï·áµÇ¾ú°í, ÇØ´ç ÆÄÀÏÀÌ ASP.NET ij½Ã¿¡ Ãß°¡µÉ Áغñ°¡ µÇ¾úÀ½À» ¾Ë¸°´Ù.
|
| EndRequest
|
¿äû¿¡ ´ëÇÑ ¸¶Áö¸· À̺¥Æ®. ¾îÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÉ °æ¿ì È£ÃâµÇ´Â ¸¶Áö¸· À̺¥Æ®ÀÌ´Ù.
|
À§ÀÇ ¸ñ·ÏÀº ¹ß»ýÇÏ´Â ¼ø¼¿¡ µû¸¥ °ÍÀÔ´Ï´Ù. ±×¸®°í, ¼ø¼¾øÀÌ Æ¯Á¤ »óȲ¿¡ ¹ß»ýÇÏ´Â À̺¥Æ®µé·Î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ½À´Ï´Ù.
| À̺¥Æ®
|
¼³¸í
|
| Error
|
󸮵ÇÁö ¾ÊÀº ¿¹¿Ü°¡ ¹ß»ýÇÑ °æ¿ì ÀϾÙ.
|
| PreSendRequestHeaders
|
ÀÌ´Â HTTP Çì´õ°¡ Ŭ¶óÀÌ¾ðÆ®·Î ³»·Á º¸³»±â Àü¿¡ ¹ß»ýÇÑ´Ù. À̸¦ ÅëÇØ Çì´õ¸¦ Ãß°¡, Á¦°Å, ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
|
| PreSendRequestContent
|
ÀÌ´Â ÄÁÅÙÆ®¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ³»·Á º¸³»±â Á÷Àü¿¡ ¹ß»ýÇÑ´Ù. À̸¦ ÅëÇØ ÄÁÅÙÆ®¸¦ º¸³»±â Àü¿¡ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
|
ÀÌ À̺¥Æ®µéÀº Á¤È®ÇÏ°Ô ¸»ÇÏÀÚ¸é, HttpApplication Ŭ·¡½º°¡ Á¦°øÇÏ´Â À̺¥Æ®µéÀÔ´Ï´Ù. ¹°·Ð, Global.asax ÀÇ °æ¿ì´Â À§¿¡ ³ª¿ÇÑ HttpApplication Ŭ·¡½ºÀÇ ±âº» À̺¥Æ® ¿Ü¿¡µµ Session_OnStart¿Í °°Àº °ÍµéÀ» Ãß°¡ÀûÀ¸·Î ±¸ÇöÇϰí ÀÖ±ä ÇÕ´Ï´Ù¸¸, ±âº»ÀûÀ¸·Î´Â À§¿Í °°Àº À̺¥Æ®µéÀ» ASP.NET ·±Å¸ÀÓÀ¸·ÎºÎÅÍ Á¦°ø¹Þ´Â °ÍÀÌÁÒ. ÇØ¼, ¾îÇø®ÄÉÀÌ¼Ç °øÅëÀûÀ¸·Î À§¿¡¼ ³ª¿ÇÑ À̺¥Æ®µé »çÀÌ¿¡ ¾î¶² 󸮸¦ ¼öÇàÇÏ°í ½ÍÀ» °æ¿ì, Globla.asax ÆÄÀÏ ¾È¿¡ Á÷Á¢ÀûÀ¸·Î ÇÊ¿äÇÑ Äڵ带 ÀÛ¼ºÇؼ ¿øÇϴ ó¸®¸¦ ±¸µ¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸, ±×·¸°Ô ó¸®ÇØ¾ß ÇÒ ÀÛ¾÷µéÀÌ ¸¹¾ÆÁö°Ô µÇ¸é, Global.asax´Â ¸Å¿ì ÁöÀúºÐÇØÁú °ÍÀ̰í, ¾÷¹«º°·Î µû·Î ÀÛ¼ºµÇ¸é ´õ ÁÁÀ» ÄÚµåµéÀÌ ÇϳªÀÇ ÆÄÀϾȿ¡ ¸ðµÎ µÚÁ×¹ÚÁ× ¼¯¾îÁú °ÍÀ̱⿡, °¡µ¶¼º Ãø¸é¿¡¼³ª Â÷ÈÄ °ü¸® ¹× À¯Áö º¸¼ö Ãø¸é¿¡¼µµ ¸Å¿ì ÁÁÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
¶ÇÇÑ, ±×·¯ÇÑ ÀÛ¾÷ÀÌ ÇöÀç Á¦ÀÛÁßÀÎ À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼¸¸ »ç¿ëµÇ¾î¾ß ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ´Ù¸¥ À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼µµ ÇÊ¿äÇÏ´Ù¸é ¾î¶»°Ô µÉ±î¿ä? ¹¹~ ÁöÀúºÐÇØÁø Global.asax ÆÄÀÏÀ» º¹»çÇØ¼ °¡Á®´Ù°¡ ÆíÁýÇØ¼ ½áµµ µÇ°ÚÁö¸¸, ±× ¹æ¹ýÀº ±×´ÙÁö È¿°úÀûÀ̶ó°í ´À²¸ÁöÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. Äڵ尡 º¯°æµÇ°Å³ª, º¸°µÇ¾î¾ß ÇÑ´Ù¸é ±×·¸³ª Global.asaxµéÀ» ´Ù ã¾Æ´Ù´Ï¸é¼ °íÃÄÁÖ¾î¾ß ÇÒÅ״ϱî¿ä. ±×·¸½À´Ï´Ù. »ý°¢¸¸Çصµ ²ûÂïÇϳ׿ä!!
±×·² ¹Ù¿¡´Â Â÷¶ó¸®, ±×·¯ÇÑ ±â´ÉµéÀ» µ¶¸³ÀûÀÎ º°µµÀÇ ¸ðµâ(ȤÀº ÄÄÆ÷³ÍÆ®)·Î ¸¸µé¾î¼ Àç»ç¿ëÇÏ´Â ÂÊÀ¸·Î ¼³°è¹æÇâÀ» Àâ´Â °ÍÀÌ ÈξÀ ´õ È¿°úÀûÀÏ °ÍÀ̶ó´Â »ý°¢ÀÌ µéÁö ¾Ê½À´Ï±î?
ÇØ¼, HttpModuleÀÌ ÇÊ¿äÇÑ °ÍÀÔ´Ï´Ù!
Global.asax¸¦ Á÷Á¢ÀûÀ¸·Î ÀÌ¿ëÇÏÁö ¾Ê°íµµ, HttpModuleÀ» Á¦ÀÛÇÏ¿© »ç¿ëÇÏ¸é ¹Ù·Î ±×·¯ÇÑ ¾îÇø®ÄÉÀÌ¼Ç À̺¥Æ®µéÀ» ·±Å¸ÀÓ Áß¿¡ °¡·Îç ¼ö ÀÖÀ¸¸ç, ƯÁ¤ ¿ä°Ç¿¡ µû¶ó ó¸®ÇØ¾ß ÇÒ ÀÛ¾÷µéÀ» °³º°ÀûÀ¸·Î ¸ðµâÈ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð, ±×·¸±â¿¡ Àç»ç¿ëÀÌ °¡´ÉÇÑ °ÍÀº µÎ¸»ÇÒ Çʿ䵵 ¾ø°ÚÁÒ?
¿¹¸¦ µé¾î, ¿¹¿Ü°¡ ¹ß»ýÇÒ °æ¿ì ±× ³»¿ªÀ» ÆÄÀÏÀ̳ª µ¥ÀÌÅͺ£À̽º¿¡ ·Î±ëÀ» ÇÏ°í ½Í´Ù¸é? ±×·¸´Ù¸é, ±×·¯ÇÑ ÀÛ¾÷À» Global.asax¿¡ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °³º°ÀûÀÎ HttpModule¸¦ ÀÛ¼ºÇؼ »ç¿ëÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ¶ÇÇÑ, À¥ ÆäÀÌÁöÀÇ ¼öÇà½Ã°£À̳ª ¿äû Á¤º¸ Åë°è °°Àº °ÍµéÀ» º°µµ·Î ·Î±ëÇÏ°í ½ÍÀ» °æ¿ìµµ ±×·¯ÇÑ ÀÛ¾÷À» Global.asax¿¡ Á÷Á¢ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó º°µµÀÇ HttpModule¸¦ ÀÛ¼ºÇؼ »ç¿ëÇÏ¸é µË´Ï´Ù. ÀÌ·¸°Ô µÇ¸é, °¢°¢ÀÇ ±â´ÉµéÀÌ º°µµ·Î ¸ðµâÈ µÇ±â¿¡ °¡µ¶¼º Ãø¸é¿¡¼µµ, °ü¸®, Àç »ç¿ë¼º Ãø¸é¿¡¼µµ Å« ÀÌÀÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù (´Ù¸¸, ¼º´ÉÀûÀ¸·Î´Â ¾à°£ÀÇ Èñ»ýÀÌ ¿ä±¸µÉ µÎµµ ÀÖÀ» °ÍÀ̱ä ÇÕ´Ï´Ù).
´Ù¼Ò À̾߱Ⱑ º¹ÀâÇØÁø °Í °°Àºµ¥, Á¤¸®ÇÏÀÚ¸é ´ÙÀ½°ú °°½À´Ï´Ù.
HttpModule¸¦ Á¦ÀÛÇÏ°Ô µÇ¸é, ¾îÇø®ÄÉÀ̼ÇÀÇ ¿©·¯ À̺¥Æ®µéÀ» °¡·Îä¼ ¾îÇø®ÄÉÀÌ¼Ç °øÅëÀûÀ¸·Î ÇÊ¿äÇÑ ÀÛ¾÷µéÀ» µ¶¸³ÀûÀ¸·Î ¸ðµâÈÇÒ ¼ö ÀÖ´Ù(ÇØ¼, À̸¦ Intercepting Filter¶ó°íµµ À̾߱âÇÕ´Ï´Ù)
|
À§¿¡¼ Global.asax¿Í HttpModuleÀ» ºñ±³ÇØ °¡¸é¼ ¼³¸íÀ» ÇÏ¿©, Ȥ½Ã¶óµµ HttpModuleÀÌ Global.asaxÀÇ ´ëüÀÏ ¼ö ÀÖ´Ù°í »ý°¢ÇϽDZî ÇÏ¿© ÷¾ðÇÏÀÚ¸é ¸»ÀÔ´Ï´Ù. »ç½Ç, HttpModuleÀÇ ¿ªÇÒÀÌ Global.asaxÀÇ ¿ªÇÒÀ» ´ë½ÅÇϱâ À§ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÌÇØ¸¦ µ½±â À§Çؼ Global.asax¿Í ºñ±³Çذ¡¸é¼ ¼³¸íÇÑ °ÍÀÌÁö, ±×°ÍÀÌ ÁÖ ¸ñÀûÀº ¾Æ´Ï¶ó´Â °ÍÀ» ±â¾ïÇÏ¼Å¾ß ÇÕ´Ï´Ù. HttpModuleÀº ¸» ±×´ë·Î °øÅëÀûÀÎ Http ¿äû¿¡ ´ëÀÀÇϱâ À§ÇÑ ¸ðµâÀ̶ó´Â °ÍÀ» ±â¾ïÇϼ¼¿°~
|
Âü°í : Intercepting Filter ÆÐÅÏ
HttpModuleÀº À¥ ¾îÇø®ÄÉÀÌ¼Ç ³»ÀÇ ¹Ýº¹ÀûÀÎ ±â´ÉÀ» ±¸ÇöÇϱâ À§ÇØ Intercepting Filter ÆÐÅÏÀ» Àû¿ëÇÑ ±â¼úÀÔ´Ï´Ù. Áï, À¥ ¾îÇø®ÄÉÀ̼ÇÀÌ ÆäÀÌÁö ¿äûÀ» ó¸®Çϱâ ÀüÀ̳ª ÈÄ¿¡ °íÀ¯ÇÑ ¾î¶² ó¸® °úÁ¤À» Ãß°¡ÇØ¾ß ÇÒ Çʿ䰡 ÀÖÀ» °æ¿ì »ç¿ëÇÏ´Â ±â¼úÀÔ´Ï´Ù. ±âÁ¸ Äڵ峪 ÇÁ·¹ÀÓ¿öÅ©¸¦ º¯°æÇÔ ¾øÀÌ »õ·Î¿î ¸ðµâÀ» °áÇÕÇÒ ¼ö ÀÖ´Â ÀåÁ¡À» Á¦°øÇÏ´Â ´ë½Å, ¼º´ÉÀûÀÎ ºÎ´ãÀÌ ÀÖÀ» ¼ö ÀÖ´Â ºÎºÐÀº Ç×»ó À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù.
|
Á¶±Ý ¾î·Æ³ª¿ä? ±×·¸´Ù¸é ½ÇÁ¦ ¿¹Á¦°¡ ÇÊ¿äÇÑ ½ÃÁ¡ÀÌ µÇ°Ú³×¿ä. ÀÏ´Ü, °£´ÜÇÑ ¿¹Á¦ºÎÅÍ Çѹø ÇØº¸°í À̾߱⸦ ´õ ÁøÇàÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
¿¹Á¦¸¦ À§Çؼ »õ·Î¿î ASP.NET »çÀÌÆ® Çϳª¿Í Ŭ·¡½º ¶óÀ̺귯¸®¸¦ Çϳª ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. VS.NETÀ» ¿°í ¿ì¼±ÀûÀ¸·Î ASP.NET ÀÀ¿ë ÇÁ·Î±×·¥À» Çϳª ¸¸µé¾î º¸µµ·Ï Çϼ¼¿ä. Àú´Â ÇÁ·ÎÁ§Æ® ¸íĪÀ» WebSampleApp ¶ó°í ÁÖ¾î º¸¾Ò½À´Ï´Ù. ±×¸®°í, ±× ÇÁ·ÎÁ§Æ®ÀÇ [¼Ö·ç¼Ç]¿¡ ¸¶¿ì½º ¿ìÃø Ŭ¸¯À» Çϰí [Ãß°¡][»õ ÇÁ·ÎÁ§Æ®]¸¦ ¼±ÅÃÇØ¼ AspNetRuntimeEx¶ó´Â À̸§ÀÇ Å¬·¡½º ¶óÀ̺귯¸® ÇÁ·ÎÁ§Æ®¸¦ Çϳª ´õ Ãß°¡Çß½À´Ï´Ù. ±×¸®°í, ±âº»ÀûÀ¸·Î Á¸ÀçÇÏ´Â Class1.cs ÆÄÀÏÀ» Á¦°ÅÇϰí, ExeTimeModule.cs¶ó´Â »õ·Î¿î Ŭ·¡½º¸¦ Ãß°¡Çϼ¼¿ä. ±×·¸°Ô ÇØ¼ ¸¸µé¾îÁø VS.NET ÇÁ·ÎÁ§Æ®´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ExeTimeModule¶ó´Â Ŭ·¡½º´Â HttpModule·Î¼ Á¦ÀÛÀ» ÇÒ ³à¼®Àä. ÀÌ Ä£±¸°¡ ÇÒ ÀÛ¾÷Àº ¸Å¿ì ´Ü¼øÇÕ´Ï´Ù. ´ÜÁö ÆäÀÌÁö¸¦ ½ÇÇàµÇ´Â µ¥ °É¸° ½Ã°£À» ¸Å ÆäÀÌÁöÀÇ ÇÏ´Ü¿¡ Ãâ·ÂÇÒ °ÍÀ̰ŵç¿ä. ¿ì¼±Àº ´Ü¼øÇÑ ¿¹Á¦·Î ½ÃÀÛÇÏ´Â °ÍÀÌ ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÇ±â¿¡ ±×·¸°Ô ÇÏ´Â °ÍÀÌÁö, ¿©·¯ºÐÀ» ¹«½ÃÇϰųª °¡ºÀÌ ¿©±â¼ ±×·± ¿¹Á¦¸¦ ÇÏ´Â °ÍÀº ¾Æ´ÔÀ» ¾Ë¾ÆÁֽʽÿÀ ^^;
±×·³ ÀÌÁ¦ ExeTimeModule Ŭ·¡½ºÀÇ ±¸ÇöºÎ·Î ÁÁ¾Æ~ °¡´Â°Å¾ß~~ (³ëÈ«ÃÍ ¹öÀüÀÔ´Ï´Ù) ÀÏ´Ü ¿¹Á¦ÀÇ Àüü ¼Ò½º´Â ´ÙÀ½°ú °°½À´Ï´Ù.
using System;
using System.Web;
namespace AspNetRuntimeEx
{
public class ExeTimeModule : IHttpModule
{
private DateTime startTime;
// IhttpModule ÀÎÅÍÆäÀ̽º ±¸Çö
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(application_BeginRequest);
application.EndRequest += new EventHandler(application_EndRequest);
}
// IhttpModule ÀÎÅÍÆäÀ̽º ±¸Çö
public void Dispose(){}
public void application_BeginRequest(object source, EventArgs e)
{
startTime = DateTime.Now;
}
public void application_EndRequest(object source, EventArgs e)
{
//ÇöÀçÀÇ HttpApplication °³Ã¼¸¦ ¾ò¾î¿Â´Ù
HttpApplication app = (HttpApplication) source;
//ÇöÀç À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÁÅØ½ºÆ®¸¦ ¾ò¾î¿Â´Ù
HttpContext context = app.Context;
TimeSpan span = DateTime.Now - startTime;
context.Response.Write("<p>ÆäÀÌÁö ¼öÇà½Ã°£ : " +
span.TotalSeconds.ToString() + " ÃÊ</p>");
}
}
}
|
¿ì¼±, »ç¿ëÀÚ Á¤ÀÇ HttpModuleÀ» Á¦ÀÛÇϰíÀÚ ÇÑ´Ù¸é, ¹Ýµå½Ã HttpModuleÀº IHttpModule ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß¸¸ ÇÕ´Ï´Ù. ±×·¡¾ß¸¸ HttpModule·Î¼ ±¸µ¿À» ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÇØ¼, À§ÀÇ ¼Ò½º¿¡¼µµ ±×·¯ÇÑ ±¸ÇöÀÌ ÀÖ´Â °ÍÀ» º¼ ¼ö°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù.
Âü°í·Î, IHttpModule ÀÎÅÍÆäÀ̽º´Â ´ÙÀ½°ú °°Àº Á¤ÀǸ¦ °¡Áö°í ÀÖ½À´Ï´Ù.
public interface IHttpModule
{
// Methods
void Init(HttpApplication context);
void Dispose();
}
|
±×·¸±â¿¡, ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ Ŭ·¡½º´Â ¹Ýµå½Ã ÀÌ·¯ÇÑ 2°³ÀÇ ¸Þ¼µåµéÀ» ¹Ýµå½Ã Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ÇØ¼, ¿ì¸®ÀÇ ¿¹Á¦¿¡¼µµ ±× 2°³ÀÇ ¸Þ¼µå¸¦ ±¸ÇöÇϰí ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¼Ò½º¸¦ »ìÆìº¸¸é, Init ¸Þ¼µå ¾È¿¡¼ ¾îÇø®ÄÉÀÌ¼Ç À̺¥Æ® Áß BeginRequest¿Í EndRequest¿¡ ´ëÇÑ À̺¥Æ® 󸮱⸦ °É¾îµÎ°í Àִµ¥¿ä. ÀÌ´Â ¿äû ½ÃÀÛ ½Ã ½ÃÀÛ ½Ã°£À» ÀúÀåÇϱâ À§Çؼ, ±×¸®°í ¿äûÀÌ ³¡³¯ ¶§ ½ÃÀÛ ½Ã°£°úÀÇ °£°ÝÀ» ±¸ÇØ ±× °ªÀ» Ãâ·ÂÇϱâ À§ÇؼÀÔ´Ï´Ù.
application_BeginRequest À̺¥Æ®¿¡¼´Â ´ÜÁö ÇöÀçÀÇ ½Ã°£À» Ŭ·¡½º º¯¼ö¿¡ ³Ö°í ÀÖ´Â °Í »ÓÀ̱⿡ º°´Ù¸¥ ¼³¸íÀÌ ÇÊ¿äÇÒ °Í °°Áö ¾Ê³×¿ä. ÁÖ¸ñÇÒ ºÎºÐÀº ¸Å ÆäÀÌÁöÀÇ ½ÇÇàÀÌ ³¡³¯ ¶§ ¼öÇàµÇ´Â application_EndRequest À̺¥Æ®ÀÔ´Ï´Ù.
ÀÌ À̺¥Æ® ¾È¿¡¼´Â ÇöÀçÀÇ ½Ã°£°ú ½ÃÀÛ ½Ã°£°úÀÇ Â÷À̸¦ ±¸Çؼ Response.Write·Î ±× °£°Ý Â÷À̸¦ Ãâ·ÂÇϴ ó¸®¸¦ Çϴµ¥¿ä. Áß¿äÇÑ ºÎºÐÀº Response °³Ã¼¸¦ »ç¿ëÇϱâ À§Çؼ ÇöÀç ¿äû¿¡ ´ëÇÑ Context¸¦ ¾ò¾î¿À´Â ºÎºÐÀÔ´Ï´Ù.
ÇöÀç Á¦ÀÛÇϰí ÀÖ´Â HttpModuleÀº À¥ ÆäÀÌÁö¿¡ Á¾¼ÓÀûÀÎ °ÍÀÌ ¾Æ´Ï±â¿¡, Response¿Í °°Àº °³Ã¼¸¦ »ç¿ëÇØ¼ ÇöÀç ½ÇÇà ÁßÀÎ ÆäÀÌÁö¿¡ ¾²±â ÀÛ¾÷À» ÇÏ·Á¸é, ¿ì¼±ÀûÀ¸·Î ÇöÀç ½ÇÇàÁßÀÎ ÆäÀÌÁöÀÇ ÄÁÅØ½ºÆ®¸¦ ¾Ë¾Æ¾ß¸¸ ÇÕ´Ï´Ù.
ÄÁÅØ½ºÆ®¸¦ ¾Ë¾Æ³»·Á¸é ÀÏ´Ü ÇöÀç ½ÇÇà ÁßÀÎ HttpApplicationÀ» ¾Ë¾Æ³¾ Çʿ䰡 Àִµ¥¿ä. ÀÌ´Â À̺¥Æ® ¸Þ¼µåÀÇ Ã¹ ¹øÂ° ÀÎÀÚ¸¦ Çü º¯È¯ÇÏ¿© ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ¼Ò½º Áß ´ÙÀ½ Äڵ尡 ¹Ù·Î ±×°ÍÀÌÁÒ.
//ÇöÀçÀÇ HttpApplication °³Ã¼¸¦ ¾ò¾î¿Â´Ù
HttpApplication app = (HttpApplication)source;
//ÇöÀç À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÁÅØ½ºÆ®¸¦ ¾ò¾î¿Â´Ù
HttpContext context = app.Context;
|
ÀÌ ÄÚµå´Â ¸Å¿ì ÀÚÁÖ ¾²À̹ǷΠ±â¾ïÇØ Áֽðųª, ¼ÕÀÌ Àß ´êÀ»¸¸ÇÑ °÷¿¡ º¸°üÇØ µÎ½Ã´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¾ðÁ¦¶óµµ ¡°±î»ß ¾Ø »¾À̼ö¶Ñ¡± ½Å°øÀ» ÆîÄ¥ ¼ö ÀÖ°Ô ¸»ÀÌÁÒ ^^
ÄÁÅØ½ºÆ®¸¦ ¾ò¾î¿À°Ô µÇ¸é ÀÌ °³Ã¼¸¦ ÅëÇØ¼ ±âº»ÀûÀÎ ASP.NET ÆäÀÌÁöÀÇ ¸ðµç ³»Àå °³Ã¼µéÀ» ÀÌ¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Response´Â ¹°·Ð Request, Server µîµîÀ» ¸»ÀÌÁÒ. ÇØ¼, ¼Ò½º¿¡¼´Â ÇØ´ç ÄÁÅØ½ºÆ®ÀÇ Response °³Ã¼ ¼Ó¼ºÀ» ÅëÇØ¼ Write ¸Þ¼µå¸¦ È£ÃâÇϰí ÀÖ´Â °ÍÀ» º¼ ¼ö°¡ ÀÖ½À´Ï´Ù.
±× ÄÚµå·Î ÀÎÇØ, ÀÌ ¸ðµâÀº ¸ðµç ÆäÀÌÁöÀÇ È£Ãâ ¿Ï·á ½ÃÁ¡¿¡ ÇöÀç ½ÇÇà ÁßÀÎ ÆäÀÌÁö¿¡ ¾²±â ÀÛ¾÷À» ÇÒ ¼ö°¡ ÀÖ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
ÀÌÁ¦, °£´ÜÇϱä ÇÏÁö¸¸ ¿ì¸®¸¸ÀÇ Ã¹ ¹øÂ° HttpModule¸¦ ¿Ï¼ºÇ߳׿ä. ±×·¸´Ù¸é, ÀÌ ¸ðµâÀ» ¿ì¸®ÀÇ À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÇØ¾ß ÇϰÚÁÒ? »ç¿ëÇÏ´Â ¹æ¹ýÀº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. ´ÜÁö, À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ bin µð·ºÅ͸®¿¡ ºôµåµÈ dllÀ» º¹»çÇØ ³Ö°í, Web.config ÆÄÀÏ ¾È¿¡ °¡º¿î ¼³Á¤ Çϳª¸¸ ÇØÁÖ¸é ³¡ÀÌÁÒ. ¿¹Àü ISAPI ½ÃÀý¿¡´Â ÀÎÅÍ³Ý ¼ºñ½º °ü¸®ÀÚ¿¡ °¡¼ ÇÊÅ͸¦ µî·ÏÇØÁÖ°í ÇÏ´Â ´Ù¼Ò ÇǰïÇÑ ÀÛ¾÷À» Çß¾î¾ß¸¸ ÇÏÁö¸¸, .NET¿¡¼´Â ´ÜÁö config ÆÄÀÏ¿¡ ±×·¯ÇÑ ¼³Á¤À» Ãß°¡ÇØ Áֱ⸸ ÇÏ¸é ³¡ÀÔ´Ï´Ù. ¸Å¿ì °£ÆíÇØÁø °ÍÀÌÁÒ ^^
±×·³ Çѹø ÇØº¼±î¿ä?
¿ì¼± ºôµåµÈ dllÀ» ¿ì¸®ÀÇ À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ bin µð·ºÅ͸®·Î º¹»çÇØ¿Ã Çʿ䰡 ÀÖÀ»ÅÙµ¥¿ä. À̰ÍÀ» ¼öµ¿À¸·Î Çϱ⿡´Â ¾à°£ÀÇ ±ÍÂúÀ½ÀÌ ÀÖÀ¸´Ï °£ÆíÇÏ°Ô Çϱâ À§Çؼ, À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼ AspNetRuntimeEx ÇÁ·ÎÁ§Æ®¸¦ [ÇÁ·ÎÁ§Æ® ÂüÁ¶] Çϵµ·Ï Çϼ¼¿ä. À̸¦ À§Çؼ´Â À¥ ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÁ§Æ®¿¡¼ ¸¶¿ì½º ¿ìÃø Ŭ¸¯Çϰí, [ÂüÁ¶ Ãß°¡] ÇϽŠ´ÙÀ½, ´ÙÀ½ ±×¸²°ú °°ÀÌ ÇÁ·ÎÁ§Æ® ÂüÁ¶¸¦ Àâ¾ÆÁֱ⸸ ÇÏ¸é µË´Ï´Ù.
ÀÌ·¸°Ô Çϰí À¥ ¾îÇø®ÄÉÀ̼ÇÀ» ºôµåÇϸé ÀÚµ¿À¸·Î ÂüÁ¶µÈ ÇÁ·ÎÁ§Æ®ÀÇ dll µéÀÌ À¥ ¾îÇø®ÄÉÀ̼ÇÀÇ bin µð·ºÅ͸®·Î ÀÚµ¿ º¹»ç°¡ µÇ´Ï±î¿ä.
OK! ÀÚ. ÀÌÁ¦ ¾î¼Àºí¸® ¹èÆ÷µµ ÀÏ´ÜÀº ¿Ï·áµÇ¾ú³×¿ä. ±×·³ ³²¾ÆÀÖ´Â °ÍÀº web.config ÆÄÀÏ¿¡ HttpModule¸¦ ÀåÂøÇÏ´Â °Í¸¸ÀÌ ³²¾Ò½À´Ï´Ù. Web.config ÆÄÀÏÀ» ¿¾î¼ ´ÙÀ½°ú °°ÀÌ Ãß°¡¸¦ ÇØ ÁÖ¼¼¿ä. ^^
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpModules>
<add name="ExeTimeWriter" type="AspNetRuntimeEx.ExeTimeModule, AspNetRuntimeEx" />
</httpModules>
<!-- µ¿Àû µð¹ö±ë ÄÄÆÄÀÏ
compilation debug="true"·Î ¼³Á¤ÇÏ¿© ÄÄÆÄÀÏµÈ ÆäÀÌÁö¿¡
µð¹ö±ë ±âÈ£(.pdb Á¤º¸)¸¦ »ðÀÔÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ÆÄÀÏ Å©±â°¡ Ä¿Á®¼ ½ÇÇà ¼Óµµ°¡
´À·ÁÁö¹Ç·Î µð¹ö±ë ÇÏ´Â °æ¿ì¿¡¸¸ ÀÌ °ªÀ» true·Î ¼³Á¤Çϰí
´Ù¸¥ ¸ðµç °æ¿ì¿¡´Â false·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº
ASP.NET ÆÄÀÏ µð¹ö±ë¿¡ ´ëÇÑ ¼³¸í¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
-->
<compilation defaultLanguage="vb" debug="true" />
|
<system.web> ¼½¼ÇÀÇ ÇÏÀ§·Î <httpModules>¸¦ Ãß°¡ÇØ ÁØ ´ÙÀ½, ¿©·¯ºÐÀÌ Á¦ÀÛÇÑ HttpModuleµéÀ» Add ÇØ Áֱ⸸ ÇÏ¸é µË´Ï´Ù. Á¦ÀÛÇÑ ´Ù¸¥ ¸ðµâµéÀÌ ÀÖ´Ù¸é ±×µéµµ ¿øÇÏ´Â ¸¸Å Ãß°¡ÇÒ ¼ö ÀÖ°ÚÁÒ? AddÇÒ °æ¿ì, nameÀº ±×³É °íÀ¯ÇÑ À̸§À» ÁÖ½Ã¸é µË´Ï´Ù. Áß¿äÇÑ °ÍÀº typeÀä. Type´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ÁöÁ¤ÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.
|
Type="³×ÀÓ½ºÆäÀ̽º.Ŭ·¡½º¸í, ¾î¼Àºí¸®¸í(.dllÀ» »« ¸íĪ)"
|
ÁÁ½À´Ï´Ù. ¿©±â±îÁö ÁöÁ¤Çß´Ù¸é ÀÌÁ¦ ¿ì¸®¸¸ÀÇ ÇÊÅÍÀÎ HttpModuleÀº µî·ÏÀÌ µÈ °ÍÀÔ´Ï´Ù.
ÀÌÁ¦ Àß µ¿ÀÛÇÏ´ÂÁö¸¦ Å×½ºÆ®ÇØ º¸±â À§Çؼ, aspx ÆäÀÌÁö¸¦ Çϳª ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Aspx ÆäÀÌÁö ÀÚü¿¡ Ưº°ÇÑ ±â´ÉÀÌ Á¸ÀçÇÏ´Â °ÍÀº ¾Æ´Ï±¸¿ä. ´ÜÁö, ±× ÆäÀÌÁö¿¡´Â ½ÇÇàÀ» ¾à°£ ´õµð°Ô ¸¸µå´Â ·ÎÁ÷¸¸ÀÌ µé¾îÀÖÀ» »ÓÀÔ´Ï´Ù. Áï, Thread.Sleep¸¦ ½á¼ ¾à 2ÃÊ Á¤µµ ½ÇÇàÀ» ÁßÁöÇÏ·Á ÇÏ´Â °ÍÀä. ±×·± ·ÎÁ÷À» »ç¿ëÇÏÁö ¾ÊÀ¸¸é, ½ÇÇà½Ã°£ÀÌ ³Ê¹« »¡¶ó¼ ¾Æ¸¶µµ HttpModuleÀÌ »êÃâÇØ³»´Â ½ÇÇà ½Ã°£ÀÌ ¾ðÁ¦³ª 0ÀÌ ³ª¿Ã °¡´É¼ºÀÌ Àְŵç¿ä ^^
ÀÚ. ¿©·¯ºÐµµ ´ÙÀ½°ú °°Àº Default.aspx ÆäÀÌÁö¸¦ Çϳª ¸¸µéµµ·Ï Çϼ¼¿ä.
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb"
Inherits="WebSampleApp._Default"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Default</title>
<style>p {font-family:verdana; font-size:11px}</style>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<p>Àú´Â Default.aspx ÆäÀÌÁöÀÔ´Ï´Ù.</p>
</form>
</body>
</HTML>
|
±×¸®°í, ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁöÀÇ Page_Load À̺¥Æ® ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
System.Threading.Thread.Sleep(2000)
End Sub
|
´Ù µÇ¾úÀ¸¸é, ÀÌÁ¦ ½ÇÇàÀ» ÇØ º¾´Ï´Ù. ±×·¯¸é, ÆäÀÌÁö°¡ ½ÇÇàµÉ ¶§¸¶´Ù, HttpModuleÀÌ ±¸µ¿ÇÏ¿© ÆäÀÌÁöÀÇ ±¸µ¿ÀÌ ³¡³ ÈÄ, ÆäÀÌÁöÀÇ ÇÏ´Ü¿¡ ½ÇÇà ½Ã°£À» Ãâ·ÂÇØ ÁÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ ^^
¸ÚÁöÁö ¾Ê³ª¿ä?
ºñ·Ï ¿¹Á¦°¡ ±×´ÙÁö ½Ç¿ëÀûÀÎ °ÍÀº ¾Æ´Ï¾ú±â¿¡ °¨µ¿ÀÌ ÀûÀ» ¼öµµ ÀÖ°ÚÁö¸¸, ÀÌ ¿¹Á¦¸¦ ÅëÇØ¼ ¿©·¯ºÐÀº À¥ ÆäÀÌÁö ½ÇÇà Àü, ÈÄ¿¡ ¾î¶² ·ÎÁ÷À» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¾Ë°Ô µÈ °ÍÀÔ´Ï´Ù. ^^ Àç¹ÌÀÖ´Ù±¸¿ä?? ÇÏÇÏÇÏ¡¦ ¶Ç Àç¹ÌÀÖ¾î ÇϽô ºÐµéÀÌ ÀÌ·¸°Ô ¸¹À¸¸é ±×³É ³Ñ¾î°¥ ¼ö ÀÖ´Â Å¿À ¾Æ´Õ´Ï±î?
±×·¸´Ù¸é, À§ÀÇ ¿¹Á¦º¸´Ù´Â Á» ´õ Àç¹ÌÀÖÀ» ¸¸ÇÑ ¿¹Á¦¸¦ Çϳª ´õ ÇØº¼±î¿ä? À̹ø ¿¹Á¦´Â ¸»ÀÔ´Ï´Ù. À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼ ¿¹¿Ü°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ±×°ÍÀ» ÆÄÀÏ¿¡ ·Î±ëÇÏ´Â HttpModule ¿¹Á¦ÀÔ´Ï´Ù. Àú´Â ¿¹Á¦ÀÇ ½ÉÇÃȸ¦ À§Çؼ ÆÄÀÏ¿¡ ·Î±ëÇÏ´Â ÂÊÀ» ÅÃÇߴµ¥¿ä. ¸¸ÀÏ, À̸¦ µ¥ÀÌÅͺ£À̽º¿¡ ·Î±ëÇÑ´Ù¸é º¸´Ù ½±°Ô ¿¹¿Ü Åë°è¸¦ º¼ ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, ¾î¶² ÆäÀÌÁö°¡ ¿¡·¯°¡ °¡Àå Àß ÀϾ°í, ±× ¿¡·¯´Â ¹«¾ùÀ̰í, ÁÖ·Î ¸î ½Ã ÁîÀ½¿¡ °¡Àå ¿¡·¯°¡ ¸¹Àº Áö µîµîÀ» ¸»ÀÔ´Ï´Ù. ÇÏ~ Àç¹ÌÀÖÀ» °Í °°´Ù±¸¿ä??? ¹°·ÐÀÔ´Ï´Ù. ^^
±×·³, Çѹø ÇØº¼±î¿ä? ¾ðÁ¦??? È÷Èý~ ¾Æ½Ã¸é¼~~
±×·³ ´ÙÀ½ °Á¿¡¼ ¶Ç À̾°¡ º¸¾Æ¿ä~~
°Á ¸ñ·ÏÀ¸·Î..
|