·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[¼¼·ÃµÈ ÀÚ¹Ù À¥ ÇÁ·Î±×·¡¸Ó µÇ±â] ¨é ÆÐÅÏ¡¤ÇÁ·¹ÀÓ¿öÅ©¡¤XP

¹Ú¿µ·Ï (NHN)   2005/05/31
¿¬Àç¼ø¼­
1ȸ. ÀÚ¹Ù À¥ ÇÁ·Î±×·¡¸ÓÀÇ ±âº»
2ȸ. À¥ ÇÁ·ÎÁ§Æ® °³¹ß ȯ°æ °®Ãß±â
3ȸ. ÆÐÅÏ, ÇÁ·¹ÀÓ¿öÅ©, XP
[Áöµð³ÝÄÚ¸®¾Æ]ÀÌÁ¦ ±âÃʸ¦ ÀÍÈ÷°í ½º½º·Î °³¹ß ȯ°æÀ» °®Ãâ ÁÙµµ ¾Ë°Ô µÇ¾úÀ¸´Ï ¾îµð °¡¼­ ÇÁ·Î±×·¡¸Ó¶ó°í ¸»ÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ´ÙÀ½Àº »ç¶÷µéÀ» À̲ø°í ³ª°¥ ¼ö ÀÖ´Â ´É·ÂÀ» °®Ãß´Â °ÍÀÔ´Ï´Ù.

ÆÐÅϰú ÇÁ·¹ÀÓ¿öÅ©, ´Ù¼Ò ¾î·Á¿ö º¸ÀÏ ¼ö ÀÖ´Â ÁÖÁ¦ÀÌÁö¸¸ ÇÁ·Î±×·¡¸Ó·Î½á ÇÑ ´Ü°è °Åµì³ª±â À§ÇØ °ÅÃÄ¾ß ÇÒ °úÁ¦ÀÔ´Ï´Ù. ÀÌÁ¦±îÁö ±âº»±â·Î¸¸ ½Î¿ö¿Ô´Ù¸é ÀÌÁ¦ºÎÅÍ´Â Á» °í³­À̵µÀÇ ±â¼ú°ú »õ·Î¿î ¹«±âµéÀ» ½á º¾½Ã´Ù. Áö±ÝºÎÅͰ¡ Á¤¸» Áñ°Å¿î ÇÁ·Î±×·¡¹ÖÀÇ ¼¼°è·Î µé¾î°¡´Â ±æÀÔ´Ï´Ù.

Å»¹«µå¿¡´Â ¹è°íÇ ÀڽĿ¡°Ô °í±â¸¦ Àâ¾ÆÁֱ⺸´Ù °í±â¸¦ Àâ´Â ¹æ¹ýÀ» °¡¸£ÃÄÁÖ¶ó´Â ¸»ÀÌ ÀÖ½À´Ï´Ù. ÁÁÀº ÇÁ·Î±×·¥À» °í±â¶ó°í º»´Ù¸é ÁÁÀº ÇÁ·Î±×·¥À» ¸¸µé¾îÁÖ´Â °Íº¸´Ù ÁÁÀº ÇÁ·Î±×·¥À» ¸¸µå´Â ¹æ¹ýÀ» °¡¸£ÃÄ¾ß ÇÑ´Ù´Â ¸»ÀÌ µÇ°ÚÁÒ. ÇÏÁö¸¸ ±×·¯±â¿£ ¸¶¼Ò ÁִϾîÀÇ Áö¸éÀº ³Ë³ËÁö ¾Ê½À´Ï´Ù. »ç½Ç ÃʱÞÀÚ´Â ÀâÁö¿¡¼­ »õ·Î¿î °ÍÀ» ÀÍÈ÷·Á Çϱ⺸´Ù ÀÔ¹®¼­¿¡¼­ ¹è¿ö¾ß ÇÕ´Ï´Ù.

±×·¸´Ù¸é ÀÌ ÇÑÁ¤µÈ Áö¸é¿¡¼­ ÇÒ ¼ö ÀÖ´Â ÃÖ¼±Àº ÀÚ¼¼ÇÑ ³»¿ëÀ» ±â¼úÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹«¾ùÀ» °øºÎÇØ¾ß ÇÏ´ÂÁö, ¾îµð¼­ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´ÂÁö, ¿äÁò Ãß¼¼´Â ¾î¶²Áö¸¦ ¾Ë·ÁÁÖ´Â °ÍÀ̰ÚÁö¿ä. ¸»ÇÏÀÚ¸é ÁÁÀº ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó ±×°ÍÀ» ¸¸µå´Â ¹æ¹ýÀ» °í±â·Î º¸°í À̰ÍÀ» Àâ´Â ¹æ¹ýÀ» Á¦½ÃÇϰڴٴ ¶æÀÔ´Ï´Ù.

ÇÊÀÚÀÇ ÂªÀº ¼¼ ¹øÀÇ ¿¬Àç¿¡´Â ¸ðµÎ ÀÌ·± »ý°¢ÀÌ ´ã°Ü ÀÖ°í ±×·¡¼­ ±â¼úÀûÀÎ »ó¼¼ ³»¿ë ¼³¸íº¸´Ù´Â ¹«¾ùÀ» °øºÎÇØ¾ß Çϴ°¡¿¡ ´ëÇÑ ³»¿ë¿¡ Ä¡ÁßÇß½À´Ï´Ù. À̹ø ±Û ¿ª½Ã µðÀÚÀÎ ÆÐÅÏ, ÇÁ·¹ÀÓ¿öÅ©, XP ¼¼ °¡Áö¸¦ ´Ù·ç°í ÀÖÁö¸¸ °¢°¢ÀÇ »ó¼¼ÇÑ ¼³¸íº¸´Ù´Â ÀÌ·± °³³äµéÀ» ¾î¶»°Ô ÀÌÇØÇϰí Ȱ¿ëÇØ¾ß Çϴ°¡¿¡ ÃÊÁ¡À» ¸ÂÃâ °ÍÀÔ´Ï´Ù.

µðÀÚÀÎ ÆÐÅϰú ÇÁ·¹ÀÓ¿öÅ©´Â ¸ÕÀú ¿ë¾î¿¡ ´ëÇÑ ¼³¸íºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. ±×¸®°í ±×°ÍµéÀÇ ¸ñÀû°ú °¡Ä¡¿¡ ´ëÇØ »ìÆìº¸°í ¸î °¡Áö ¿¹¸¦ »ìÆìº¼ °ÍÀÔ´Ï´Ù. XP´Â Á¦¸ñ¿¡ Æ÷ÇÔ½Ã۱ä ÇßÁö¸¸ À̰ÍÀº µðÀÚÀÎ ÆÐÅϰú ÇÁ·¹ÀÓ¿öÅ©¸¦ XPÀÇ ½Ã°¢¿¡¼­ ¹Ù¶óº»´Ù´Â ÀǹÌÀÌ°í °³º°ÀûÀÎ ÁÖÁ¦·Î´Â ´Ù·çÁö ¾Ê½À´Ï´Ù.

¿ë¾î·Î¼­ÀÇ µðÀÚÀÎ ÆÐÅÏ
µðÀÚÀÎ ÆÐÅÏÀ̶õ ÇÁ·Î±×·¡¹Ö¿¡¼­ ¹ß»ýÇÏ´Â ¿©·¯ °¡Áö ¹®Á¦ ¿µ¿ª¿¡ ´ëÇÑ ÇØ°á ¹æ¹ýµéÀ» ¸ð¾Æ¼­ Á¤¸®ÇسõÀº °ÍÀÔ´Ï´Ù. GoF(Gang of Four)°¡ ¿©·¯ °¡Áö ÆÐÅϵéÀ» ¸ð¾Æ ¡ºµðÀÚÀÎ ÆÐÅÏ¡»À̶ó´Â Ã¥À» ³»¸é¼­ºÎÅÍ µðÀÚÀÎ ÆÐÅÏÀ̶ó´Â ¿ë¾î°¡ ÀϹÝÈ­µÇ±â ½ÃÀÛÇß½À´Ï´Ù. GoFÀÇ µðÀÚÀÎ ÆÐÅÏ Áß Çϳª¸¦ ¿¹·Î µé¸é µ¥ÄÚ·¹ÀÌÅÍ(Decorator)¶ó´Â ÆÐÅÏÀÌ ÀÖ½À´Ï´Ù. ·¦ÆÛ(Wrapper)¶ó´Â ¸»·Îµµ ¾²À̴µ¥ À̰ÍÀº ¾î¶² °´Ã¼¿¡ ±âº»ÀûÀÎ µ¿ÀÛÀº À¯ÁöÇϸ鼭 ºÎ°¡ÀûÀÎ ±â´ÉÀ» ³Ö°í ½ÍÀ» ¶§ »ç¿ëÇÕ´Ï´Ù.

ÀÌ ÆÐÅÏÀÇ °£´ÜÇÑ ¿¹·Î JDBC¿¡¼­ ¼öÇàÇÑ Äõ¸®¸¦ ·Î±×·Î ³²±â°í ½ÍÀ» ¶§ ·Î±ëÀ» À§ÇÑ µ¥ÄÚ·¹ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸Åë JDBC¿¡¼­´Â Connection °´Ã¼¸¦ ÀÌ¿ëÇØ¼­ Statement °´Ã¼¸¦ »ý¼ºÇϰí À̰ÍÀ» ÀÌ¿ëÇØ¼­ Äõ¸®¸¦ ¼öÇàÇÏ°Ô µÇ´Âµ¥ ÀÌ ¶§ Statement ´ë½Å LoggableStatement¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.

LoggableStatement´Â Statement¸¦ »ó¼ÓÇÏ¸ç »ý¼ºÀÚ¿¡¼­ Connection °´Ã¼°¡ ¸¸µç Statement °´Ã¼¸¦ ¹Þ¾Æ¼­ ¸â¹ö·Î °®°í ÀÖ½À´Ï´Ù. ±×¸®°í Äõ¸® ¿äûÀÌ ¿À¸é ¸ÕÀú ·Î±ëÀ» ÇÏ°í ½ÇÁ¦ Äõ¸®´Â »ý¼ºÀÚ¿¡¼­ ¹ÞÀº Statement °´Ã¼¿¡ À§ÀÓÇÕ´Ï´Ù. ÀÌ·± ¹æ½ÄÀ¸·Î StatementÀÇ µ¿ÀÛÀº ±×´ë·Î À¯ÁöÇϸ鼭 ·Î±×¸¦ ³²±â´Â ±â´ÉÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·± °ÍÀÌ µðÀÚÀÎ ÆÐÅÏÀÔ´Ï´Ù. ¼öÇÐ °ø½Äó·³ °°Àº Á¾·ùÀÇ ¹®Á¦µé¿¡ ´ëÇØ ÀÌ¹Ì Á¤¸®µÈ ÇØ°áÃ¥À» ÀÌ¿ëÇÔÀ¸·Î½á ¸Å¹ø °°Àº ¹®Á¦¸¦ ÇØ°áÇϴµ¥ Áߺ¹À¸·Î ÅõÀڵǴ ³ë·ÂÀ» ÁÙÀÌ·Á´Â °ÍÀÌÁÒ.

ÇÏÁö¸¸ µðÀÚÀÎ ÆÐÅÏÀ» ±×´ë·Î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀº °Í¸¸Àº ¾Æ´Õ´Ï´Ù. ¿À¿ëÀÇ À§Ç輺ÀÌ Å©±â ¶§¹®ÀÔ´Ï´Ù. »ç½Ç ¾î¶² ¹®Á¦ »óȲ¿¡ ¾î¶² ÆÐÅÏÀ» Àû¿ëÇÏ¸é µÇ´Â°¡¸¦ ÆÇ´ÜÇϱâ¶õ ½¬¿î ÀÏÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ÇÊ¿äÇÏÁöµµ ¾ÊÀº º¹ÀâÇÑ ÆÐÅÏÀ» µµÀÔÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ±× ¶§¹®¿¡ °£´ÜÇÏ°Ô ÇØ°áµÉ ¹®Á¦°¡ ´õ º¹ÀâÇØÁö±âµµ ÇÏÁÒ. ±×·¡¼­ ¾ÈƼ ÆÐÅÏ °°Àº À̾߱⵵ ³ª¿À°í ÀÖ½À´Ï´Ù. XP(eXtreme Programming)¿¡¼­µµ µðÀÚÀÎ ÆÐÅÏÀ» ÀǽÄÇÏÁö ¸»¶ó°í ÇÕ´Ï´Ù.

