lecture Home > .NET > JavaScript OOP

JavaScript OOP Programming

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2008³â 04¿ù 12ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2008³â 04¿ù 21ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : È÷µùÅ©(Á¤ ¼®¸ð)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : ³ª¸¸ÀÇ ÇÁ·¹ÀÓ¿öÅ© ¸¸µé±â

°­ÁÂ Àü ÇÊÀÚÀÇ Àâ´ã>

À̹ø °­Á´ Å¿À´å³Ý¿¡¼­ Ȱµ¿ ÁßÀÎ Micosoft MVP ÀÎ Á¤¼®¸ð´ÔÀÇ °­ÁÂÀÔ´Ï´Ù.
Á¤¼®¸ð´ÔÀº ÃÖ±Ù Ajax Design Patterns¶õ Ã¥À» ¹ø¿ªÇÏ¿© Ãâ°£Çϱ⵵ Çϼ̱¸¿ä.
Å¿À »çÀÌÆ®ÀÇ Talk °Ô½ÃÆÇ ½Ã»ðÀ̱⵵ ÇϽʴϴÙ.
ƯÀ¯ÀÇ °³±×ÀûÀÎ ¹®Ã¼°¡ ƯÇãÃâ¿ø ÁßÀÎ ÀÌ Ä£±¸ÀÇ Àç¹Ì³­ °­Á¿¡ Çѹø ºüÁ®º¸¼¼¿ä~


ÀÌ °­ÁÂÀÇ ¼ø¼­

°­Á ½ÃÀÛ Àü 1ºÐ 12ÃÊ ½ºÇÇÄ¡

¸Å¿ì ¾È³çÇϽʴϴÙ! È÷µùÅ© ÀÔ´Ï´Ù!

JS OOP °­ÁÂÀÇ ¸¶Áö¸· ÆíÀ» ³¡±îÁö ±â´Ù·ÁÁֽŠ6õ900¿©¸í(Çѱ¹ °Ä·Æ)ÀÇ °³¹ßÀÚ ºÐµé²² °¨»çÀÇ ¸»¾¸À» µå¸³´Ï´Ù.

¸¹Àº ºÐµéÀÌ ±â´Ù¸®°í °è½Ã´ø ¸¶Áö¸· °­Á°¡ ¸¹ÀÌ ´Ê¾ú½À´Ï´Ù. Á˼ÛÇÏ°Ô »ý°¢ÇÕ´Ï´Ù. ¾ÕÀ¸·Î °­Á ¿¬Àç Áß¿¡´Â Àý´ë·Î °ÔÀ»·¯ÁöÁö ¾Ê±â·Î ¾à¼Ó µå¸®¸ç, ¿ì¸® ¸ðµÎÀÇ ³»°ø Çâ»ó¿¡ ¸¹Àº µµ¿òÀÌ µÇ´Â ¾çÁúÀÇ °­Á·Π°è¼ÓÇØ¼­ ã¾Æ ºÉ °ÍÀ» ¾à¼Ó µå¸³´Ï´Ù.

ÀÚ ±×·³ Àαâ ÀýÁ¤ÀÇ ±×·ì "´ÚÅÍÇǽ¬"ÀÇ µ¥ºß °î "³­ Ç×»ó ¿©±â¿¡ Àִµ¥ ¹» ±×¸® ¼­µÎ¸£³ª ÀÌ »ç¶÷¾Æ" °¨»óÇϽø鼭 °­Á ½ÃÀÛ ÇϰڽÀ´Ï´Ù!


°û ºÎÀåÀÇ ÆíÁö

From : ³»°¡ °û ºÎÀåÀÌ´Ù! ³ª! °û ºÎÀåÀ̾ß!
To : È÷µùÅ©

³»°¡ °ü¸®ÇÏ´Â °³¹ßÆÀ¿¡¼­ ¾µ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ©¸¦ Çϳª ¸¸µé°í ½Í³×. ¾ÕÀ¸·ÎÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­ ¾µ Ç¥ÁØÀ» Á¤ÇØÁÙ Å×´Ï ÇÁ·¹ÀÓ¿öÅ©·Î ¸»¾ÆÁÖ°Ô!

³» ºÎŹ µé¾îÁÙ °ÅÁö? ÀÀ? ÀÀ?

°¡¸¸..... ³»°¡ ¾îÁ¦ ÇöÁúÀ» ÇØ¼­ °ñµå°¡ Á» ¸¹¾ÆÁ³´Âµ¥ ¸»À̾ß..
±Ùµ¥ ¿äÁò Áý»ç¶÷ ¶§¹®¿¡ ¿Í¿ì¿¡ Á¢¼ÓÀ» ¸øÇؼ­ °ñµå¸¦ ¾µ µ¥°¡ ¾ø¾î.. À̰Š¿ø....

¾Æ´Ï³×, ³»°¡ ±¦ÇÑ ¼Ò¸®¸¦ Çß³× ±×·Á....


È÷µùÅ©ÀÇ ´äÀå

From : È÷µùÅ©
To : ¾ó±¼¸¸ ºÆ¾îµµ ¾ÆºÎ°¡ Àý·Î ³ª¿À´Â °û ºÎÀå´Ô

¾ÆÀÌÄÚ~ Çϴð°À¸½Å °û ºÎÀå´ÔÀÌ ½ÃŰ½Ã¸é ÇϰڽÀ´Ï´Ù. ¾È ±×·¡µµ °í°ÍÀÌ ÇÏ°í ½Í¾ú¾ú½À´Ï´Ù. Ç¥Áظ¸ Á¤ÇØ Áֽøé ÀÛ¾÷ ½ÃÀÛÇϰڽÀ´Ï´Ù.

¾Æ¹«ÂÉ·Ï ºÎÁ·ÇÑ °ñµå¿Í ¿Ê°¨¸¸ Áö¿øÇØ ÁÖ¼¼¿ä.