±×º¸´Ù ¿øÇϴ´ë·Î µ¿ÀÛÇÒ ¼ö ÀÖ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀ¸·Î ÄÚµùÀ» ÇÏ´Ù°¡ Áߺ¹ÀÌ »ý±â°Å³ª Äڵ尡 ÁöÀúºÐÇØÁö¸é ¸®ÆÑÅ丵À» ÇÕ´Ï´Ù. ±×·¯¸é¼­ ÀÚ¿¬½º·´°Ô Äڵ尡 µðÀÚÀÎ ÆÐÅÏÀÇ ¸ð½ÀÀ» °®Ãß¾î ³ª°¡´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù.

ÀÌó·³ µðÀÚÀÎ ÆÐÅÏÀÇ ¿ø·¡ ¸ñÀûÀº ¹®Á¦ ÇØ°á ½Ã°£À» ´ÜÃà½ÃŰ´Â °ÍÀ̾úÁö¸¸ ¹®Á¦ ¿µ¿ª°ú ÆÐÅÏÀ» Á¤È®È÷ ¸ÅνÃŰ±â ¾î·Æ°í Over-EngineeringÀÌ ³ª¿À´Â °æ¿ì°¡ ¸¹±â ¶§¹®¿¡ ½ÇÁ¦ °³¹ß¿¡¼­´Â µðÀÚÀÎ ÆÐÅÏÀ» Á÷Á¢ÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

µðÀÚÀÎ ÆÐÅÏÀÇ °¡Ä¡´Â ±×º¸´Ùµµ ÀÇ»ç¼ÒÅë ºñ¿ëÀ» ÁÙ¿©ÁÙ ¼ö ÀÖ´Ù´Â µ¥ ÀÖ½À´Ï´Ù. ¼­·Î°¡ ÆÐÅÏ¿¡ ´ëÇØ Àß ¾Ë°í ÀÖ´Ù¸é º¹ÀâÇÑ ¼³¸í ¾øÀ̵µ ¾ÆÁÖ °£´ÜÇÏ°Ô ÀÇ»ç¼ÒÅëÀÌ ÀÌ·ç¾îÁú ¼ö ÀÖÁÒ. À̸¦Å׸é ÀÌ ¿¹¸¦ ¼³¸íÇϱâ À§ÇØ º¹ÀâÇÏ°Ô LoggableStatementÀÇ ±¸Á¶¸¦ ¼³¸íÇÏ´Â °Í ´ë½Å¿¡ ¡®ÀÌ LoggableStatement Ŭ·¡½º´Â StatementÀÇ µ¥ÄÚ·¹ÀÌÅÍ·Î ·Î±ëÀ» Ãß°¡·Î ÇÏ°Ô µÇ¾î À־¶ó°í ¸»ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Áï ÆÐÅÏÀº ÇØ°áÃ¥À¸·Î¼­º¸´Ù ÀÇ»ç¼ÒÅëÀ» À§ÇÑ ¿ë¾î·Î¼­ Ȱ¿ëÇÏ´Â °Å¶ó°í »ý°¢ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

ÀÚ¹ÙºóÁîÀÇ ÇØ¾Ç
ÆÐÅÏ ¿À¿ëÀÇ ÇÑ ¿¹·Î ÀÚ¹ÙºóÁ µé ¼ö ÀÖ½À´Ï´Ù. ¡®Çؾǡ¯À̶ó´Â Ç¥Çö±îÁö ½á°¡¸é¼­ ÀÚ¹ÙºóÁ ¾ð±ÞÇÑ °Í¿¡ ´ëÇØ ³î¶ó´Â »ç¶÷µµ ¸¹À» °ÍÀÔ´Ï´Ù. ÀÚ¹Ù¸¦ ¹è¿ì¸é¼­ º¸Åë ÀÚ¹ÙºóÁîÀÇ ÀåÁ¡¿¡ ´ëÇÑ À̾߱⸦ ¸¹ÀÌ µè°Ô µÇ´Ï±î¿ä. ÇÏÁö¸¸ Á¡Á¡ ÀÚ¹ÙºóÁ ÇØ·Î¿î °ÍÀ¸·Î ÀνÄÇÏ´Â »ç¶÷µéÀÌ ¸¹¾ÆÁö°í ÀÖ½À´Ï´Ù. ¸ÕÀú ÀÚ¹ÙºóÁî°¡ ¹«¾ùÀÎÁöºÎÅÍ ´Ù½Ã »ìÆìº¾½Ã´Ù.

ÀÚ¹ÙºóÁî´Â ¿ø·¡ ÄÄÆ÷³ÍÆ® ¾ÆÅ°ÅØÃ³¸¦ ÀÚ¹Ù¿¡¼­ ±¸ÇöÇϱâ À§ÇØ µµÀÔµÈ ±â¼úÀÔ´Ï´Ù. °´Ã¼ÀÇ ÇÁ·ÎÆÛƼÀÇ Á¶ÀÛ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÏ¿© Àç»ç¿ë¼ºÀÌ ³ô°í À¯¿¬ÇÑ ÄÄÆ÷³ÍÆ®¸¦ ¸¸µå´Â °ÍÀÌ ¸ñÀûÀÌÁÒ. ÀÚ¹ÙºóÁîÀÇ Æ¯Â¡À¸·Î ¾ð±ÞµÇ´Â °ÍÀÌ ¿©·¯ °¡Áö°¡ ÀÖÁö¸¸ ´Ù¸¥ ÀÚ¹Ù °´Ã¼¿Í ±¸º°µÇ´Â Ư¡Àº ÇÁ·ÎÆÛƼ °ü¸® ¹æ½ÄÀÔ´Ï´Ù. ÇÁ·ÎÆÛƼ·Î private Çʵ带 µÎ°í ±× Çʵ忡 ´ëÇÑ public getter/setter¸¦ ¸¸µé¾î¼­ À̸¦ ÀÌ¿ëÇØ¼­ ÇÁ·ÎÆÛƼ¿¡ Á¢±ÙÀ» ÇÕ´Ï´Ù.

»ç½Ç À̰ÍÀº ÀϹÝÀûÀÎ Çʵå ÀÎĸ½¶·¹À̼Ç(field encapsulation)°ú Å©°Ô ´Ù¸£Áö ¾Ê½À´Ï´Ù. ´Ù¸¥ Á¡Àº ÀÌ ÇÁ·ÎÆÛƼÀÇ À̸§°ú getter/setterÀÇ À̸§¿¡ ³×ÀÌ¹Ö ·êÀ» ºÎ¿©Çؼ­ ºóÁî API¸¦ ÅëÇØ¼­ ÇÁ·ÎÆÛƼÀÇ À̸§À¸·Î ÀÌ ÇÁ·ÎÆÛƼ¸¦ Àаųª ¾µ ¼ö ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î nameÀ̶ó´Â ÇÁ·ÎÆÛƼ°¡ ÀÖ´Ù¸é getName, setNameÀ̶ó´Â À̸§À¸·Î getter/setter¸¦ ¸¸µé°í ºóÁî API¿¡¼­´Â nameÀ̶ó´Â À̸§À¸·Î ÇÁ·ÎÆÛƼ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ÀϹÝÀûÀÎ Çʵå ÀÎĸ½¶·¹À̼ÇÀ» Çϸé ÇÁ·ÎÆÛƼ¿¡ Á¢±ÙÇϱâ À§ÇØ ¸Þ½îµå¸íÀ» Äڵ忡 Á÷Á¢ ½á¾ß ÇÏÁö¸¸ ºóÁî ±Ô¾à¿¡ ¸Â°Ô getter/setter¸¦ ¸¸µé°í ºóÁî API¸¦ ÀÌ¿ëÇϸé StringÀ¸·Î ÁÖ¾îÁø ÇÁ·ÎÆÛƼ¿¡ Á¢±ÙÇÏ´Â °ÍÀÌ °¡´ÉÇØÁø´Ù´Â °ÍÀÔ´Ï´Ù.

ÀÌ Á¡À» ÀÌ¿ëÇÏ¸é º¹ÀâÇÑ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ÀÚ¹ÙºóÁî °´Ã¼ÀÇ ÇÁ·ÎÆÛƼ¸¦ µ¿ÀûÀ¸·Î ½±°Ô Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼­ Á¤º¸ ÀºÆó(information hiding, data hiding)¿Í µ¿ÀûÀÎ ÇÁ·ÎÆÛƼ Á¢±ÙÀÇ µÎ ¸¶¸® Åä³¢¸¦ µ¿½Ã¿¡ Àâ´Â °ÍÀÌ ÀÚ¹ÙºóÁîÀÇ ¸ñÀûÀÔ´Ï´Ù.

±×·¯¸é ¹«¾ùÀÌ ¹®Á¦Àϱî¿ä? ¿ì¼± ù ¹øÂ° ¸ñÀûÀÎ Á¤º¸ ÀºÆó°¡ Á¦´ë·Î µÇÁö ¾Ê½À´Ï´Ù. »ç½Ç Çʵå ÀÎĸ½¶·¹À̼ÇÀº Á¤º¸ ÀºÆó¸¦ À§ÇÑ °ÍÀ̶ó°í ÇÏÁö¸¸ À̰ÍÀº Ç㱸¿¡ ºÒ°úÇÕ´Ï´Ù. ½ÇÁúÀûÀ¸·Î ÇÁ·ÎÆÛƼ¿¡ ´ëÇÑ Á¢±Ù¼ºÀº public field¿Í private field, public getter/setter°¡ ¿ÏÀüÈ÷ µ¿ÀÏÇÕ´Ï´Ù. ¶È°°ÀÌ ÀÐ°í ¾µ ¼ö Àִµ¥ ¹¹°¡ ´Ù¸£°Ú½À´Ï±î. ´ÜÁö Á» ´õ Á¶½É½º·´°Ô ¾²Áö ¾ÊÀ»±î¶ó°í ÃßÃøÇÏ´Â °Í»ÓÀÔ´Ï´Ù. ±×·¡¼­ ÀÚ¹ÙºóÁ »ç¿ëÇÒ ¶§ ²À ÇÊ¿äÇÑ °æ¿ì°¡ ¾Æ´Ï¶ó¸é setter´Â ¸¸µéÁö ¾Ê±â¸¦ ±ÇÇϱ⵵ ÇÕ´Ï´Ù.

ÇÏÁö¸¸ ÀϹÝÀûÀÎ Çʵå ÀÎĸ½¶·¹À̼ÇÀ̶ó¸é setter¸¦ ¸¸µéÁö ¸»¶ó´Â Á¶¾ðÀ» ÇÒ ¼ö ÀÖ°ÚÁö¸¸ ÀÚ¹ÙºóÁî´Â ±× ¸ñÀûÀÌ ÇÁ·ÎÆÛƼ¸¦ µ¿ÀûÀ¸·Î Á¶ÀÛÇÏ´Â °ÍÀ̹ǷΠÄÄÆ÷³ÍÆ®·Î¼­ÀÇ ¿ªÇÒÀ» Á¦´ë·Î ÇÏ·Á¸é setterµµ ´ç¿¬È÷ ÇÊ¿äÇÕ´Ï´Ù. °á±¹ Çʵå ÀÎĸ½¶·¹À̼ÇÀ¸·Î ÀÎÇØ ÄÚµå´Â ±æ¾îÁ³Áö¸¸ Á¤º¸ ÀºÆó´Â ´Þ¼ºÇÏÁö ¸øÇßÀ¸¹Ç·Î ½ÇÁúÀûÀÎ À̵æÀÌ ¾ø½À´Ï´Ù.

¶Ç ´Ù¸¥ ¹®Á¦´Â ÀÚ¹ÙºóÁîÀÇ ÇѰ迡 °üÇÑ °ÍÀÔ´Ï´Ù. µ¿ÀûÀ¸·Î ÇÁ·ÎÆÛƼÀÇ ³»¿ë¿¡ Á¢±ÙÇÒ ¼ö´Â ÀÖÁö¸¸ ÇÁ·ÎÆÛƼ¸¦ Ãß°¡Çϰųª ¾ø¾Ö´Â Á¤µµÀÇ À¯¿¬¼ºÀº ¼ÒÈ­ÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¹Àº °æ¿ì ÀÚ¹ÙºóÁ µ¥ÀÌÅÍ Àü¼Û °´Ã¼(Data Transfer Object)·Î »ç¿ëÇϴµ¥ ÀÌ·± °æ¿ì´Â ÇÁ·ÎÆÛƼÀÇ ³»¿ë »Ó ¾Æ´Ï¶ó ÇÁ·ÎÆÛƼ Á¾·ù ÀÚü°¡ ÀÚÁÖ º¯ÇÕ´Ï´Ù. ±×·±µ¥ ÀÚ¹ÙºóÁî·Î ¸¸µé°Ô µÇ¸é ÇÁ·ÎÆÛƼ°¡ ´Ã¾î³¯ ¶§¸¶´Ù Çʵå¿Í ¸Þ½îµå¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ±×¸®°í µ¥ÀÌÅÍÀÇ Á¾·ù°¡ ´Þ¶óÁú ¶§¸¶´Ù »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé¾î¾ß Çϱ¸¿ä. ÀÚ¹Ù Ä÷º¼Ç¿¡ MapÀÌ Àִµ¥ ÀÌ·± ºñÈ¿À²À» °¨´çÇØ¾ß ÇÒ ÀÌÀ¯´Â º°·Î ¾ø½À´Ï´Ù.

Map¿¡¼­´Â ÇÁ·ÎÆÛƼ¿¡ µ¿ÀûÀ¸·Î Á¢±ÙÇÏ´Â °ÍÀº ¹°·ÐÀ̰í ÇÁ·ÎÆÛƼ°¡ ÀÚÀ¯·Ó°Ô ´Ã¾î³ª°Å³ª ÁÙ¾îµé ¼ö ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ºóÁî API´Â StringÀ¸·Î ÁÖ¾îÁø ÇÁ·ÎÆÛƼ¸í¿¡ ´ëÇÑ getter/setter¸¦ È£ÃâÇϱâ À§ÇØ ³»ºÎÀûÀ¸·Î IntrospectionÀ̶ó´Â ±â¼úÀ» »ç¿ëÇϴµ¥ À̰ÍÀº ÀÚ¹ÙÀÇ Reflection API¸¦ ÀÌ¿ëÇÕ´Ï´Ù. ¶§¹®¿¡ ¼º´É»ó¿¡¼­µµ ÇØ½Ì(Hashing)À» ÀÌ¿ëÇÏ´Â HashMap¿¡ ºñÇØ ³ªÀº °ÍÀÌ ¾ø½À´Ï´Ù.

±×·¡¼­ ÀÚ¹ÙºóÁîÀÇ ´ÜÁ¡¿¡ ´ëÇØ ¸¹Àº »ç¶÷µéÀÌ °ø°¨Çϱ⠽ÃÀÛÇß°í ÃÖ±Ù¿¡ µîÀåÇÏ´Â °¢Á¾ ÇÁ·¹ÀÓ¿öÅ©µéµµ ÀÌ·± °æÇâÀ» ¹Ý¿µÇϰí ÀÖ½À´Ï´Ù. ÃʱâÀÇ ÇÁ·¹ÀÓ¿öÅ©µéÀº ÀÚ¹ÙºóÁ Ȱ¿ëÇÏ´Â ±â´ÉµéÀ» Á¦°øÇßÀ¸³ª ÃֽŠÇÁ·¹ÀÓ¿öÅ©µéÀº ÀÚ¹ÙÀÇ Ä÷º¼ÇÀ» Àû±ØÀûÀ¸·Î Ȱ¿ëÇϰí ÀÖ½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î µ¥ÀÌÅÍ Àü¼Û °´Ã¼ÀÇ °æ¿ì´Â MapÀ» ±×³É »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ°í ±× ¿Ü¿¡ º¹ÀâÇÑ ·ÎÁ÷À» ¼öÇàÇÏ´Â °´Ã¼Àε¥ ÇÁ·ÎÆÛƼ¸¦ ¸¹ÀÌ »ç¿ëÇØ¾ß ÇÑ´Ù¸é MapÀ» µ¥ÄÚ·¹ÀÌÅÍ·Î »ç¿ëÇÏ¸é Æí¸®ÇÕ´Ï´Ù. ±×¸®°í ÀϹÝÀûÀ¸·Î Ŭ·¡½º¸¦ ¼³°èÇÒ ¶§ setter´Â µÇµµ·Ï ¸¸µéÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

ÇÁ·¹ÀÓ¿öÅ©ÀÇ °¡Ä¡
ÇÁ·¹ÀÓ¿öÅ©(framework)¶õ ´Ü¾î´Â ¿©·¯ °¡Áö Àǹ̷Π»ç¿ëµÇÁö¸¸ º¸ÅëÀº ¾î¶² ¿µ¿ªÀÇ APIµéÀ» »ç¿ëÇÏ±â Æí¸®ÇÑ ÇüÅ·ΠÆ÷ÀåÇØ³õÀº °ÍÀ» ¸»ÇÕ´Ï´Ù. À̸¦Å׸é ÀÚ¹Ù Ä÷º¼Ç ÇÁ·¹ÀÓ¿öÅ©´Â ÀÚ¹Ù¿¡¼­ °¢Á¾ Ä÷º¼ÇÀ» »ç¿ëÇϱ⠽±°Ô ¸ð¾Æ³õÀº °ÍÀ̰í ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®ÀÇ BSF(Bean Scripting Framework)´Â ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ÀÚ¹ÙºóÁ ½ºÅ©¸³ÆÃÀ» Çϱ⠽±°Ô ¸¸µç APIÀÇ ÁýÇÕÀÔ´Ï´Ù. ±×¸®°í Áö±Ý ³íÀÇÇÏ·Á´Â À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©´Â À¥¿¡¼­ ¼­ºí¸´ APIµéÀ» Á» ´õ Æí¸®ÇÏ°í °´Ã¼ÁöÇâÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â °ÍÀÔ´Ï´Ù.

ÇöÀç À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÁÖ·ù´Â ´Ü¿¬ ½ºÆ®·µÃ÷(struts)ÀÔ´Ï´Ù. Àü ¼¼°è ÀÚ¹Ù À¥ °³¹ßÀÚÀÇ 60%°¡ ½ºÆ®·µÃ÷¸¦ »ç¿ëÇϰí ÀÖ´Ù°í ÇÏÁÒ. ÇÏÁö¸¸ ½ºÆ®·µÃ÷°¡ ÀÖÀ½¿¡µµ °è¼ÓÇØ¼­ »õ·Î¿î ÇÁ·¹ÀÓ¿öÅ©°¡ µîÀåÇϰí ÀÖ½À´Ï´Ù. ÇöÀç±îÁö °ø°³µÈ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¼ýÀÚ´Â ÀÌ¹Ì 60°³¸¦ ³Ñ½À´Ï´Ù. ½ºÆ®·µÃ÷¿¡´Â ¾î¶² ºÎÁ·ÇÔÀÌ Àֱ淡, ±×¸®°í ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©µéÀº ¹¹°¡ ºÎÁ·Çϱ淡 °³¹ßÀÚµéÀÌ »õ·Î¿î ÇÁ·¹ÀÓ¿öÅ©¸¦ °è¼Ó ¸¸µé±î¿ä.

ÇÁ·¹ÀÓ¿öÅ©ÀÇ Á¤ÀÇ  
½ºÆ®·°Ã³(structure), ¾ÆÅ°ÅØÃ³(architecture), ÇÁ·¹ÀÓ¿öÅ©(framework)¶õ ¿ë¾î´Â ±â¼ú°ú ½Ã´ë°¡ º¯Çϸ鼭 Á¶±Ý¾¿ ±× Àǹ̸¦ ´Þ¸®ÇØ °¡´Â °Í °°½À´Ï´Ù. ½ºÆ®·°Ã³¶ó´Â ¿ë¾î°¡ Tree¿Í °°Àº °èÃþÀûÀΠźźÇÑ ±â¹Ý ±¸Á¶¸¦ ¸»ÇÏ´Â ¹Ý¸é, ÇÁ·¹ÀÓ¿öÅ©´Â ´Ù¼Ò ¼öÆòÀûÀÎ Àǹ̸¦ °¡Áö´Â ÇϺΠ±¸Á¶¸¦ ³ªÅ¸³À´Ï´Ù. ¶ÇÇÑ ¾ÆÅ°ÅØÃ³¶ó´Â °ÍÀº ÀÌ µÎ ºÎºÐÀ» ¸ðµÎ Æ÷ÇÔÇÏ´Â ´õ Æ÷°ýÀûÀÎ °³³ä ü°èÀûÀÎ ±â¹Ý ±¸Á¶¸¦ ³ªÅ¸³À´Ï´Ù.

±×·¯³ª ÇÁ·¹ÀÓ¿öÅ©À̶õ ¿ë¾î´Â ½ºÆ®·°Ã³³ª ¾ÆÅ°ÅØÃ³º¸´Ù ´õ ³·Àº ·¹º§ÀÇ Àǹ̸¦ Áö´Õ´Ï´Ù. Áï, ÇÁ·¹ÀÓ¿öÅ©ÀÇ ½Çü´Â ¶§·Ð APIÀÇ ÁýÇÕÀ¸·Î ³ªÅ¸³ª±âµµ ÇÑ´Ù´Â °ÍÀÌÁö¿ä. ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁîÀÇ Java Activation Framework°¡ ±×·¯Çϰí Java Media Framework°¡ ±×·¯ÇÕ´Ï´Ù. ±×·¯³ª ÃÖ±Ù¿¡ ¿Í¼­ IBMÀÇ »÷ÇÁ¶õ½Ã½ºÄÚ ÇÁ·¹ÀÓ¿öÅ©(San Francisco Framework)¶ó´Â ¿ë¾î°¡ µîÀåÇϸ鼭 ¡®¹ÝÁ¦Ç°¡¯ÀÇ Àǹ̸¦ °­ÇÏ°Ô ¶ç´Â °Í °°½À´Ï´Ù.

¾Ë´Ù½ÃÇÇ »÷ÇÁ¶õ½Ã½ºÄÚ ÇÁ·¹ÀÓ¿öÅ©´Â Á¤ÇüÈ­µÈ ¾÷¹«¸¦ À§ÇÑ ºñÁî´Ï½º ÄÄÆ÷³ÍÆ®¸¦ ¹Ì¸® ¸¸µé¾î µÎ°í, À̸¦ Á¶¸³ÇÔÀ¸·Î½á »ý»ê¼ºÀ» ±Ø´ëÈ­½ÃŰÀÚ´Â °ÍÀÌ ¿äÁöÀÔ´Ï´Ù. ¾î·°Å³ª ÇöÀçÀÇ ÇÁ·¹ÀÓ¿öÅ©¶õ °ÍÀº ¡®±â¹Ý Ʋ ±¸Á¶¡¯¶ó´Â ¸ðÈ£ÇÑ Ãß»óÀûÀÎ °³³äÀ̱⺸´Ù´Â ¹°¸®ÀûÀÎ ½ÇüÀ̸鼭 ¹ÝÁ¦Ç° ¼º°ÝÀÇ ±¸Ã¼ÀûÀ̰í ü°èÈ­µÈ API¸¦ Á¦°øÇÏ´Â °³³äÀ̶ó°í ºÁ¾ß ÇÒ °ÍÀÔ´Ï´Ù.
- javaservice.net ÀÌ¿ø¿µ´ÔÀÇ ±Û

ÇÁ·¹ÀÓ¿öÅ©ÀÇ °¡Ä¡´Â ±â¼úÀûÀÎ ¿µ¿ª¿¡¼­ ¼Ò¸ðÀûÀÌ°í ¹Ýº¹ÀûÀÎ ÄÚµùÀ» ÇÁ·¹ÀÓ¿öÅ©°¡ ¼ÒÈ­ÇÏ¿© °³¹ßÀÚ°¡ ºñÁî´Ï½º ·ÎÁ÷¿¡¸¸ Àü³äÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â µ¥ ÀÖ½À´Ï´Ù. À̸¦Å׸é À¥ ÇÁ·Î±×·¡¹ÖÀ» ÇÑ´Ù¸é HTTP ÇÁ·ÎÅäÄݵµ ¾î´À Á¤µµ ¾Ë¾Æ¾ß ÇÏ°í ¼­ºí¸´ API¸¦ ÀÍÈ÷°í Äí۵µ ¾µ ÁÙ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.

ÇÏÁö¸¸ JSF(Java Server Faces) °°Àº ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÌ¿ëÇϸé ÀÏ¹Ý ÀÚ¹Ù GUI ÇÁ·Î±×·¡¹ÖÀ» ÇϵíÀÌ ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼­ºí¸´ API¸¦ ¸ô¶óµµ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» Àß ¸¸µé ¼ö ÀÖ´Â °ÍÀÌÁÒ. ·Î±ë(logging) ÇÁ·¹ÀÓ¿öÅ©°¡ ¾ø´Ù¸é °³¹ßÀÚ°¡ ·Î±×¸¦ ³²±â°í ½ÍÀ» ¶§ Á÷Á¢ ÆÄÀÏÀ» ¿­¾î¼­ ÆÄÀÏ¿¡ ³»¿ëÀ» ¾²´Â µîÀÇ º¹ÀâÇÑ Äڵ带 ½á³ª°¡¾ß ÇÏÁö¸¸ log4j¿Í °°Àº ÇÁ·¹ÀÓ¿öÅ©¸¦ ¾²¸é ´Ü¼øÈ÷ Logger °´Ã¼¿¡ ·Î±× ¸Þ½ÃÁö¸¦ ³Ñ°ÜÁÖ´Â °ÍÀ¸·Î ·Î±ëÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