ºÎÀå´Ô ¾È °è½Ã¸é ¿ì¸®È¸»ç ¸ÁÇÕ´Ï´Ù.


¿Ö ÇÁ·¹ÀÓ¿öÅ©¸¦ ±¸¼ºÇØ¾ß ÇÏÁÒ??

»çÀüÀûÀÎ ÀǹÌÀÇ ÇÁ·¹ÀÓ¿öÅ©(Framework)´Â Ʋ ±¸Á¶, ¾ó°³, ÇϺΠ±¸Á¶ µîµî ÀÔ´Ï´Ù.

±×·¸½À´Ï´Ù. ÇÁ·¹ÀÓ¿öÅ©´Â ÇÁ·Î±×·¥ÀÌ °³¹ßµÉ ¼ö ÀÖ´Â ±âÃÊÀûÀÎ »À´ë ±¸Á¶À̸ç, ¿©·¯ °¡Áö ¶óÀ̺귯¸®µéÀ» Çѵ¥ ¸ð¾Æ¼­ Áö¼ÓÀûÀ¸·Î Àç»ç¿ëÀÌ °¡´ÉÇÑ È¯°æÀÔ´Ï´Ù. ÀÌ´Â °³¹ßÀÇ »ý»ê¼º°úµµ Á÷°áµÇ´Â ¹®Á¦ÀÔ´Ï´Ù. Àß ¼³°èµÈ .Net ÇÁ·¹ÀÓ¿öÅ©´öºÐ¿¡ ÇÁ·Î±×·¥ °³¹ßÀÌ Èï°ãÁö ¾ÊÀ¸¼¼¿ä? Àß ¼³°èµÈ ¿ì¸®¸¸ÀÇ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ©·Î Èï°Ü¿î °³¹ßÀ» ÇØ º¸ÀÚ±¸¿ê!!

Á¦°¡ À̹ø 4ºÎÀÛ °­ÁÂÀÇ ¸¶Áö¸· 4ºÎ¸¦ ÇÁ·¹ÀÓ¿öÅ©¿¡ °ü·ÃµÈ ÁÖÁ¦·Î ¼±Á¤ÇÑ ÀÌÀ¯´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ©¸¦ ±¸ÃàÇÏ¿© °³¹ß »ý»ê¼ºÀ» ³ô¿´À¸¸é ÇÏ´Â ÀÌÀ¯¿¡¼­¿´½À´Ï´Ù. ¶ÇÇÑ, ÇÁ·¹ÀÓ¿öÅ© ¼³°è ÇÏ°í ¸ðµâµéÀ» ¹èÄ¡ÇÏ´Â °úÁ¤¿¡¼­ ¹«¾ð°¡ ¾òÀ» ¼ö Àֱ⠶§¹®À̱⵵ ÇÕ´Ï´Ù.


Framework Specification

½É½ÉÇѳ¯~ Ä£±¸°¡ ÇÊ¿äÇÑ ³¯~ ³ª´Â ³ª´Â~ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µéÁÒ~ »Ð~~¢Ý

À̹ø ½Ã°£Àº ½Å³ª´Â ÀÛǰȰµ¿ ½Ã°£ÀÔ´Ï´Ù. ¸ðµÎ ÇÔ²² °£´ÜÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µé¾î º¸¾ÆÈ¿. ±×¸®°í, Áö±Ý±îÁöÀÇ ¼¼ ¹ø¿¡ °ÉÄ£ °­Á¿¡¼­ ¼Ò°³ ÇØµå¸° ¸î ¸íÀÇ Ä£±¸µéÀÌ ¿ì¸®¿Í ÇÔ²² ÇÒ °Å¿¹¿ä. Áغñ¹°Àº ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ Love ÀÔ´Ï´Ù.

ÀÏ´Ü ¿ì¸®°¡ ¸¸µé ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§À» Áö¾î º¸µµ·Ï ÇÒ°Ô¿ä. Á¦°¡ ¾²´Â °­Á´ϱî Á¦ ¸¶À½´ë·Î "EHGF"¶ó°í À̸§À» Áö¾úÀ¸¸ç, "Enhanced Hiddink's Generous Framework"ÀÇ ¾àÀÚ ÀÔ´Ï´Ù. ±»ÀÌ Çѱ¹¸»·Î Ç®ÀÚ¸é... "Á» ¯Àεí ÇÑ È÷µùÅ©ÀÇ °ü´ëÇÑ ÇÁ·¹ÀÓ¿öÅ©" ÀÔ´Ï´Ù(Generous´Â '°ü´ëÇÏ´Ù' ÀÔ´Ï´Ù.)

ÀÌÁ¦ ¹«¾ð°¡ ÀÖ¾î º¸ÀÌ´Â À̸§µµ Áö¾î Á³À¸´Ï, ÇÁ·¹ÀÓ¿öÅ©¿¡ ¾î¶°ÇÑ ±â´É¼ºÀ» ºÒ¾î ³ÖÀ»Áö ±¸»óÇØ º¸µµ·Ï ÇÒ°Ô¿ä. ¹°·Ð À̰͵µ Á¦ ¸¶À½´ë·Î À̸ç, Á¦°¡ ¼±Á¤ÇÑ ±â´É¼ºÀº ´ÙÀ½ÀÇ ¸ñ·Ï°ú °°½À´Ï´Ù.

ÇÁ·¹ÀÓ¿öÅ© ±â´É¼º ¸ñ·Ï
  • ¿©·¯ °¡Áö ¸ðµâÀ» Packaging ÇÒ Namespace ±â´É¼º
  • ¼­·Î ´Ù¸¥ ÄÁÅØ½ºÆ® ¾È¿¡¼­ ÇÔ¼ö ÂüÁ¶°¡ °¡´ÉÇÑ Delegate ±â´É¼º
  • PageÀÇ »ý°ú »ç¸¦ °üÀåÇÒ Page Lifecycle ±â´É¼º
  • µ¥ÀÌÅÍÀÇ Ä¸½¶È­¸¦ °üÀåÇÒ DTO(Data Transfer Object) ±â´É¼º
  • DOM Element¸¦ ÄÛ Âó¾îÁÙ $ ±â´É¼º

Namespace ±¸Á¶
  • MyFramework
    • init
    • Delegate
    • PageLifecycle
    • DTOFactory
    • DomPicker

À̹ø °­Á´ ÇÁ·¹ÀÓ¿öÅ©¸¦ ±¸¼ºÇÏ´Â Çʼö¿ä¼ÒÀÎ Namespace ±â´É¼ºÀ» Åä´ë·Î À§¿¡¼­ ¸í½ÃÇÑ ±â´É¼ºµéÀ» ÇϳªÇϳª ±¸ÇöÇØ ³ª°¡´Â °ÍÀ¸·Î °­Á¸¦ ÁøÇà ÇÕ´Ï´Ù. ÇÁ·¹ÀÓ¿öÅ© ¿Ï¼ºº»Àº °­Á ¸¶Áö¸· ºÎºÐ¿¡ ¸µÅ©¸¦ °É¾î µÎ¾ú½À´Ï´Ù. ^^

ÀÏ´Ü ¹Ú¼ö Çѹø Ä¡°í °©½Ã´Ù. /¹Ú¼ö /Ãã


ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ© ±¸ÃàÀº À̰ÍÀ¸·Î ½ÃÀÛÇÑ´Ù! Namespace ±¸Çö

Á¦ÀÏ ¸ÕÀú, ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ© ±¸ÃàÀÇ ½ÃÀÛÀ̶ó°í ÇØµµ °ú¾ðÀÌ ¾Æ´Ñ Namespace ±¸ÇöÀ» ÇØ º¸°Ú½À´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ® Namespace´Â À̸§¿¡¼­ À¯ÃßÇÒ ¼ö ÀÖµíÀÌ C#ÀÇ namespace¿Í JavaÀÇ Package¿Í À¯»çÇÑ ±â´É¼ºÀ» Á¦°øÇϸç, ´å(.) Á¢±ÙÀÚ·Î °¢°¢ÀÇ °èÃþ¿¡ Á¸ÀçÇÏ´Â ³×ÀÓ½ºÆäÀ̽º¿¡ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ® Namespace¸¦ ±¸ÇöÇϱâ Àü¿¡ °´Ã¼ Ç¥±â¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Æ¾ß ÇÕ´Ï´Ù. ÀÚ·áÈ­¸é º¸½ÃÁÒ!

°´Ã¼ Ç¥±â¹ýÀº ¹ºµ¥??
  • °´Ã¼ ¸®ÅÍ·²Àº {}À¸·Î ·¡ÇεǸç, ¿¬°ü¹è¿­ ÇüÅÂÀÌ´Ù.
  • À̸§Àº ¹®ÀÚ¿­À̸ç, °ªÀº Ç¥Çö(Expression)ÀÌ´Ù.
  • À̸§°ú °ªÀº ÄÝ·Ð(:)À¸·Î ¿¬°áµÇ¸ç, °ª:½ÖÀÇ ±¸ºÐÀº ½°Ç¥(,)ÀÌ´Ù.

¾î? ÀÌ°Ç JSONÀÌÀݾÆ!! ±×·¸½À´Ï´Ù. JSON(JavaScript Object Notation) ÀÔ´Ï´Ù. ¤¾¤¾¤¾¤¾

À§ÀÇ Ç¥ Áß Ã¹ ¹øÂ° ±ÔÄ¢À» º¸¸é Namespace ±¸Çö¿¡ ´ëÇÑ ÈùÆ®¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. °´Ã¼ ¸®ÅÍ·²ÀÌ {}·Î ·¡ÇεǸç, ¿¬°ü¹è¿­ ÇüŸ¦ °¡Áö±â ¶§¹®¿¡ ¾ó¸¶µçÁö ÁßøÀÌ °¡´ÉÇÕ´Ï´Ù.

ÁßøÀÌ °¡´ÉÇÏ´Ù°í?? ±×·¸½À´Ï´Ù! ´äÀº ÀÌ¹Ì ³ª¿Í ÀÖ½À´Ï´Ù. À̰͵éÀ» ÀÌ¿ëÇØ °£´ÜÇÑ Namespace¸¦ ±¸¼ºÇØ º¸°Ú½À´Ï´Ù.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var Root = {};

Root.Class1 = {};
Root.Class1.DoSomething = {

    MyName : "À±Á¾´ë",
    AlertMyName : function(){ alert( this.MyName ); }

};
 
//³×ÀÓ½ºÆäÀ̽º Á¢±Ù
Root.Class1.DoSomething.AlertMyName();

JSONÀ» »ç¿ëÇØ Namespace°¡ ¸Å¿ì °£´ÜÇÏ°Ô ±¸Çö µÇ¾ú½À´Ï´Ù. "Root"¶ó´Â ÃÖ»óÀ§ Namespace°¡ ÀÖÀ¸¸ç, ÀÚ½Ä NamespaceµéÀ» Â÷°îÂ÷°î ¹èÄ¡ ÇÏ¿´½À´Ï´Ù.

À§ÀÇ ÄÚµå´Â ´ÙÀ½ÀÇ ÄÚµå¿Í Á¤È®È÷ ÀÏÄ¡ ÇÕ´Ï´Ù.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var Root = {
    
    Class1 : {

        DoSomething : {

            MyName : "À±Á¾´ë",
            AlertMyName : function(){ alert( this.MyName ); }

        }

    }

};
 
//³×ÀÓ½ºÆäÀ̽º Á¢±Ù
Root.Class1.DoSomething.AlertMyName();

¿ì¸®ÀÇ ¹ä ¾ÆÀú¾¾°¡ ¶Ç ÇѸ¶µð ÇϽʴϴÙ. "Âü ½±ÁÒ?"