EJBµµ ÀÌ·± ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀÏÁ¾ÀÔ´Ï´Ù. EJB°¡ ¾ø´Ù¸é ºÐ»ê Æ®·£Àè¼ÇÀÌ »ý±æ ¶§¸¶´Ù °³¹ßÀÚ°¡ Á÷Á¢ ºÐ»ê Æ®·£Àè¼Ç °ü¸®¸¦ ÇØ¾ß ÇÏÁö¸¸ EJB ¿£ÁøÀÌ À̸¦ ´ë½ÅÇØÁÖ¸é °³¹ßÀÚ´Â ºñÁî´Ï½º ·ÎÁ÷ÀÇ ±¸Çö¿¡¸¸ ÁýÁßÇÒ ¼ö ÀÖÁÒ. ÀÌó·³ ±â¼úÀûÀÎ ¿µ¿ªÀÌ ´Þ¶óÁú ¶§¸¶´Ù °³¹ßÀÚ´Â »õ·Î¿î API¸¦ ÀÍÈ÷°í ¶Ç ¼Ò¸ðÀûÀÌ°í ¹Ýº¹ÀûÀÎ Äڵ带 ½á¾ß Çϴµ¥ ÇØ´ç ºÐ¾ß¿¡ ÁÁÀº ÇÁ·¹ÀÓ¿öÅ©°¡ ÀÖÀ¸¸é Áߺ¹ Äڵ嵵 ½±°Ô Á¦°ÅÇÒ ¼ö ÀÖ°í ±â¼úÀûÀÎ ¼¼ºÎ»çÇ׿¡ ½Å°æ¾²Áö ¾Ê¾Æµµ µË´Ï´Ù.

°á±¹ ÇÁ·¹ÀÓ¿öÅ©ÀÇ °¡Ä¡´Â °³¹ßÀÚÀÇ ÇÒ ÀÏÀ» ÁÙ¿©ÁÖ´Â µ¥ ÀÖ´Â °ÍÀÔ´Ï´Ù.

ÇÏÁö¸¸ °£È¤ ÇÁ·¹ÀÓ¿öÅ©ÀÇ °¡Ä¡¸¦ À¯Áöº¸¼öÀÇ ¿ëÀÌÇÔ¿¡¼­ ã´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÇÁ·¹ÀÓ¿öÅ©°¡ ²Ë Â¥³õÀº Ʋ ¾È¿¡¼­¸¸ ÄÚµùÀ» ÇÏ¸é °³¹ßÀÚµéÀÌ ¸ðµÎ ÀϰüµÈ ¹æ½ÄÀ¸·Î °³¹ßÇϱ⠶§¹®¿¡ ´Ù¸¥ »ç¶÷ÀÌ ÀÛ¼ºÇÑ Äڵ带 ÆÄ¾ÇÇϱ⠽¬¿ö¼­ À¯Áöº¸¼öÇϱ⵵ ½±´Ù´Â °ÍÀÌÁÒ.

±×·¯³ª ÀÌ·¸°Ô Àϰü¼ºÀ» ÇÊ¿ä ÀÌ»óÀ¸·Î °­Á¶ÇÏ¸é ¶§¶§·Î ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. PEAA(Patterns of Enterprise Application Architecture)¿¡¼­´Â ±â¾÷¿ë ¾ÖÇø®ÄÉÀ̼Ç(Enterprise Application)¿¡´Â ¸ðµÎ °¢°¢ÀÇ ¾î·Á¿òÀ» °¡Áö°í Àִµ¥ ÀÌ ¾î·Á¿òÀº ¸ðµÎ Á¾·ù°¡ ´Ù¸£±â ¶§¹®¿¡ ÀÌ ¸ðµç ¾î·Á¿òÀ» ÇØ°áÇÏ´Â ÇϳªÀÇ ¾ÆÅ°ÅØÃ³´Â ºÒ°¡´ÉÇÏ´Ù°í ¸»ÇÕ´Ï´Ù. ´Ù¸¥ ¹®Á¦ ¿µ¿ª¿¡´Â ´Ù¸¥ ÇØ°áÃ¥À» ½á¾ßÇÑ´Ù´Â °ÍÀÌÁÒ. ±×·±µ¥ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÅëÇØ¼­ Áö³ªÄ¡°Ô ƲÀ» °íÁ¤½ÃÄÑ ³õ°Ô µÇ¸é ±× Ʋ¿¡¼­ ¼ö¿ëÇÒ ¼ö ¾ø´Â ¹®Á¦¸¦ ¸¸³µÀ» ¶§ ¾ÆÁÖ ºñÈ¿À²ÀûÀÎ ÄÚµùÀ» ÇÏ°Ô µË´Ï´Ù. ¹°·Ð À̰ÍÀº ÇÁ·¹ÀÓ¿öÅ© ÀÚü°¡ °¡Á®¿À´Â Á÷Á¢ÀûÀÎ ¹®Á¦´Â ¾Æ´Õ´Ï´Ù.

±×º¸´Ùµµ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀåÁ¡À» ¡®Àϰü¼º¡¯¿¡¼­ ã´Â »ç¶÷µéÀÌ ÀϹÝÀûÀ¸·Î ¹üÇÏ´Â ¿À·ùÀÔ´Ï´Ù. Àϰü¼ºÀÇ °¡Ä¡¸¦ Áö³ªÄ¡°Ô ³ô°Ô Æò°¡ÇÑ ³ª¸ÓÁö ÄÚµù ÆÐÅÏ¿¡ ³Ê¹« ¸¹Àº ±¸¼ÓÀ» ÇÏ°Ô µÇ°í ±× °á°ú·Î ¹®Á¦ ¿µ¿ª¿¡ ¸Â´Â ÆÐÅÏÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÆÐÅÏ¿¡ Äڵ带 ³¢¿ö ¸ÂÃß´Â Äڵ带 ¸¸µé°Ô µË´Ï´Ù. ±×·¡¼­ °á°úÀûÀ¸·Î ÇÁ·¹ÀÓ¿öÅ©¸¦ À¯¿¬ÇÏ°Ô È°¿ëÇÏÁö ¸øÇÏ°í ¿ÀÈ÷·Á Äڵ尡 ´õ ±æ°í º¹ÀâÇØÁö´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ¾Õ¼­ ¾ð±ÞÇÑ µðÀÚÀÎ ÆÐÅÏÀÇ ¿À¿ë°ú °°Àº °ÍÀÌÁÒ.

»ç½Ç Àϰü¼ºÀÇ ¹®Á¦´Â ÇÁ·¹ÀÓ¿öÅ©º¸´Ùµµ ÄÁº¥¼ÇÀ» ÅëÇØ ÇØ°áÇØ¾ß ÇÏ´Â °ÍÀÔ´Ï´Ù. XP¿¡¼­´Â Äڵ忡 ´ëÇÑ ¼ÒÀ¯±ÇÀ» °³¹ßÀÚ ÇÑ ¸íÀÌ ¾Æ´Ï¶ó ¸ðµÎ°¡ °®°Ô µÇ´Â ÄÚµå °øµ¿ ¼ÒÀ¯(collective code ownership)¸¦ ±ÇÀåÇÕ´Ï´Ù. ±×·¡¼­ ´Ù¸¥ »ç¶÷ÀÇ Äڵ带 ÀÐ°í ¼öÁ¤ÇÏ´Â ÀÏÀº ¾ÆÁÖ ÀÏ»óÀûÀÎ ÀÏÀÔ´Ï´Ù. ÀÌ·± »óȲ¿¡¼­ °³¹ßÀÚ °¢°¢ÀÇ °³¼ºÀÌ °­Çؼ­ ¼­·ÎÀÇ Äڵ带 ÀÐ±â ¾î·Æ´Ù¸é ¹®Á¦°¡ Å©°ÚÁÒ.

±×·³¿¡µµ ºÒ±¸Çϰí XP´Â ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇØ ¾à°£ÀÇ ºÎÁ¤ÀûÀÎ ÀÔÀåÀ» ÃëÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº ÇÁ·¹ÀÓ¿öÅ©°¡ µðÀÚÀÎ ÆÐÅϰú °°Àº ¹®Á¦¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Ù°í º¸±â ¶§¹®À̱⵵ ÇÏÁö¸¸ °íÁ¤ÀûÀÎ ÆÐÅÏ¿¡ µû¶ó ÄÚµùµÈ Äڵ庸´Ùµµ ÄÚµå ÄÁº¥¼ÇÀÌ ÅëÀÏµÇ°í ¸®ÆÑÅ丵ÀÌ ÀßµÈ Äڵ尡 ´õ Àб⠽±´Ù°í º¸±â ¶§¹®ÀÔ´Ï´Ù. ½ÇÁúÀûÀ¸·Î ÄÚµù ÆÐÅÏÀÇ °­Á¦¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Â °ÍÀº ±×¸® ¸¹Áö ¾Ê½À´Ï´Ù. ¾îÂ÷ÇÇ ÀÌÇØÇϱ⠰¡Àå ¾î·Á¿î ºÎºÐÀº ºñÁî´Ï½º ·ÎÁ÷Àε¥ ÀÌ ºÎºÐ±îÁö ÆÐÅÏÀ̳ª ÇÁ·¹ÀÓ¿öÅ©·Î °­Á¦ÇÒ ¼ö´Â ¾ø±â ¶§¹®ÀÔ´Ï´Ù.

°á±¹ ¾Æ¹«¸® ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù ÇØµµ °á°úÀûÀ¸·Î °³¹ßÀÚ°¡ ÀÛ¼ºÇØ¾ß ÇÏ´Â Äڵ带 ÁÙ¿©ÁÖÁö ¸øÇÑ´Ù¸é ÁÁÀº ÇÁ·¹ÀÓ¿öÅ©¶ó°í ÇÒ ¼ö ¾ø½À´Ï´Ù. ½ºÆ®·µÃ÷¿¡ ´ëÇÑ ´ë¾ÈÀÌ °è¼Ó ½ñ¾ÆÁ® ³ª¿À°í ÀÖ´Â °Íµµ ½ÇÁ¦ÀûÀ¸·Î ½ºÆ®·µÃ÷°¡ °³¹ßÀÚÀÇ ÀÏÀ» ¸¹ÀÌ ÁÙ¿©ÁÖÁö ¸øÇϱ⠶§¹®ÀÔ´Ï´Ù.

½ºÆ®·µÃ÷ÀÇ °­Á¡À¸·Î ÄÁÆ®·Ñ·¯(controller)¸¦ ²Å´Âµ¥ »ç½Ç ½ºÆ®·µÃ÷ÀÇ ÄÁÆ®·Ñ·¯´Â HttpServletÀÇ ¿ªÇÒÀ» ActionÀ¸·Î, web.xmlÀÇ ¿ªÇÒÀ» struts-config.xml·Î ¿Å°Ü¿Â °Í ¹Û¿¡ ¾ø½À´Ï´Ù. »ç½Ç ½ºÆ®·µÃ÷ÀÇ ÄÁÆ®·Ñ·¯ ±â´É ÀÚü´Â ¼­ºí¸´ APIÀÇ ·¡ÆÛ ¸î °³·Î ¿ÏÀüÈ÷ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± Á¡À» ±ú´ÞÀº °³¹ßÀÚµéÀÌ Á¤¸»·Î °³¹ßÀÚÀÇ ÀÏÀ» ÁÙ¿©ÁÖ´Â °ÍÀ» ¸ñÇ¥·Î ´Ù¾çÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ ½ñ¾Æ³»°í ÀÖ´Â °ÍÀÔ´Ï´Ù.

ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±¸¼º ¿ä¼Ò
½ÇÁ¦·Î ¾î¶² ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏµç ±×´ë·Î »ç¿ëÇÏ´Â °æ¿ì´Â ±×´ÙÁö ¸¹Áö ¾Ê½À´Ï´Ù. ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©¿Í °áÇÕÇØ¼­ ¾²±âµµ ÇÏ°í »ó¼ÓÀ» ÅëÇØ¼­ È®ÀåÇϰųª ȤÀº Á÷Á¢ ¼Ò½ºÄڵ带 °íÃļ­ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù. ¾îÂ÷ÇÇ ¸ðµç ¿µ¿ª¿¡ ¸Â´Â ÇÁ·¹ÀÓ¿öÅ©´Â ¾ø±â ¶§¹®¿¡ °¢ÀÚÀÇ È¯°æ¿¡ ¸Â°Ô Ä¿½ºÅ͸¶ÀÌ¡ÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÑ ÀÏÀÔ´Ï´Ù. ±×·¡¼­ À̹ø¿¡´Â ÇÁ·¹ÀÓ¿öÅ©¸¦ ±¸¼ºÇÏ´Â ¿ä¼Òµé¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù.