ÀÚ ±×·³ ¿ì¸®°¡ ¸¸µé ÇÁ·¹ÀÓ¿öÅ©ÀÇ Ã¹ ´ÜÃ߸¦ ³¢¿ö º¸µµ·Ï ÇÏÁÒ~ ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ~~

1
2
    //Root Namespace....
    var MyFramework     = {};

ÀÚ~ ÀÌÁ¦ ·çÆ® NamespaceÀÎ "MyFramework"°¡ ¸¸µé¾î Á³½À´Ï´Ù. ½½½½ »ìÀ» ºÙ¿© º¸µµ·Ï ÇÒ°Ô¿ä~


³ª´Â Àú ÇÔ¼ö°¡ ¸¶À½¿¡ µé¾î¿ä. »ç¶ûÀÇ Â¦´ë±â Delegate ±â´É¼º ±¸Çö

ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ ¹º Delegate¿©? ÇϽô ºÐµé °è½ÃÁÒ? ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ Delegate´Â C#ÀÇ ±×°Í¿¡ ºñÇÏ¸é °ü´ëÇÏÁö ¾ÊÁö¸¸ Àß ¾Ë°í ¾²¸é ¸·°­ÇÕ´Ï´Ù(ƯÈ÷ ¸Þ¸ð¸® °üÁ¡¿¡¼­ ¸»ÀÌÁÒ). C#ÀÇ Delegate¸¦ ¸ð¸£½Ã´Â ºÐµéÀº ´ÙÀ½ ¸µÅ©ÀÇ MSDNÀ» Âü°í Çϼ¼¿ä.

  C# Programmer's Reference - delegate

¿ì¸®°¡ ±¸ÇöÇÏ·Á´Â ÀÚ¹Ù½ºÅ©¸³Æ® Delegate´Â ÇÔ¼ö¸¦ ·¹ÆÛ·±½º ÇÏ´Â Æ÷ÀÎÅÍ ¿ªÇÒÀ» ÇÏ°Ô µË´Ï´Ù. Áï, °øÅëÀ¸·Î ¾²ÀÏ ÇÔ¼ö¸¦ Çѹø¸¸ Á¤ÀÇ ÇÑ ´ÙÀ½ ¿©·¯ °÷ÀÇ ÄÁÅØ½ºÆ®(°´Ã¼)¿¡¼­ ±× ÇÔ¼ö¸¦ ·¹ÆÛ·±½ºÇÒ ¼ö ÀÖ´Ù´Â ¾ê±é´Ï´Ù. ¶ÇÇÑ, Delegate·Î Âò ´çÇÑ ÇÔ¼ö´Â È£Ãâ ¸Þ¼­µå¿Í µ¿ÀÏÇÑ ÄÁÅØ½ºÆ®¿¡ ³õ¿© ¼öÇàµË´Ï´Ù. ¿ì¸®°¡ Xmlhttp¸¦ »ç¿ëÇÑ Ajax ÇÁ·Î±×·¡¹ÖÀ» ÇÒ °æ¿ì Äݹé ÇÔ¼ö¿¡ Delegate¸¦ ÁöÁ¤ÇÔÀ¸·Î½á ±²ÀåÇÑ ¸Þ¸ð¸® Àý°¨ È¿°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ® Delegate´Â 3¹øÂ° °­Á¿¡¼­ ´Ù·ç¾ú´ø Function °´Ã¼ÀÇ apply ¸Þ¼­µå¸¦ »ç¿ëÇÕ´Ï´Ù(ÇÔ¼ö¿¡ Àü´ÞµÇ´Â ÀÎÀÚ°¡ ±×¶§±×¶§ ´Ù¸¦ °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù.) ÀÚ¹Ù½ºÅ©¸³Æ® Delegate´Â ´ÙÀ½°ú °°ÀÌ ±¸ÇöµË´Ï´Ù.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
    //MyFramework.Delegate Namespace ±¸ÇöºÎ
    MyFramework.Delegate    = {};

    MyFramework.Delegate.createDelegate     = function( delegateInstance, pointingMethod ) 
    {

        return function() {

            return pointingMethod.apply( delegateInstance, arguments);

        }

    }

createDelegate ÇÔ¼ö´Â µÎ °³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ µéÀÔ´Ï´Ù. ù ¹øÂ° ÀÎÀÚ´Â DelegateÀÇ ÀνºÅϽºÀ̸ç, µÎ ¹øÂ° ÀÎÀÚ´Â Delegate°¡ °¡¸£Å³ ÇÔ¼öÀÇ ÀνºÅϽº ÀÔ´Ï´Ù. µÎ °³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ µé¿©¼­ ÁöÁ¤µÈ ÇÔ¼ö¸¦ °¡¸®Å³ ¼ö ÀÖ´Â Delegate(ÇÔ¼ö) Çü½ÄÀ¸·Î ¸®ÅÏ ÇÕ´Ï´Ù.

ÀÚ~ ÀÌÁ¦ »ç¶ûÀÇ ÀÛ´ë±âµµ Áغñ°¡ µÇ¾ú½À´Ï´Ù. È÷È÷~


³»°¡ Á×¾ú´Ù´Â »ç½ÇÀ» ¸ðµÎ¿¡°Ô ¾Ë·ÁÁÖ»ï. Page Lifecycle ±â´É¼º ±¸Çö