Á¦¾î ±¸Á¶ÀÇ ¹ÝÀü
¿äÁò ³ª¿À´Â ÇÁ·¹ÀÓ¿öÅ©µéÀº °øÅëÀûÀ¸·Î Á¦¾î ±¸Á¶ÀÇ ¹ÝÀü(IoC, Inversion of Control)¸¦ ³»¼¼¿ì°í ÀÖ½À´Ï´Ù. Á¦¾î ±¸Á¶ÀÇ ¹ÝÀüÀ̶ó´Â ¸»ÀÇ Àǹ̴ °³¹ßÀÚ°¡ Á¦¾îÇÏ´ø °ÍÀ» ÇÁ·¹ÀÓ¿öÅ©·Î ¿Å°Ü¼­ ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ Á¦¾îÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.

¿¹¸¦ µé¸é GUI·Î ÀÔ·ÂÀ» ¹Þ´Â ÇÁ·Î±×·¥À» °³¹ßÀÚ°¡ Á÷Á¢ ¸ðµç ºÎºÐÀ» ¸¸µç´Ù¸é ÀÔ·Â Ç׸ñÀ» Ãâ·ÂÇÏ°í »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸° ´ÙÀ½ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ÆÇ´ÜÇØ¼­ ·ÎÁ÷À» ½ÇÇàÇÏ´Â Äڵ带 ¸ðµÎ ¼øÂ÷ÀûÀ¸·Î ¾²°Ô µË´Ï´Ù. ±×·±µ¥ ÀÌ°É GUI ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÌ¿ëÇϸé È­¸é°ú ÀԷ¿¡ °üÇÑ ºÎºÐÀº ÇÁ·¹ÀÓ¿öÅ©°¡ ó¸®ÇÏ°í »ç¿ëÀÚ´Â ´ÜÁö »ç¿ëÀÚ°¡ ÀÔ·ÂÇßÀ» ¶§ ¹ÝÀÀÇÏ´Â À̺¥Æ® Çڵ鷯¸¸ ÀÛ¼ºÇÕ´Ï´Ù. Áï ÀÔ·Â Á¦¾î°¡ °³¹ßÀÚ¿¡¼­ ÇÁ·¹ÀÓ¿öÅ©·Î À̵¿ÇÏ´Â °ÍÀÔ´Ï´Ù.

À©µµ¿ì ÇÁ·Î±×·¡¹Ö¿¡¼­ Äݹé(callback)À̶ó°í ºÎ¸£´Â °Íµµ ºñ½ÁÇÑ °³³äÀÔ´Ï´Ù. »ç½Ç ¼­ºí¸´ ÀÚüµµ ÀÏÁ¾ÀÇ ÇÁ·¹ÀÓ¿öÅ©À̰í ÀÌ¹Ì IoC°¡ ÀϾ°í ÀÖ½À´Ï´Ù. HTTP ¿äûÀ» ´ë±âÇÏ°í ¹Þ¾Æµé¿©¼­ ¼­ºí¸´À» ½ÇÇàÇÏ´Â Äڵ带 °³¹ßÀÚ°¡ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¼­ºí¸´ ¿£ÁøÀÌ Á¦°øÇÏ°í °³¹ßÀÚ´Â ´ÜÁö ¼­ºí¸´¸¸À» ÀÛ¼ºÇÏ°Ô µÇÁÒ. °á±¹ ÀÌ·± ÄÁÆ®·ÑÀÇ ¹ÝÀüÀ» ÅëÇØ¼­ Áߺ¹ Äڵ带 È¿°úÀûÀ¸·Î Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¸ñÀûÀÌ ¼Ò¸ðÀûÀÌ°í ¹Ýº¹ÀûÀÎ Äڵ带 Á¦°ÅÇÏ´Â °ÍÀÎ ¸¸Å­ ´ëºÎºÐÀÇ ÇÁ·¹ÀÓ¿öÅ©¿¡´Â ÇÁ·¹ÀÓ¿öÅ© °³¹ßÀÚ°¡ ÀǵµÇßµç ¾Æ´Ïµç IoC°¡ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.

ÇÏÁö¸¸ IoC ¿ª½Ã ÁÖÀÇÇØ¼­ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÀÏ»óÀûÀÎ ÇÁ·Î±×·¥°ú´Â ´Þ¸® Á¦¾î ±¸Á¶°¡ °Å²Ù·Î µÇ±â ¶§¹®¿¡ µð¹ö±ëÇϱ⵵ ¾î·Æ°í ÄÁÆ®·ÑÀÌ ¹ÝÀüµÈ ºÎºÐ¿¡ ´ëÇÑ ¼±Çà Áö½ÄÀÌ ¾øÀ¸¸é ÀÌÇØÇϱ⠾î·Á¿î Äڵ尡 µË´Ï´Ù. ±×·¡¼­ IoC´Â ²À ÇÊ¿äÇÑ °æ¿ì°¡ ¾Æ´Ï¸é »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

MVC ÆÐÅÏ
¿äÁò ÇÁ·¹ÀÓ¿öÅ©°¡ IoC¸¦ °­Á¶ÇÑ´Ù¸é ½ºÆ®·µÃ÷ó·³ Á» ¿À·¡µÈ ÇÁ·¹ÀÓ¿öÅ©µéÀº MVC(Model-View-Controller)¸¦ ³»¼¼¿ü½À´Ï´Ù. UI°¡ Æ÷ÇÔµÈ ÇÁ·¹ÀÓ¿öÅ©¿¡´Â °ÅÀÇ ÇʼöÀûÀ¸·Î »ç¿ëµÇ´Â ÆÐÅÏÀÔ´Ï´Ù. ¿ø·¡ MVC´Â À¥º¸´Ùµµ ÀÏ¹Ý GUI ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§ UI(User Interface)¿Í ºñÁî´Ï½º ·ÎÁ÷À» È¿°úÀûÀ¸·Î ºÐ¸®Çϱâ À§Çؼ­ °í¾ÈµÇ¾ú½À´Ï´Ù. ÇöÀç´Â À¥¿¡¼­µµ ±× È¿°ú°¡ ÀÔÁõµÇ¾ú±â ¶§¹®¿¡ ³Î¸® ¾²À̰í ÀÖ½À´Ï´Ù.

MVCÀÇ ±¸Á¶´Â MFC ÇÁ·Î±×·¥¿¡¼­ µîÀåÇß´ø Document-View ±¸Á¶¸¦ ÇÑ Â÷¿ø ´õ ¹ßÀü½ÃŲ °ÍÀ¸·Î ÇÁ·Î±×·¥ÀÇ ±¸¼º ¿ä¼Ò¸¦ ¸ðµ¨, ºä, ÄÁÆ®·Ñ·¯·Î ³ª´©¾î¼­ °¢°¢ ´Ù¸¥ ¿ªÇÒÀ» ¸Ã°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ¸ðµ¨Àº ºñÁî´Ï½º ·ÎÁ÷À» ´ã´Â °´Ã¼¸¦ ¸»Çϸç ÀÌ ¸ðµ¨Àº PEAA¿¡¼­ ¸»ÇÏ´Â µµ¸ÞÀÎ ¸ðµ¨ÀÌ µË´Ï´Ù.

<±×¸² 1>MVC ÆÐÅÏÀÇ ±¸Á¶

µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÏ´Â °Íµµ ¸ðµ¨ °´Ã¼ÀÇ ¸òÀÔ´Ï´Ù. ¸ðµ¨ °´Ã¼µé ÀÚü·Î UML Ŭ·¡½º ´ÙÀ̾î±×·¥À» ±×¸°´Ù¸é ±× ÀÚü·Î ºñÁî´Ï½º ·ÎÁ÷ÀÇ Ç¥ÇöÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ºä´Â È­¸é UI¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒÀ̸ç ÀϹÝÀûÀ¸·Î À¥¿¡¼­´Â JSP°¡ ºäÀÇ ¿ªÇÒÀ» ¸Ã½À´Ï´Ù.

±×¸®°í ÄÁÆ®·Ñ·¯´Â »ç¿ëÀÚÀÇ ¿äûÀ» ¹Þ¾Æ¼­ ¸ðµ¨ °´Ã¼¸¦ ½ÇÇàÇÏ°í ±× °á°ú¸¦ ºä·Î Àü´ÞÇÏ´Â ¿ªÇÒÀ» ¸Ã°Ô µÇ´Âµ¥ ÀϹÝÀûÀ¸·Î ÀÌ ºÎºÐÀº ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ´ã´çÇÏ¸ç °³¹ßÀÚ´Â ¾î¶² ¸ðµ¨À» ½ÇÇàÇÏ°í ¾î¶² ºä¸¦ ¼±ÅÃÇÒ °ÍÀÎÁö¸¦ ÄÁÆ®·Ñ·¯¿¡ ¾Ë·ÁÁֱ⸸ ÇÏ¸é µË´Ï´Ù. ÀÌ·± ±¸Á¶°¡ ÀÌ»óÀûÀÎ MVC ÆÐÅÏÀÇ ±¸Á¶ÀÔ´Ï´Ù.

MVC ÆÐÅÏÀÇ °¡Àå Å« ÀåÁ¡Àº ¸ðµ¨°ú ºäÀÇ ºÐ¸®¸¦ ÅëÇØ È­¸é UI¸¦ À§ÇÑ ÄÚµå¿Í ºñÁî´Ï½º ·ÎÁ÷À» À§ÇÑ Äڵ尡 ¼¯ÀÌÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ ¶§¶§·Î È­¸é UI °³¹ßÀÚ¿Í ºñÁî´Ï½º ·ÎÁ÷ °³¹ßÀÚ¸¦ µû·Î µÎ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. ±×¸®°í ÀÌ ÆÐÅÏÀ» ÅëÇØ ÇÁ·Î±×·¥ µðÀÚÀÎÀÇ ±âº» ¿øÄ¢ÀÎ low coupling, high cohesionÀ» ÀÚ¿¬½º·´°Ô ´Þ¼ºÇÒ ¼ö ÀÖÁÒ.

¹«¾ð°¡ º¯°æÇÏ°í ½ÍÀ» ¶§ ¿©·¯ ÄÄÆ÷³ÍÆ®µéÀ» °°ÀÌ º¯°æÇØ¾ß ÇÏ´Â couplingÀº ÁÙÀ̸鼭 ÄÄÆ÷³ÍÆ®°£ÀÇ Çù·Â(cohesion)Àº ÄÁÆ®·Ñ·¯¸¦ ÅëÇØ ÀÚÀ¯·Ó°Ô ÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¸ðµ¨°ú ºä°¡ ºÐ¸®µÇ¸é ÇÑ ¸ðµ¨¿¡ ¿©·¯ °¡Áö ´Ù¾çÇÑ ºä¸¦ ºÙÀÌ´Â °Íµµ °¡´ÉÇÏ°í ±× ¹Ý´ëÀÇ °æ¿ìµµ °¡´ÉÇÕ´Ï´Ù. ±×·¡¼­ ¿ä±¸»çÇ×ÀÇ º¹Àâµµ´Â ³ôÁö¸¸ ±Ô°ÝÀÌ Àß Á¤ÇØÁø ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¶§´Â °³¹ßÀÚÀÇ ÀÏÀ» ȹ±âÀûÀ¸·Î ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. MVC ÇÁ·¹ÀÓ¿öÅ©¶õ °á±¹ ÀÌ·± ¸ðµ¨°ú ºäÀÇ ºÐ¸®¸¦ È¿°úÀûÀ¸·Î ÇÒ ¼ö ÀÖ´Â ÄÁÆ®·Ñ·¯¸¦ Á¦°øÇÑ´Ù´Â µ¥¿¡ ±× °¡Ä¡°¡ ÀÖ½À´Ï´Ù.