»ç½Ç ¿ä ºÎºÐÀº Microsoft AJAX Library¿¡¼­ ÈùÆ®¸¦ ¾òÀº ³à¼®ÀÔ´Ï´Ù. Microsoft AJAX Library¿¡¼­´Â ½ºÅ©¸³Æ®¿¡ pageLoad¿Í pageUnload ÇÔ¼ö¸¦ Ãß°¡Çϸé(Optional) ÆäÀÌÁö°¡ ·ÎµåµÉ ¶§¿Í ¾ð·Îµå µÉ ¶§ÀÇ À̺¥Æ®¸¦ Àâ¾Æ¼­ Çڵ鸵 ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®´Â Á¶±Ý ´Ù¸£°Ô Page_Load¿Í Page_UnLoadÀ» Çڵ鷯·Î »ç¿ëÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù(CodeBehind ½ºÅ¸ÀÏÀ̶ó°í ¿ì±â°í ½Í½À´Ï´Ù~)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    //MyFramework.PageLifecycle Namespace ±¸ÇöºÎ
    MyFramework.PageLifecycle    = {};

    MyFramework.PageLifecycle.OnLoadHandler     = function() 
    {

        if (window.Page_Load) window.Page_Load();

    }

    MyFramework.PageLifecycle.OnUnLoadHandler     = function() 
    {

        if (window.Page_UnLoad) window.Page_UnLoad();

    }

¿¹»ó Çϼ̰ÚÁö¸¸, ¸Å¿ì °£´ÜÇÑ ¼Ò½º·Î ±¸ÇöÀÌ µÇ¾ú½À´Ï´Ù. Page_Load()¿Í Page_UnLoad()°¡ Á¤ÀǵǾî ÀÖÀ¸¸é È£ÃâÇϰí, Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é È£ÃâÇÏÁö ¾Ê½À´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö´Â window °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ·Î Á¸ÀçÇϱ⠶§¹®¿¡ if¹®À» »ç¿ëÇÏ¿© Á¤ÀǵǾî ÀÖ´ÂÁö ¿©ºÎ¸¦ ÆÇº°ÇÕ´Ï´Ù. ¾Ñ! ÀÌÂë¿¡¼­ ½º¹°½º¹° Àǹ®Á¡ÀÌ »ý±â´Â ºÐÀÌ °è½Å°¡¿ä?

ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö°¡ window °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ¶ó°í??
  • ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ÀÇ ÇÔ¼ö´Â ÇϳªÀÇ TypeÀÔ´Ï´Ù(Microsoft AJAX Library¿¡¼­´Â ÇÔ¼ö¸¦ TypeÀ¸·Î ÁöĪÇÕ´Ï´Ù.) ±×·¸½À´Ï´Ù~~ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö´Â ÇÔ¼öÇü½ÄÀÇ °ª(¸®ÅÍ·²)ÀÏ »ÓÀ̸ç, window °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ·Î Á¸ÀçÇÕ´Ï´Ù.

    Áõ¸íÇØ º¼±î¿ä? Dummy¶ó´Â À̸§ÀÇ ÇÔ¼ö Çϳª¸¦ ¼±¾ðÇϽŠ´ÙÀ½¿¡ alert(Dummy); ÇϽøé ÇÔ¼öÀÇ ¸®ÅÍ·²ÀÌ ¶±~ ÇÏ´Ï Ãâ·ÂµÉ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, Dummy(); ¶ó´Â ±¸¹®À» ¸¸³ª¸é ÀÚ¹Ù½ºÅ©¸³Æ® ¿£ÁøÀº Dummy¿¡ ´ã°ÜÀÖ´Â ¸®ÅÍ·²À» ¼öÇà(Evaluation)ÇÒ »ÓÀÔ´Ï´Ù.
  • Áï, ¿ì¸®°¡ ÀÛ¼ºÇÏ´Â ¸ðµç ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå´Â ºÎ¸ð(ÁÖ·Î window) °´Ã¼¿¡ ¿¬°ü¹è¿­ ÇüÅÂ(Hashtable°ú °°Àº)·Î ÇÒ´çµÉ »ÓÀÔ´Ï´Ù. À̹ø °­Á¿¡¼­ ¿ì¸®°¡ ÀÛ¼ºÇÏ´Â ÄÚµå´Â ºÎ¸ð °´Ã¼(Namespace)¿¡ ÇÒ´çµË´Ï´Ù.

È£±â½É ÇØ°á µÇ¾ú³ª¿ä??

¸¸¾à Page_Load()¿Í Page_UnLoad()°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é if¹®ÀÇ °á°ú´Â false°¡ µÇ±â ¶§¹®¿¡ Page_Load()¿Í Page_UnLoad()¸¦ È£ÃâÇÏÁö ¾Ê½À´Ï´Ù('undefined'´Â 'false'ÀÔ´Ï´Ù-ù ¹øÂ° °­Á ÂüÁ¶.)

PageLifecycle Namespace°¡ Áغñ µÇ¾úÀ¸´Ï Àá½Ã Ž ÇÏ°í °¡°Ú½À´Ï´Ù. ÇÇÅë°ú ¸¶³ªÅë ä¿ö ÁÖ¼¼¿ä.


»ì¾Æ¼­ Àå±îÁö °¡°í½Í¾îÈ¿. DTO(Data Transfer Object) ±â´É¼º ±¸Çö

ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´Þ¿¡ DTO(Data Transfer Object)¸¦ »ç¿ëÇϱâ À§ÇØ ÆÑÅ丮 °´Ã¼¸¦ ¸¸µé¾î º¾½Ã´Ù!

DTO¶õ µ¥ÀÌÅ͸¦ ĸ½¶È­ÇÏ´Â °´Ã¼À̸ç, Ä¿½ºÅÒ Çʵ带 ÀÔ¸À´ë·Î Ãß°¡ÇØ ¿©·¯ Çü½ÄÀÇ µ¥ÀÌÅ͸¦ ´ã¾Æ¼­ ¸ñÀûÁö±îÁö ¾ÈÀüÇÏ°Ô ¿î¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ÇÁ·ÎÆÛƼ·Î °ªÀ» ´ã°í Àֱ⠶§¹®¿¡ ¼­·Î ´Ù¸¥ ÇÔ¼ö°£ÀÇ µ¥ÀÌÅÍ Àü´Þ¿¡ ¾ÆÁÖ È¿°úÀûÀÌ¸ç °ªÀ» ÃßÃâÇØ ³»±âµµ ¹«Ã´ ½±½À´Ï´Ù. ÇÔ¼öÀÇ ÀÎÀÚ·Î DTO Çϳª¸¸ ¹Þ¾ÆµéÀÌ¸é µÇ±â ¶§¹®¿¡ ÄÚµåÀÇ À¯Áöº¸¼ö¿¡µµ ¹«Ã´ È¿°úÀûÀÔ´Ï´Ù. ÇÔ¼öÀÇ ÀÎÀÚ·Î DTO°´Ã¼ Çϳª¸¸ Àü´ÞÇØ ÁÖ¸é µÇ°Åµç¿ä~ ÁÖ°í ¹Þ´Â ÀÎÀÚÀÇ °¹¼ö¸¦ ¸ÂÃç¾ß ÇÒ Çʿ䰡 Àü~~Çô~~ ¾ø½À´Ï´Ù!!

ÀÏ´Ü ÄÚµå º¸½ÃÁÒ!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    //MyFramework.DTOFactory Namespace ±¸ÇöºÎ
    MyFramework.DTOFactory    = {};
 
    MyFramework.DTOFactory.CreateDTO    = function() 
    {

        return {

                    AddProperty            : function( PropertyName )
                    {

                        this[ PropertyName ] = null;

                    },

                    DeleteProperty            : function( PropertyName )
                    {

                        if( typeof( this[ PropertyName ] ) != "function" )
                            delete this[ PropertyName ];

                    },

                    DeleteAllProperty        : function()
                    {

                        for( var PropertyName in this )
                            if( typeof( this[ PropertyName ] ) != "function" )
                                delete this[ PropertyName ];

                    },

                    GetPropertyCount        : function()
                    {

                        var Count = 0;

                        for( var PropertyName in this )
                            if( typeof( this[ PropertyName ] ) != "function" )
                                Count++;

                        return Count;

                    }

        }

    }

¿¡~~ ÂÉ~~±Ý º¹Àâ ÇÕ´Ï´Ù. OOP °³³äÀÌ ºÎÁ·ÇϽŠºÐµéÀº Á¶±Ý È¥¶õ½º·¯¿ì½Ç ¼öµµ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸! ¾Ë°íº¸¸é ±²ÀåÈ÷ ±²ÀåÇÏ°Ô °£´ÜÇÕ´Ï´Ù. ´ÜÁö, ¹Ì¸® ÁغñµÈ ¸î °¡ÁöÀÇ ¸Þ¼­µå°¡ ÀåÂøµÈ °´Ã¼¸¦ ¸®ÅÏÇÒ »ÓÀÔ´Ï´Ù. ¸®ÅϹÞÀº °´Ã¼¿¡ ÀåÂøµÈ °¢°¢ÀÇ ¸Þ¼­µå´Â ´ÙÀ½°ú °°Àº ¿ªÇÒÀ» ´ã´çÇÕ´Ï´Ù.

  • AddProperty ¸Þ¼­µå : DTO¿¡ ÇÁ·ÎÆÛƼ¸¦ Ãß°¡ ÇÕ´Ï´Ù.
  • DeleteProperty ¸Þ¼­µå : DTO¿¡ Á¤ÀÇµÈ ÇÁ·ÎÆÛƼ¸¦ »èÁ¦ ÇÕ´Ï´Ù.
  • DeleteAllProperty ¸Þ¼­µå : DTO¿¡ Á¤ÀÇµÈ ¸ðµç ÇÁ·ÎÆÛƼ¸¦ »èÁ¦ ÇÕ´Ï´Ù.
  • GetPropertyCount ¸Þ¼­µå : DTO¿¡ Á¤ÀÇµÈ ÇÁ·ÎÆÛƼÀÇ °¹¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù.

Ȥ½Ã ´«Ä¡ ä½ÅºÐ °è½Å°¡¿ä? ¾à°£ÀÇ ¹ö±×°¡ ¼û¾î ÀÖ´Ù´Â °ÍÀ»....

»ý¼ºµÈ DTO¿¡ °ª ŸÀÔÀÌ ¾Æ´Ñ ÇÔ¼ö ŸÀÔÀÇ ÇÁ·ÎÆÛƼ¸¦ Ãß°¡ ÇÒ °æ¿ì, DeleteProperty ¸Þ¼­µå, DeleteAllProperty ¸Þ¼­µå, ´õºÒ¾î GetPropertyCount ¸Þ¼­µå°¡ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ½À» ÁüÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. typeof( ÇÁ·ÎÆÛƼ )ÀÇ °á°ú°¡ 'function'ÀÏ °æ¿ì °Ç³Ê¶Ù°Ô µÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù. ¹«¾ð°¡ ´Ù¸¥ ¹æ¹ýÀ» °¡¹ÌÇÏ¿© ¹®Á¦Á¡À» ÇØ°áÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ ¹®Á¦Á¡ÀÇ °³¼±Àº ¿©·¯ºÐ¿¡°Ô ¸º±â°Ú½À´Ï´Ù! Àý´ë ±ÍÂú¾Æ¼­ ÀÌ·¯´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. (¹Ì¸® ÀåÂøµÈ ¸Þ¼­µå¿¡ Flag ¿ªÇÒÀ» ÇÒ ÀÚ½Ä ÇÁ·ÎÆÛƼ¸¦ Ãß°¡ÇÏ¸é µÇÁö ¾ÊÀ»±î¿ä?)

À̷νá DTO°øÀåÀÌ ¼º°øÀûÀ¸·Î ¼³¸³µÇ¾ú½À´Ï´Ù. ¿À·ÎÁö ½Å¼Ó, Ä£Àý, Á¤È®ÇÑ DTO ±â´É¼ºÀ» Á¦°øÇÏ¸ç ¾ß¹ÝµµÁÖ´Â ÀÖÀ» ¼ö ¾ø½À´Ï´Ù.