XML ¼³Á¤ ÆÄÀÏÀÇ ¿ªÇÒ
ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ¶Ç Çϳª Áß¿äÇÑ °ÍÀº ¼³Á¤ ÆÄÀÏÀÇ È°¿ëÀÔ´Ï´Ù. À¯Çàó·³ ¹øÁ®³ª°¡±â ½ÃÀÛÇÑ XML ¼³Á¤ ÆÄÀÏÀº ¿äÁò °ÅÀÇ ÇÁ·¹ÀÓ¿öÅ©ÀÇ Çʼö»çÇ×ó·³ µÇ¾î°¡°í ÀÖ½À´Ï´Ù. Ãʱ⿡ ¼³Á¤ ÆÄÀÏÀÌ µîÀåÇϱ⠽ÃÀÛÇÑ ÀÌÀ¯´Â ¼Ò½ºÀÇ ³»¿ë Áß »ó¼ö¿¡ ÇØ´çÇÏ´Â °ªµéÀ» ¼³Á¤ ÆÄÀÏ·Î »© ³õÀ¸¸é ÄÄÆÄÀÏÀ» ´Ù½Ã ÇÏÁö ¾Ê¾Æµµ µ¿ÀÛÀ» º¯°æÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. C++ µîÀÇ ¾ð¾î¿¡¼­´Â ÄÄÆÄÀÏ ÈÄ¿¡ ¸µÅ©±îÁö ÇØ¾ß Çϱ⠶§¹®¿¡ ÀÌ Â÷ÀÌ´Â ÀûÁö ¾Ê½À´Ï´Ù.

ÇÏÁö¸¸ ÀÚ¹Ù¿¡¼­´Â ÇÊ¿äÇÑ ºÎºÐ¸¸ °£´ÜÇÏ°Ô ÄÄÆÄÀÏÇÏ¸é ¹Ù·Î µ¿ÀÛÇÏ°Ô ÇÒ ¼ö ÀÖ°í XPÀÇ Áö¼ÓÀûÀÎ ÅëÇÕ(Continuous Integration)ÀÌ ÀϹÝÈ­µÇ¸é¼­ ¼Ò½º¸¦ º¯°æÇÏ´Â ºñ¿ëÀÌ Å©°Ô ÁÙ¾îµé¾úÁÒ. ±×·¡¼­ »ç½Ç Áö±ÝÀº XML ¼³Á¤ ÆÄÀÏ¿¡ »ó¼ö¸¦ ³Ö¾îµÎ´Â °ÍÀÌ ÀÚ¹Ù Äڵ忡 ³Ö´Â °Íº¸´Ù °³¹ß½ÃÀÇ º¯°æ ºñ¿ëÀÌ Àû´Ù°í Çϱâ Èûµì´Ï´Ù.

ÇÏÁö¸¸ ¿©ÀüÈ÷ ¾ÖÇø®ÄÉÀÌ¼Ç »ç¿ëÀÚÀÇ ÀÔÀå¿¡¼­´Â XMLÀÌ ÈξÀ º¯°æÇϱ⠽±½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®·Î ¹èÆ÷µÈ ÇÁ·Î±×·¥ ȤÀº ¼­¹ö¿¡ ¹èÄ¡µÈ ÇÁ·Î±×·¥ÀÇ ¼³Á¤À» ¹Ù²Ù±â À§ÇØ ´Ù½Ã ºôµå¸¦ ÇÒ ¼ö´Â ¾ø´Â ÀÏÀ̴ϱî¿ä.

ÇÏÁö¸¸ ÀÌ·± ºñ¿ëÀûÀÎ Ãø¸é ¿Ü¿¡µµ XML ¼³Á¤ ÆÄÀÏÀº ÀÚ¹Ù Äڵ庸´Ù Á» ´õ Á¤º¸¸¦ ¼­¼úÀû(descriptive)À¸·Î ´ã¾Æ³õÀ» ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.

XMLÀº ±¸Á¶ÀûÀÎ Á¤º¸¿Í ¸ÞŸ Á¤º¸¸¦ Æ÷ÇÔÇÑ ¸ðµç Á¤º¸¸¦ ÇÑ ´«¿¡ ¾Ë¾Æº¸±â ½±°Ô Á¤¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÚ¹Ù Äڵ忡¼­ ¿©·¯ Ŭ·¡½º·Î ºÐ»êµÉ ¼ö ÀÖ´Â ¼³Á¤ ³»¿ëÀ» °³¹ßÀÚ°¡ °ü¸®ÇÏ±â ÆíÇÑ ´ÜÀ§·Î ¼Õ½±°Ô ÅëÇÕÇØ¼­ °ü¸®ÇÒ ¼ö ÀÖÁÒ.

ÀÚ¹ÙÀÇ ÇÁ·ÎÆÛƼµµ ¼³Á¤ ÆÄÀÏ ¿ëµµ·Î ¸¹ÀÌ »ç¿ëµÇ¾î ¿Ô½À´Ï´Ù¸¸ ±¸Á¶ÀûÀÎ Á¤º¸¸¦ Á¦´ë·Î Á¤ÀÇÇÏ±â ¾î·Æ±â ¶§¹®¿¡ ¼³Á¤ ÆÄÀϷδ ºÎÀûÇÕÇÕ´Ï´Ù. °Ô´Ù°¡ ÇÁ·ÎÆÛƼ´Â ÇÑ±Û ¹®Á¦µµ Àֱ⠶§¹®¿¡ ¾ÕÀ¸·Î ÇÁ·ÎÆÛƼ´Â ¾²Áö ¾Ê´Â °ÍÀÌ ÁÁ´Ù°í º¾´Ï´Ù.

¹¹µçÁö À߸ø ¾²¸é ÇØ°¡ µÈ´Ù´Â Á¡¿¡¼­ XML ¿ª½Ã ¿¹¿Ü°¡ ¾Æ´Õ´Ï´Ù. XML ¼³Á¤ ÆÄÀÏÀ» ¿À¿ëÇÏ´Â ´ëÇ¥ÀûÀÎ »ç·Ê·Î Jelly ½ºÅ©¸³Æ®°¡ ÀÖ½À´Ï´Ù. ÀÚÄ«¸£Å¸ commons ÇÁ·ÎÁ§Æ®ÀÇ ÇϳªÀε¥ XML·Î ½ºÅ©¸³ÆÃÀ» ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ¿£ÁøÀÔ´Ï´Ù. Jelly ½ºÅ©¸³Æ®ÀÇ ÆÄ¿ö´Â ¿©ÀüÈ÷ ÁøÂ¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ¹ÌÄ¡Áö ¸øÇϸ鼭 Jelly·Î ½ºÅ©¸³Æ®¸¦ Â¥¸é °¡µ¶¼ºµµ ¶³¾îÁö°í ¸®ÆÑÅ丵ÇÏ±â ¾î·Æ±â ¶§¹®¿¡ Á¡Á¡ ÁöÀúºÐÇÑ Äڵ尡 µÇ°í ¸¿´Ï´Ù. Antµµ ÀÌ¿Í ºñ½ÁÇÑ ¹®Á¦Á¡ÀÌ ÀÖ½À´Ï´Ù. ±×·¡¼­ º¹ÀâÇÑ Á¦¾î È帧ÀÌ ÇÊ¿äÇÑ ºÎºÐ¿¡¼­´Â ÀÚ¹Ù Äڵ带 Á÷Á¢ ÀÌ¿ëÇϰí À̰ÍÀÌ ¹«°Ì´Ù¸é Á»´õ °¡º­¿î ½ºÅ©¸³Æ® ¾ð¾î¸¦ ÀÚ¹Ù¿¡ ÀÓº£µùÇØ¼­ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

´Ü, SQLÀÇ °æ¿ì´Â ¾ð¾î ÀÚü°¡ °á°ú¹°¿¡ ´ëÇÑ Á¤ÀǸ¦ Ç¥ÇöÇÏ´Â °ÍÀ̱⠶§¹®¿¡ º¹ÀâÇÑ Á¦¾î ±¸Á¶°¡ ÇÊ¿äÇÏÁö ¾Ê¾Æ XML·Î º° ¹«¸® ¾øÀÌ ¼ÒÈ­°¡ °¡´ÉÇÕ´Ï´Ù. ½ÇÁ¦·Î XML°ú JDBC¸¦ °áÇÕ½ÃŲ iBatis¿¡¼­ XML·Î SQLµéÀ» °ü¸®Çغ¸¸é ½ÇÁ¦ ÀÚ¹Ù Äڵ庸´Ù ÈξÀ ½±°í º¸±â ÁÁ°Ô ÄÚµùÇÒ ¼ö ÀÖ½À´Ï´Ù.

¶Ç ÇÑ °¡Áö ÁÖÀÇÇØ¾ß ÇÒ °ÍÀº XML ¼³Á¤ ÆÄÀÏÀ» ÀÌ¿ëÇÏ°Ô ¸¸µé´õ¶óµµ XML ¾øÀ̵µ ÇÁ·¹ÀÓ¿öÅ©°¡ µ¿ÀÛÇÏ°Ô ¸¸µé¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¾Õ¼­ÀÇ iBatis´Â ±¸ÇöµÈ ±â´ÉµéÀÌ Á¤¸» Æí¸®Çϰí ÁÁÁö¸¸ °¢ ÄÄÆ÷³ÍÆ®µéÀÌ Áö³ªÄ¡°Ô °­ÇÏ°Ô °áÇյǾî ÀÖ°í XML ¼³Á¤ ÆÄÀÏ ¾øÀÌ´Â ¾Æ¹« °Íµµ ÇÏÁö ¸øÇÕ´Ï´Ù. ±×·¡¼­ Ãß°¡ ±â´ÉÀ» ³Ö°í ½Í´Ù°Å³ª °³¼±ÇÏ°í ½ÍÀº ºÎºÐÀÌ ÀÖÀ» ¶§ »ó¼Ó µîÀÇ ¹æ¹ýÀ¸·Î´Â ÇØ°áÇÏ±â ¾î·Æ°í °ÅÀÇ ´ëºÎºÐ ¼Ò½º¸¦ ¼öÁ¤ÇØ¾ß ÇØ°áÇÒ ¼ö ÀÖÁÒ. ±×·¡¼­ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µé´õ¶óµµ ÀÏ´Ü ÀÚ¹Ù ÄÚµå·Î ¸ðµÎ ¸¸µç ´ÙÀ½ ¸¶Áö¸·¿¡ XML·Î ¼³Á¤ ³»¿ëµéÀ» »©´Â ÀÛ¾÷À» ÇÏ´Â °Ô ÁÁ½À´Ï´Ù.

»ìÆìº¼¸¸ÇÑ ÇÁ·¹ÀÓ¿öÅ©
±×¸²µµ Äڵ嵵 ¾ø´Â Áö·çÇÑ ÅØ½ºÆ®¸¦ ÀÐ¾î ³»·Á¿À´À¶ó Áö·çÇßÀ» µ¶ÀÚµéÀ» À§ÇØ ±¸Ã¼ÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©µéÀ» ¸î °¡Áö ¼Ò°³ÇÒ±î ÇÕ´Ï´Ù. À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ© »Ó ¾Æ´Ï¶ó ¿©·¯ ¿µ¿ª¿¡¼­ À¯¿ëÇÏ´Ù°í »ý°¢µÇ´Â °ÍµéÀ» »Ì¾Ò½À´Ï´Ù. ´ÜÁö ÇÊÀÚÀÇ °æÇè ¼Ó¿¡¼­ À¯¿ëÇß´ø °ÍµéÀ̹ǷΠÇÑ ¹ø »ìÆìº¼ °¡Ä¡°¡ ÀÖ´Ù´Â Á¤µµ·Î ¹Þ¾ÆµéÀÌ¸é µÉ °ÍÀÔ´Ï´Ù.

½ºÆ®·µÃ÷¿Í JSF
À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©·Î´Â ½ºÆ®·µÃ÷°¡ ÇöÀçÀÇ ÁÖ·ùÀ̸ç JSF°¡ ÀϺο¡¼­ ¹Ì·¡ÀÇ ÁÖ·ù·Î ²ÅÈü´Ï´Ù. ¸ðµÎ ÇÑ »ç¶÷ÀÌ ÁÖµµÇÑ ÇÁ·¹ÀÓ¿öÅ©ÀÔ´Ï´Ù.

ÇÊÀÚÀÇ ÆÇ´ÜÀ» µ¡ºÙÀ̸é, ½ºÆ®·µÃ÷´Â ½ÇÁ¦·Î °³¹ßÀÚÀÇ ÀÏÀ» °ÅÀÇ ÁÙ¿©ÁÖÁö ¸øÇÏ¸ç ¿ÀÈ÷·Á ´ÃÀÌ´Â °æ¿ìÁ¶Â÷ °£È¤ ÀÖ½À´Ï´Ù. ½ºÆ®·µÃ÷¸¦ ¾µ ¹Ù¿¡´Â Á÷Á¢ ½ºÆ®·µÃ÷¿Í À¯»çÇÑ ÇüÅ·Π¼­ºí¸´À» Á÷Á¢ »ç¿ëÇϵµ·Ï À籸¼ºÇÏ´Â °ÍÀÌ ÁÁÀ¸¸®¶ó »ý°¢µË´Ï´Ù. ¹°·Ð À¯È¿¼º °Ë»ç ±â´É°ú Tiles´Â ÁÁÀº ±â´ÉÀÌÁö¸¸ À̵éÀº ½ºÆ®·µÃ÷¿Í ºÐ¸®Çؼ­µµ »ç¿ë °¡´ÉÇÕ´Ï´Ù.