Àú´Â ÀÎÇü»Ì±â ¼÷·Ãµµ 375¸¦ °¡Áø ºí¿¤´öÈÄ ÀÔ´Ï´Ù. $ ±â´É¼º ±¸Çö

´ëÃæ ´«Ä¡ ä¼Ì³ª¿ä? Prototype.jsÀÇ ¿µÇâÀ¸·Î $()¿¡ ´ëÇØ¼­´Â ¸ðµÎ°¡ ¾Ë°í °è½Ç °Ì´Ï´Ù. ¹Ù·Î DOM Element¸¦ ÄÛ Âó¾î³»´Â ±â´É¼º ÀÔ´Ï´Ù. °£´ÜÇÏÁö¸¸ ÈǸ¢ÇÑ ±â´É¼ºÀ» Á¦°øÇϱ⠶§¹®¿¡ ŸÀÌÇÎÀÇ ³ë·ÂÀ» ÁÙ¿©°¡¸ç DOM Element¸¦ Æ÷Å©·Î ÄÛ Âï¾î¼­ ¿øÇÏ´Â ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°Ô²û µµ¿ÍÁÖ´Â ¸ÚÁø ³à¼®ÀÌÁÒ(Ãà¾à ¸Þ¼­µå¶ó°í ÇÕ´Ï´Ù.)

´õÀÌ»ó document.getElementById¿Í document.getElementsByNameÀ» ŸÀÌÇÎ ÇÏÁö ¸¶¼¼È¿!!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    //MyFramework.DomPicker Namespace ±¸ÇöºÎ
    MyFramework.DomPicker    = {};
 
    MyFramework.DomPicker.$    = function( ElementId ) 
    {

        return document.getElementById( ElementId );

    }

    MyFramework.DomPicker.$s    = function( ElementName ) 
    {

        return document.getElementsByName( ElementName );

    }

ÀÌ°Ô ³¡À̳ı¸¿ä? Ãà¾à ¸Þ¼­µå¶ó´Ï±î¿ä!!! ÀÌÁ¦ ¿©·¯ºÐÀº ÀÎÇü»Ì±â ±â°èÀÇ ³ë¿¹.


¸¶°¡·¿! Á¦ÀÓ½º! ´Þ·Á! ´Þ·Á! ÇÁ·¹ÀÓ¿öÅ© ÃʱâÈ­!

À̷νá Á¦°¡ ÁغñÇÑ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¸ðµç ±â´É¼ºÀ» ±¸Çö ÇØ º¸¾Ò½À´Ï´Ù. ÇÏÁö¸¸, ÀÌ°Ô ³¡ÀÌ ¾Æ´Õ´Ï´Ù. ¿ì¸®°¡ ¸¸µç ÇÁ·¹ÀÓ¿öÅ©¸¦ ½Å³ª°Ô ºÎ·Á¸ÔÀ¸·Á¸é ¾à°£ÀÇ ÃʱâÈ­ °úÁ¤À» ¼öÇàÇÏ¿©¾ß ÇÕ´Ï´Ù. 4 °³ÀÇ Delegate¸¦ »ý¼ºÇϰí ÃʱâÈ­ ¸Þ¼­µå¸¦ È£ÃâÇÏ¸é ¸ðµç Áغñ´Â ³¡³ª°Ô µË´Ï´Ù~

¿ì¼±, ÃʱâÈ­ ¸Þ¼­µå¸¦ °¨»ó ÇϽðڽÀ´Ï´Ù.

1
2
3
4
5
6
7
    //Init
    MyFramework.init     = function(){
    
        window.onload        = OnLoadCallBack;
        window.onunload    = OnUnLoadCallBack;        

    };

init() ¸Þ¼­µå°¡ ÇÏ´Â ÀÏÀº PageLifecycleÀÇ ±â´É¼ºÀ» »ç¿ëÇϱâ À§Çؼ­ onload¿Í onunloadÀ̺¥Æ®ÀÇ Çڵ鷯¸¦ µî·ÏÇÏ´Â ÀÏ ÀÔ´Ï´Ù. À̺¥Æ® Çڵ鷯 ÂüÁ¶¿£ Global ÂüÁ¶°¡ °¡´ÉÇÑ Delegate°¡ ¼³Á¤µË´Ï´Ù(¾Æ·¡ÀÇ Äڵ忡¼­ Á¤ÀÇÇÕ´Ï´Ù.)

À̷νá ÃʱâÈ­ ¸Þ¼­µå°¡ ¿Ï¼º µÇ¾úÀ¸´Ï, ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÃʱâÈ­¸¦ ¼öÇà ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµå´Â ÇÁ·¹ÀÓ¿öÅ© ¹Ù±ùÂÊ ÄÁÅØ½ºÆ®¿¡¼­ ¼öÇà µË´Ï´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
    //Delegate ¼³Á¤
    OnLoadCallBack        = MyFramework.Delegate.createDelegate( 
                                                    this, MyFramework.PageLifecycle.OnLoadHandler );
    OnUnLoadCallBack    = MyFramework.Delegate.createDelegate( 
                                                    this, MyFramework.PageLifecycle.OnUnLoadHandler );
    
    $                            = MyFramework.Delegate.createDelegate( 
                                                    this, MyFramework.DomPicker.$ );
    $s                            = MyFramework.Delegate.createDelegate( 
                                                    this, MyFramework.DomPicker.$s );

    MyFramework.init();

À§ÀÇ ÄÚµåó·³ PageLifecycle¿¡¼­ »ç¿ëÇÒ Delegate 2°³¿Í Ãà¾à ÇÔ¼öÀÎ $()¿Í $s()À» ¿¬°á½ÃÄÑ ÁÙ Delegate 2°³¸¦ »ý¼ºÇÑ ÈÄ, À§¿¡¼­ ÀÛ¼ºÇÑ init() ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ¿ì¸®ÀÇ ÇÁ·¹ÀÓ¿öÅ©´Â ¸ðµç Áغñ°¡ ³¡³µ½À´Ï´Ù.