JSF´Â ¹Ì·¡ÀÇ ÁÖ·ù¶ó°í Çϱ⿣ ºÎÁ·ÇÔÀÌ ³Ê¹« ¸¹½À´Ï´Ù. ½ã¿¡¼­ Java Studio Creator¸¦ ÅëÇØ ¸ÚÁø °¡´É¼ºÀ» ³»º¸À̱ä ÇßÁö¸¸ ±×·± IDE¸¦ »ç¿ëÇÏÁö ¾ÊÀ» ¶§ÀÇ JSF ÄÚµùÀº ³Ê¹« ¹øÀâÇÏ°í º¹Àâµµµµ Å®´Ï´Ù. ÀÌ´Â ±¸Á¶ÀûÀ¸·Î ¾ÆÁ÷ °³¼±ÀÇ ¿©Áö°¡ ¸¹´Ù´Â °ÍÀÌÁÒ. JSF ½ºÆå ¿ª½Ã ²ÙÁØÈ÷ ¹ßÀüÇϰí ÀÖÀ¸´Ï ¹Ì·¡´Â ¾î¶³Áö ¸ð¸£°ÚÁö¸¸ Áö±Ý JSF¸¦ »ç¿ëÇÏ´Â °ÍÀº ½Ã±â»óÁ¶¶ó »ý°¢µË´Ï´Ù. ¿ÀÈ÷·Á JSF¿Í ºñ½ÁÇÑ ±¸Á¶ÀÎ Tapestry°¡ ´õ ¿Ï¼ºµµ°¡ ³ô´Ù´Â Æò°¡¸¦ ¹Þ°í ÀÖ½À´Ï´Ù.

Turbine
Turbineµµ ²Ï ³Î¸® ¾²ÀÌ´Â ÇÁ·¹ÀÓ¿öÅ© Áß ÇϳªÀÔ´Ï´Ù. ±âº» ƲÀº ½ºÆ®·µÃ÷¿Í ºñ½ÁÇϳª ÈξÀ ¸¹Àº ºÎºÐµéÀ» Ä¿¹öÇϰí Àֱ⠶§¹®¿¡ ÄÚµù·®Àº »ó´çÈ÷ ÁÙ¾îµì´Ï´Ù. °³¹ßÀÚÀÇ ÆíÀǸ¦ À§ÇÑ Å¬·¡½ºµéµµ ¸¹À¸¸ç Turbine °³¹ß °úÁ¤¿¡¼­ ¸¸µé¾îÁø ÄÄÆ÷³ÍÆ®µéÀÌ »ó´ç¼ö µ¶¸³Çؼ­ º°µµÀÇ ÇÁ·ÎÁ§Æ®·Î ÁøÇàµÇ°í ÀÖ½À´Ï´Ù. Àü¿¡´Â À¯¿¬¼ºÀÌ ´Ù¼Ò ¶³¾îÁø´Ù´Â °ÍÀÌ ´ÜÁ¡À̾ú´Âµ¥ Á¡Á¡ ³ª¾ÆÁö°í ÀÖ½À´Ï´Ù.

Spring
SpringÀº ¿äÁò ÁÖ¸ñ ¹Þ´Â ÇÁ·¹ÀÓ¿öÅ©·Î AOP(Aspect Oriented Programming)¸¦ ³»¼¼¿ì°í ÀÖÀ¸¸ç low coupling, high cohesionÀ̶ó´Â µðÀÚÀÎ ¿øÄ¢ÀÌ Àß ÁöÄÑÁø ÇÁ·¹ÀÓ¿öÅ©ÀÔ´Ï´Ù. µüÈ÷ À¥À» ¿°µÎ¿¡ µÎ¾ú´Ù±âº¸´Ù Á¾ÇÕÀûÀÎ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©À̱⠶§¹®¿¡ ºÎºÐº°·Î »ç¿ëÇÒ ¼öµµ ÀÖ°í ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©¿¡ ºÙ¿©¼­ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃÇØ¼­ dzºÎÇÑ API¸¦ Á¦°øÇϸç, Mock Object¸¦ ÇÁ·¹ÀÓ¿öÅ© ÀÚü¿¡¼­ Á¦°øÇϰí ÀÖ´Ù´Â °Íµµ ƯÀÌÇÑ Á¡ÀÔ´Ï´Ù. ÇöÀç °¡Àå ÃßõÇÒ ¸¸ÇÑ ÇÁ·¹ÀÓ¿öÅ©ÀÔ´Ï´Ù.

iBatis
µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃÇØ¼­´Â ¾Õ¼­ÀÇ SpringÀ¸·Îµµ ÃæºÐÇÒ ¼ö ÀÖÁö¸¸ XML·Î SQLÀ» °ü¸®ÇϰíÀÚ ÇÑ´Ù¸é iBatis°¡ ÃÖ¼±ÀÇ ¼±ÅÃÀÏ °ÍÀÔ´Ï´Ù. ³»ºÎÀûÀÎ ÄÚµåÀÇ Ç°ÁúÀº ´Ù¼Ò ¶³¾îÁöÁö¸¸ ±â´É»óÀ¸·Î´Â º°´Ù¸¥ ºÎÁ·ÇÔÀÌ ¾ø½À´Ï´Ù. Spring°ú iBatis°¡ JDBC¿¡ ´ëÇÑ ´Ü¼ø ·¡ÆÛ ¼öÁØÀÇ API¸¦ Á¦°øÇÑ´Ù¸é Hibernate´Â OR(Object-Relation) ¸ÊÇÎÀ» ÅëÇØ¼­ °³¹ßÀÚ´Â °´Ã¼¸¸À» ¹Ù¶óº¸°í µ¥ÀÌÅͺ£À̽º¸¦ °£Á¢ÀûÀ¸·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·¹ÀÓ¿öÅ©ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ±¸Á¶°¡ ±ò²ûÇÏ°í Æí¸®ÇÏ´Ù´Â Æò°¡¸¦ ¹Þ°í ÀÖÀ¸¸ç ºñÁî´Ï½º ·ÎÁ÷À» µµ¸ÞÀÎ ¸ðµ¨·Î Á÷Á¢ ´Ù·ê ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ³ôÀÌ Æò°¡ÇÒ¸¸ ÇÕ´Ï´Ù.

OSCache, Quartz, JUnit
À̿ܿ¡ À¥¿¡¼­ ij½Ì ±â¹ýÀ¸·Î ¼º´ÉÀ» Çâ»ó½Ã۱â À§ÇÑ OSCache, ½ºÄÉÁì·¯¸¦ ¸¸µé±â À§ÇÑ APIÀÎ Quartzµµ ¾ÆÁÖ À¯¿ëÇÕ´Ï´Ù. ¹°·Ð Å×½ºÆÃ ÇÁ·¹ÀÓ¿öÅ©·Î JUnitÀº ¾ð±ÞÇÒ Çʿ䰡 ¾øÀ» °ÍÀÔ´Ï´Ù. ÀÌ·± ÇÁ·¹ÀÓ¿öÅ©µéÀ» ²À »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ÇÑ ¹ø »ìÆìº¸¸é ¹è¿ï ¸¸ÇÑ Á¡µéÀ» ¹ß°ßÇÒ ¼ö ÀÖ°í ÀÌ·± Á¡µéÀÌ ³ªÁß¿¡ µµ¿òÀÌ µÇ´Â °æ¿ì°¡ ÀûÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

¸¹Àº ³í¶õ°Å¸®µé
ÆÐÅÏÀ̳ª ÇÁ·¹ÀÓ¿öÅ©´Â ƯÁ¤ ¿µ¿ª¿¡ ´ëÇØ ¾î´À Á¤µµ °ËÁõµÈ ÇØ°áÃ¥ÀÔ´Ï´Ù. ±×·¡¼­ ¶§¶§·Î ÀÌ¿¡ ´ëÇÑ ¸Í½ÅÀÌ ³ªÅ¸³ª±âµµ ÇÕ´Ï´Ù. °ËÁõµÈ ¹æ¹ýÀ̶ó´Â ³í¸®·Î ³Ê¹« ½±°Ô ¹®Á¦ ¿µ¿ª¿¡ ÆÐÅÏÀ» Àû¿ëÇϰųª ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇϰï ÇÏÁÒ. ÇÏÁö¸¸ ±× ¹®Á¦ ¿µ¿ªÀÌ ÆÐÅÏÀ̳ª ÇÁ·¹ÀÓ¿öÅ©¸¦ Ȱ¿ëÇÒ ¼ö ÀÖ´Â ¹Ù·Î ±× ¿µ¿ªÀ̶ó´Â Á¡Àº °ËÁõÇϱâ Èûµç °ÍÀÔ´Ï´Ù. ¶§¹®¿¡ ÆÐÅÏ Áß½ÉÀûÀÎ »ç°í ¹æ½ÄÀ̳ª ÇÁ·¹ÀÓ¿öÅ©¿¡ ³¢¿ö ¸ÂÃß´Â ÄÚµùÀ» Áö¾çÇÏ°í ¹®Á¦ ¿µ¿ªÀÇ ÇØ°á¿¡ Ãæ½ÇÇϸ鼭 ÆÐÅÏÀ» »ý°¢ÇÏ´Â °ÍÀÌ ´õ ÁÁ½À´Ï´Ù.

¹ÙµÏ °Ý¾ð Áß¿¡ ¡®Á¤¼®Àº ¹è¿ì°í, Àؾî¹ö·Á¶ó¡¯¶ó´Â ¸»ÀÌ ÀÖ½À´Ï´Ù. Á¤¼®À» ÀÍÇô¼­ ¾Ë°í´Â ÀÖµÇ ½ÇÀü¿¡¼­´Â Á¤¼®¿¡ ÁýÂøÇÏÁö ¸»°í »óȲ¿¡ µû¶ó À¯¿¬ÇÏ°Ô ´ëÃ³ÇØ¾ß ÁÁÀº ¹ÙµÏÀ» µÑ ¼ö ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. ÆÐÅÏÀº ÇÁ·Î±×·¡¹ÖÀÇ Á¤¼®°úµµ °°½À´Ï´Ù. »óȲ¿¡ ´ëÇÑ °ËÁõµÈ ÇØ°áÃ¥ÀÌÁö¸¸ ±× »óȲÀº °è¼Ó º¯ÇÏ°í ±× º¯È­¿¡ ºü¸£°Ô ´ëÃ³ÇØ¾ß ÇÕ´Ï´Ù.

ÆÐÅÏÀ̳ª ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ¸Í½ÅÀ¸·Î ºüÁ®µå´Â °ÍÀ» °æ°èÇϱâ À§ÇØ ¾î¶² »ç¶÷µéÀº ¹«¾ùÀ̵çÁö Àå´ÜÁ¡ÀÌ ÀÖÀ¸´Ï ³Ê¹« ÁýÂøÇÏÁö ¸»¶ó°í ¸»ÇÕ´Ï´Ù. À̰ÍÀº ¿ÇÀº ¸»ÀÌÁö¸¸ »ç½Ç Å« Àǹ̰¡ ÀÖ´Â ¸»Àº ¾Æ´Õ´Ï´Ù. ¹«¾ùÀ̵ç Àå´ÜÀÌ ÀÖ´Ù´Â »ç½ÇÀº ´©±¸µµ ºÎÀÎÇÒ ¼ö ¾øÁö¸¸ ¶ÇÇÑ ´©±¸µµ ºÎÀÎÇÒ ¼ö ¾ø´Â ÀÚ¸íÇÑ »ç½ÇÀ̱⿡ ÀÇ¹Ì ¾ø´Â ¸»À̱⵵ ÇÕ´Ï´Ù. ½ÇÁ¦ »óȲ¿¡ ¸Â°Ô Àß ¾²·Á¸é ±¸Ã¼ÀûÀ¸·Î ÀåÁ¡ÀÌ ¹«¾ùÀÎÁö, ´ÜÁ¡ÀÌ ¹«¾ùÀÎÁö¸¦ ÆÄ¾ÇÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ¾Õ¼­ ÆÐÅϰú ÇÁ·¹ÀÓ¿öÅ©¸¦ ´Ù·ç¸é¼­ °¢°¢ÀÇ ´ÜÁ¡µéÀ» ±¸±¸ÀýÀýÀÌ µûÁö°í µé¾î°£ °Íµµ ±×·± ÀÌÀ¯ÀÔ´Ï´Ù.

³ª³¯ÀÌ ½Å±â¼úÀÌ ½ñ¾ÆÁ® ³ª¿À°í ÀÖÁö¸¸ ±×¿¡ ¸øÁö¾Ê°Ô ÆÐ·¯´ÙÀÓµµ ¸¹ÀÌ º¯È­Çϰí ÀÖ½À´Ï´Ù. À¯¿¬¼º ³ôÀº ÄÄÆ÷³ÍÆ® ±â¼ú·Î ÁÖ¸ñ¹Þ´ø ÀÚ¹ÙºóÁî°¡ ÇØ·Î¿î °ÍÀ̶ó´Â Æò°¡¸¦ ¹Þ±â ½ÃÀÛÇϰí, ¸¹ÀÌ ½á¾ß ÁÁÀº °ÍÀ̶ó°í ÇÏ´ø ÁÖ¼®À» ÀÌÁ¦´Â Àû°Ô ¾µ¼ö·Ï ÁÁÀº °ÍÀ̶ó°í ÇÕ´Ï´Ù.

½Å±â¼úÀ» µû¶ó°¡´Â °Íµµ ÇÊ¿äÇÏÁö¸¸ ÀÌ·¯ÇÑ ÆÐ·¯´ÙÀÓÀÇ º¯È­¸¦ Àд °ÍÀÌ ´õ Áß¿äÇÕ´Ï´Ù. ÇöÀçÀÇ ¹æ½ÄÀÌ Áö±ÝÀº °¡Àå È¿À²ÀûÀÎ ¹æ½ÄÀÏ ¼ö ÀÖ°ÚÁö¸¸ Áö±Ýº¸´Ù ÈξÀ ´õ È¿À²ÀûÀÎ ¹æ½ÄÀÌ ³ª¿À´Âµ¥ ¸ð¸£°í ÀÖÀ¸¸é µµÅ嵃 ¼ö¹Û¿¡ ¾ø½À´Ï´Ù. ÈçÈ÷ ÇÁ·Î±×·¡¸Ó´Â ¿ö³« ±â¼úÀÌ »¡¸® ¹ßÀüÇϱ⠶§¹®¿¡ ÈĹèµéÀ» ´çÇÒ ¼ö°¡ ¾ø´Ù´Â ¸»À» Çϰï ÇÕ´Ï´Ù.

ÇÏÁö¸¸ Çö½ÇÀº °áÄÚ ±×·¸Áö ¾Ê½À´Ï´Ù. ±â¼úÀÇ º¯È­´Â ´ÜÁö API°¡ º¯ÇÏ´Â °Í »Ó ±×·¸°Ô Áß¿äÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ÇÁ·Î±×·¡¹ÖÀÇ ÁÖ¿äÇÑ ÆÐ·¯´ÙÀÓÀº ±×·¸°Ô ºü¸¥ ¼Óµµ·Î º¯ÇÏÁö ¾ÊÀ¸¸ç ¶ÇÇÑ ±×·± ÆÐ·¯´ÙÀÓÀÇ º¯È­¸¦ ÁÖµµÇÏ´Â °ÍÀº ¹Ý¦ÀÌ´Â ¾ÆÀ̵ð¾î°¡ ¾Æ´Ï¶ó °æÇè ¼Ó¿¡¼­ ÃàÀûµÈ °í¹ÎµéÀÔ´Ï´Ù. ²÷ÀÓ¾øÀÌ °í¹ÎÇϸ鼭 ÇÁ·Î±×·¡¹ÖÀ» ÇØ¿Ô´Ù¸é ÀÌ·± º¯È­¸¦ µû¶óÀâ´Â °ÍÀº ¾î·Á¿î ÀÏÀÌ ¾Æ´Õ´Ï´Ù.

ÁÁÀº ÇÁ·Î±×·¡¸Ó°¡ µÇ±â À§Çؼ­ Æø³ÐÀº Áö½Ä°ú ºü¸¥ ÇнÀ ´É·ÂÀº ¹°·Ð ÇʼöÀûÀÎ °ÍÀÔ´Ï´Ù¸¸ ±×º¸´Ù ´õ Áß¿äÇÑ °ÍÀº ´Ã °í¹ÎÇÏ´Â ÀÚ¼¼¿Í ±íÀÌ ÀÖ´Â »ç°í ´É·ÂÀÔ´Ï´Ù. º¯È­¸¦ µû¶óÀâ´Â ÈûÀº ºü¸¥ ÇнÀ ´É·Â¿¡¼­ ³ª¿À´Â °ÍÀÌ ¾Æ´Ï¶ó º¯È­ÀÇ Á߿伺À» ÀνÄÇÏ°í ¹ßÀüÀ» À§ÇØ °í³úÇϴµ¥¼­ ³ª¿À´Â °ÍÀÔ´Ï´Ù.

À̹ø ¿¬Àç´Â ¾Æ¸¶ Áö³­ µÎ ¹øº¸´Ù ÈξÀ ´õ ¸¹Àº ³í¶õ°Å¸®µéÀ» ´ã°í ÀÖÀ» °ÍÀÔ´Ï´Ù. ÆÐ·¯´ÙÀÓÀº ÇÑ »ç¶÷ÀÇ °í¹Î¿¡ ÀÇÇØ¼­µµ ¹ßÀüÇÏÁö¸¸ ¸¹Àº »ç¶÷µéÀÇ ¸Ó¸®¸¦ ¸Â´í Åä·Ð¿¡¼­µµ ¹ßÀüÇÕ´Ï´Ù. ÇÊÀÚÀÇ ±Û¿¡ ¹Ý·ÐÀÌ Àְųª ´õ ±íÀº ³íÀǸ¦ ¿øÇÏ´Â µ¶ÀÚµéÀº youngrok.comÀ̳ª javaservice.net, ȤÀº c2.com¿¡ Á¦½ÃÇØ ÁÖ¼¼¿ä. ¼­·Î¸¦ ¹ßÀü½Ãų ¼ö ÀÖ´Â ÁÁÀº ±âȸ°¡ ÀÖ±æ ¹Ù¶ø´Ï´Ù.@

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
°ü·Ã±â»ç
[°´Ã¼ÁöÇâ SW ¼³°èÀÇ ¿øÄ¢] ¨ç °³¹æ-Æó¼â ¿øÄ¢
Ãֽбâ¼ú ´å³Ý°ú¡¸Å뼺¸í ÇÏ´Â ¹ý¡¹
[³ªÀÇ ¿ÀǼҽº ÇÁ·ÎÁ§Æ® °æÇè±â] Áñ°Å¿òÀ» ³Ñ¾î ÇູÀ̾ú´Ù
ÀÚ¹ÙÀÇ »õ·Î¿î ³¯°³, ±×·çºñ
[ÇØÄ¿ ÃÖÈÄÀÇ ¾ð¾î, Ä¿¸Õ Lisp] ¨ç ¿Ö ÇØÄ¿ÀÇ ¾ð¾îÀϱî?
[¿ÀǼҽº¸¦ ÀÌ¿ëÇÑ ½Ã½ºÅÛ ÅëÇÕ] ¨ç VSSH ÇÁ·¹ÀÓ¿öÅ©
À̺¥Æ® ÇÁ·Î±×·¡¹Ö ¾ð¾î ±ÞºÎ»ó
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
µ¶ÀÚÀǰß(Talkback)
Àúµµ ºñ½ÁÇÑ ÀǰßÀÔ´Ï´Ù.
classpath[ 2006/07/18 ]  
"Áö³ª°¡³ª"´Ô°ú ºñ½ÁÇÑ ÀǰßÀÔ´Ï´Ù. Map ÀÌ °ú¿¬ ºóÁîÀÇ ´ëü¹°ÀÌ µÉ·±Áö´Â Àǹ®ÀÔ´Ï´Ù. ÄÄÆÄÀÏ Å¸ÀÓÀÇ type üũ¸¸ ÇØµµ »ó´çÇÑ ¸Þ¸®Æ®°¡ ÀÖ½À´Ï´Ù. ÀÚ¹Ù°¡ ¾Æ¿¹ ½ºÅ©¸³ÆÃ ¾ð¾îó·³ type¿¡ ¾ô¸ÅÀÌÁö ¾Ê´Â ÇüÅ·Πº¯ÇÑ´Ù¸é ¸ð¸£°ÚÁö¸¸¿ä. »ç½Ç ŸÀ̰ſ¡ Á¦³×¸¯½º°¡ µµÀÔµÈ °Í¿£ List, Map·ù°¡ Object¸¦ ¹Þ¾ÆµéÀÌ´Â ½À¼º ¶§¹®¿¡ ÄÄÆÄÀÏ Å¸ÀÓ¿¡ type¿¡ ´ëÇÑ Ã¼Å©°¡ ¾ÈµÇ°í, ²À µ¹·ÁºÁ¾ßÁö¸¸ ¾Ë°Ô µÇ´Â ¹®Á¦Á¡µµ ÇÑ ¸òÇß´Ù°í ¾Ë°íÀÖ½À´Ï´Ù.
ÀÚ¹ÙºóÁîÀÇ ÇØ¾Ç?
Áö³ª°¡´Ù[ 2005/10/18 ]  
¾Æ½Ã°ÚÁö¸¸ Map µîÀ» ¾²°Ô µÇ¸é ÇϳªÀÇ °´Ã¼¿¡ Á¦¾àÀ» ºÎ¿©ÇÏ´Â °æ¿ì Client °´Ã¼¿¡ Á¦¾à¿¡ °ü·ÃµÈ Äڵ尡 ÀÛ¼ºµÇ¾î¾ß ÇÏ¸ç ±×·¸°Ô µÇ¸é ¸¹Àº Äڵ带 °íÃÄ¾ß ÇÏÁÒ. MapÀ» ¾²´Â °æ¿ì¿¡µµ ¼³Á¤À» ÅëÇØ¼­ Á¦¾àÀ» °ü¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ÆÐÅÏÀÌ ÀÖÁö¸¸ °á±¹ °ü¸® ¹× ÆÛÆ÷¸Õ½º ¹®Á¦·Î ±Í°áµÇÁö ¾ÊÀ»±î ½Í½À´Ï´Ù. JavaBeans(DTO, TO, VO¶ó ºÒ¸®´Â ¸ðµç °Íµéµµ Æ÷ÇÔÀ̰ÚÁÒ?)ÀÇ ÇØ¾ÇÀ̶ó Ç¥ÇöÇÏ´Â °ÍÄ¡°í´Â ´ë¾ÈÀÌ ÃæºÐÇÏÁö ¾Ê´Ù°í »ý°¢µË´Ï´Ù.
 
 
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨í] Çʼö ¾ÆÀÌ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ì] ÇÁ·Î±×·¡¹Ö...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨è] ¿ëÀ» ¸¸³ª...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ê] ±âº»±â ¾ø...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ë] »õ·Î¿î ½Ã...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨é] ³ª´®°ú ±³...
'ÁÖÃãÁÖÃã ¼Ò´Ï' º¸±ÞÇü Ä·ÄÚ´õ ½ÃÀå »ï¼º ¸Í°ø¡¦À¯Æ©ºê ¸ÂÃãÇü 'VM-MX20C' [00:07:48]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[ZDNET ¿µ¹®¹æ¼Û]±¸±Û À¥ºê¶ó¿ìÀú '±¸±Û Å©·Ò' º£Å¸¹öÀü °ø°³ [00:01:29]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
¡°À¥ Ç¥ÁØÀº ¹«½¼!¡±¡¦IE8¿¡ ´ë...
°øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
³×À̹ö´Â ¿Ö '10´ë ÇØÄ¿'¿¡ ´ç...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
"¾×ƼºêX¿Í °øÁ¸ ¸ð»ö"¡¦±¸±Û, ...
'À§ÇÇ Àǹ«È­' ÆóÁö ºÐÀ§±â·Î¡¦
ÀÎÆ÷¹ðÅ© "IPTV ¸Þ½Ã¡ ¼­ºñ½º...
³ª¿ìÄÞ, DDoS Â÷´Ü ±â¼ú ƯÇã
¡®Àå¾ÖÀÎ À¥ Á¢±Ù¼º ¿ì¼ö±â°ü¡¯ ¼±...
°õTV, PMP ´Ù¿î·Îµå ¼­ºñ½º ...
Ä¿³Ø¼±Æ®ÄÚ¸®¾Æ, ºÐ´ç »õ »ç¹«½Ç·Î...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.