ÀÌÁ¦ ¿ì¸®´Â ¸¶±¸¸¶±¸ ¸¶±¸¸¶±¸ ¸¶±¸¸¶±¸ ¸¶±¸¸¶±¸ ¸¶±¸¸¶±¸ ¸¶±¸¸¶±¸ ºÎ·Á¸Ô±â¸¸ ÇÏ¸é µË´Ï´Ù.


"Á» ¯Àεí ÇÑ È÷µùÅ©ÀÇ °ü´ëÇÑ ÇÁ·¹ÀÓ¿öÅ©" ¼Ò½ºÄÚµå ¹× µ¥¸ð ´Ù¿î·Îµå

¿ì¸®´Â Áö±Ý±îÁö °£´ÜÇÑ ¿ì¸®¸¸ÀÇ ÇÁ·¹ÀÓ¿öÅ© Çϳª¸¦ ¸¸µé¾î º¸¾Ò½À´Ï´Ù. Âü Àç¹Õ¾úÁÒ? ¼Ò½ºÄÚµå¿Í µ¥¸ð´Â ´ÙÀ½ ¸µÅ©¸¦ Ŭ¸¯ÇÏ¿© ´Ù¿î·Îµå Çϼ¼¿ä. ¶óÀ̼¾½º´Â ¾øÀ¸¸ç, ¸¶À½²¯ ÆÛ°¡¼Åµµ µË´Ï´Ù. ´Ü, Ãâó¸¸ Ç¥±â ÇØ ÁÖ¼¼¿ä~~

  Á» ¯Àεí ÇÑ È÷µùÅ©ÀÇ °ü´ëÇÑ ÇÁ·¹ÀÓ¿öÅ© ¼Ò½ºÄÚµå ´Ù¿î·Îµå
  Á» ¯Àεí ÇÑ È÷µùÅ©ÀÇ °ü´ëÇÑ ÇÁ·¹ÀÓ¿öÅ© µ¥¸ð ´Ù¿î·Îµå


¿ä¾à

Àß ¼³°èµÈ ³ª¸¸ÀÇ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µé¾î¼­ ºÎ±¹°­º´ ÀÌ·èÇÏÀÚ!


°­Á¸¦ ¸¶¹«¸® Çϸ鼭....

ÀÛ³â 8¿ù¿¡ ½ÃÀÛÇÑ 4ºÎÀÛ °­Á°¡ µåµð¾î ³¡ÀÌ ³µ³×¿ä. ±× µ¿¾ÈÀÇ °­Á¸¦ ÁøÇàÇϸ鼭 Àú ¶ÇÇÑ ¸¹ÀÌ ¹è¿ü½À´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ »õ·Î¿î ±ú´ÞÀ½À» ¾ò¾úÀ¸¸ç, ¹«ÇÑÇÑ °¡´É¼º¿¡ °¨ÅºÀ» ±ÝÄ¡ ¸øÇϰí ÀÖ½À´Ï´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ »ç¶ûÀÌ ¸ÅÀϸÅÀÏ Ä¿Áø´Ù°í ÇÒ±î¿ä?

¿ì¸®´Â Áö±Ý±îÁö ¿À·§µ¿¾È À̾îÁ® ¿Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ Æí°ß°ú ¿ÀÇØ, ±×¸®°í ¹«°ü½É ¶§¹®¿¡ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ Àç¹ß°ßÀÌ ¸Å¿ì ´Ê¾îÁ³À» »ÓÀÔ´Ï´Ù. ÇÏÁö¸¸, ÀÚ¹Ù½ºÅ©¸³Æ®´Â ±æ°í ±ä ½Ã°£À» Àγ»ÇÏ¸ç ¿ì¸®¸¦ ±â´Ù·Á ¿Ô½À´Ï´Ù. ÀÌÁ¦ ÇÔ²² ÃãÃ⠽ð£ÀÔ´Ï´Ù. ¸¶À½²¯ Áñ±âÀÚ±¸¿ä~~ /Ãã /Ãã /Ãã

Áö±Ý±îÁö ÀÚ¹Ù½ºÅ©¸³Æ®´Â Çѳ¹ ±ÍÂúÀº ¾ð¾îÀÌ¸ç °øºÎÇϱâ âÇÇÇÏ´Ù°í »ý°¢ÇØ ¿À¼Ì´ø ºÐµéÀÌ Á¦ °­Á·ΠÀÎÇØ »õ·Î¿î ½Ã°¢À» °¡Áö¼ÌÀ¸¸é ÇÏ´Â ¹Ù·¥ÀÔ´Ï´Ù. ¸ðµç ¾ð¾î°¡ ±×·¸µíÀÌ ÀÚ¹Ù½ºÅ©¸³Æ®µµ ³ë·ÂÇÑ ¸¸Å­ ´ë°¡¸¦ µ¹·ÁÁÖ´Â ³à¼®ÀÔ´Ï´Ù. À¥ °³¹ßÀÚ¿¡°Ô ±× ´ë°¡´Â ¸Å¿ì Å©¸ç, ¿å½É³ª´Â ´ë°¡ÀÔ´Ï´Ù. ²À ÀâÀ¸½Ã±æ ¹Ù¶ø´Ï´Ù.

³¡À¸·Î Á¦ °­Á°¡ ³ºÀº ºÒ¼¼ÃâÀÇ ½´ÆÛ½ºÅ¸! ±èÀÚ½º¾¾ °¨»óÇϽø鼭 °­Á ¸¶Ä¡°Ú½À´Ï´Ù. Àú´Â ºü¸¥ ½ÃÀÏ ¾È¿¡ »õ·Î¿î °­Á·Πã¾Æ ºË°Ú½À´Ï´Ù. ²ý~~ »Ð~~

 

°­Á ¸ñ·ÏÀ¸·Î..