::: Zany's Homepage ::: Zany Wiki | »çÀÌÆ® ÅëÇÕ °Ë»ö
 
 
 

Struts2

°Ô½ÃÆÇ
Jsp, Applet, Servlet
ÀÛ¼ºÀÚ
helix
ÀÛ¼ºÀÏ
2009-10-26 12:33:59
ÀÐÀº¼ö
3259
ÆòÁ¡
   
Ç¥½Ã¿É¼Ç
HTML»ç¿ë | ÀÚµ¿BRűנ| °ø¹é¹®ÀÚÇã¿ë | °¡¿îµ¥Á¤·Ä | °íÁ¤Æø±Û²Ã | ÀÚµ¿URL¸µÅ© | ¸¶¿ì½º¼±ÅÃ
 Img #1 : ½ºÆ®·µÃ÷2 ¾ÆÅ°ÅØó °³³äµµ

´õ Æí¸®ÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ÇÁ·¹ÀÓ¿öÅ©
½ºÆ®·µÃ÷2

È¥ÀâÇÑ À¥ °³¹ß ¹æ¹ýÀÌ ³­¹«ÇÏ´ø À¥ °³¹ß Ãʱ⿡ ½ºÆ®·µÃ÷´Â ÇϳªÀÇ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ±âÁØÀ» ¸¶·ÃÇÏ´Â ¼º°ú¸¦ °Åµ×°í,
±×¿¡ µû¶ó ÇöÀç±îÁöµµ ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù. ½ºÆ®·µÃ÷°¡ ¿ÀǼҽºÀÇ Àû¿ë °¡´É¼ºÀ» ÇÑÃþ ³ôÀÎ ´öºÐ¿¡ À¯¿ëÇÑ ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©µéÀÌ
´Ù¼ö ź»ýÇß°í, Áö¼ÓÀûÀÎ °ü½É°ú ÇÔ²² ¿¬±¸µÇ°í ÀÖ´Ù. °³¹ßÀÚ´Â ¾÷¹« ¿µ¿ª¿¡ µû¶ó ´Ù¾çÇÑ ±â¼úÀ» È¥ÇÕÇؼ­ »ç¿ëÇØ¾ß ÇÏ´Â ¾î·Á¿òÀ»
°Þ°Ô µÈ´Ù. ÀÌ·± °³¹ßÀÚÀÇ °í¹ÎÀ» ÇØ°áÇϱâ À§ÇØ »õ·Ó°Ô ź»ýÇÑ ½ºÆ®·µÃ÷2´Â ±â¼ú°ú ±â¼úÀ» ½±°Ô ¿¬°áÇÏ°í °³¹ß ÀÚü¸¦ ´Ü¼øÈ­ÇÏ·Á´Â
ÃÖ±Ù Æ®·»µå°¡ ÃæºÐÈ÷ ¹Ý¿µµÈ ¸ð½ÀÀ» ³ªÅ¸³»°í ÀÖ´Ù.

ÇööÁÖ nockarm@gmail.com


½ºÆ®·µÃ÷2¿¡ ´ëÇØ À̾߱âÇϱâ Àü¿¡ ¸ÕÀú À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§ º¸ÆíÀûÀ¸·Î Áß¿ä½ÃÇÏ´Â ºÎºÐÀÌ ¹«¾ùÀÎÁö¸¦ ¸ÕÀú ÆľÇÇÏ´Â °ÍÀÌ
¿ì¸®°¡ ¿øÇÏ´Â ¸ð½ÀÀÇ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÉ °ÍÀ¸·Î »ý°¢ÇÑ´Ù. ´ÙÀ½Àº ÀÌ·¯ÇÑ ³»¿ëÀ» °£·«ÇÏ°Ô Àû¾îº» °ÍÀÌ´Ù.

- È­¸é µðÀÚÀÎÀÌ ½¬¿ö¾ß ÇÑ´Ù.
- ȯ°æ ¼³Á¤ÀÌ Ã¼°èÀûÀÌ°í °£ÆíÇØ¾ß ÇÑ´Ù.
- ¹°¸®ÀûÀÎ µ¥ÀÌÅÍ¿Í ¸ðµ¨ µ¥ÀÌÅÍÀÇ º¯È¯ÀÌ ½¬¿ö¾ß ÇÑ´Ù.
- ºñÁî´Ï½º ·ÎÁ÷À» ±¸¼ºÇÏ´Â ´Ù¾çÇÑ ±â¼úµéÀÌ ¿øÇÏ´Â °÷¿¡ ½±°Ô »ç¿ëµÉ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
- °³¹ß ÀÚü°¡ ´Ü¼øÇØ¾ß ÇÑ´Ù.
- ´Ù¸¥ ±â¼ú·Î º¯È¯ÇÏ·Á ÇÒ ¶§ ½±°í Æí¸®ÇÏ°Ô ÀÛ¾÷ÀÌ ÀÌ·ïÁ®¾ß ÇÑ´Ù.
- ½¬¿î µð¹ö±ë°ú Å×½ºÆ® ȯ°æÀ» Á¦°øÇØ¾ß ÇÑ´Ù.
- ¸¸¾à °¢°¢ÀÇ ³»¿ë Áß Á¦°øµÇÁö ¾Ê´Â °ÍÀÌ ÀÖ´Ù¸é, À̸¦ Á¦°øÇÏ´Â ´Ù¸¥ ±â¼ú°ú ½±°Ô Á¢¸ñÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

ÀÚ¹Ù ¾ð¾î·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °úÁ¤¿¡¼­´Â ¸Å¿ì ´Ù¾çÇÑ ±â¼úÀ» ¿©·¯ °¡Áö Çü½ÄÀ¸·Î »ç¿ëÇϱ⠶§¹®¿¡, À§¿¡¼­ ³ª¿­ÇÑ
°ü½É »çÇ×µéÀ» ¸¸Á·½ÃÅ°±â À§ÇØ ±â¼úÀ» Àß »ç¿ëÇÏ´Â °ÍÀÌ ¾ó¸¶³ª ¾î·Á¿î ÀÛ¾÷ÀÎÁö¸¦ Àß ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ÇÁ·¹ÀÓ¿öÅ©¶õ
À§¿Í °°Àº ÀÛ¾÷ÀÇ ¿øÈ°ÇÑ ¼öÇàÀ» À§ÇØ ´Ù¾çÇÑ ±â¼úÀ» Ãß»óÈ­ ¹× ÆÐÅÏÈ­ÇÔÀ¸·Î½á ¿©·¯ ȯ°æ¿¡¼­µµ ¾ÈÁ¤¼º°ú ¼öÇà ´É·ÂÀ»
È®º¸ÇÏ°í, ±¸Çö ÀÚü¿¡ ´õ ÁýÁßÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÇϳªÀÇ ¶óÀ̺귯¸®ÀÌÀÚ ¾ÖÇø®ÄÉÀ̼ÇÀÌ°í ¶ÇÇÑ È¯°æÀÌ´Ù.

¼¼¿ùÀÌ Áö³ª¸é¼­ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ±â¼úÀº ¹Ù²îÁö¸¸ ÀÌ·¯ÇÑ ¿ä±¸»çÇ×Àº º¯ÇÔ¾øÀ» °ÍÀÌ´Ù.
ÇÁ·¹ÀÓ¿öÅ©´Â ÀÌ·¯ÇÑ ¸ñÀûÀ» ÀÌ·ç±â À§ÇØ ½Ã´ë°¡ ¿øÇÏ´Â ¸ð½ÀÀ¸·Î ²÷ÀÓ¾øÀÌ º¯¸ðÇØ °¥ °ÍÀ̶ó »ý°¢ÇÑ´Ù.

ÀÌ ±Û¿¡¼­ ´Ù·ê ½ºÆ®·µÃ÷2´Â ¿ÀǽÉÆ÷´Ï(OpenSymphony) À¥¿öÅ©(WebWork)ÀÇ ¶Ù¾î³­ ¾ÆÅ°ÅØó¿Í ¾ÆÆÄÄ¡(Apache) ½ºÆ®·µÃ÷(Struts)
Ä¿¹Â´ÏƼ°¡ ¸¸³ª ź»ýÇÑ »õ·Î¿î ÇÁ·¹ÀÓ¿öÅ©ÀÌ´Ù. ½ºÆ®·µÃ÷2´Â °£°áÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» ¸ñÀûÀ¸·Î ÇÏ°í ÀÖ´Ù. ¾÷¹«¸¦ ±¸ÇöÇÏ´Â
°ÍÀº ¼Ò½º Äڵ带 »ý¼ºÇÏ´Â °Í ¿Ü¿¡µµ µð¹ö±ë°ú Å×½ºÆ® ÀÛ¾÷À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. °³¹ßÀÌ °£°áÇÏ°í ½±´Ù´Â °ÍÀº ÄÚµùÀÌ ½±´Ù´Â °Í»Ó¸¸
¾Æ´Ï¶ó, µð¹ö±ë°ú Å×½ºÆ® ¿ª½Ã ½±´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ·¯ÇÑ È¯°æÀ» °³¹ßÀÚ¿¡°Ô Á¦°øÇϱâ À§ÇØ ÇÁ·¹ÀÓ¿öÅ©°¡ ¸Ã¾Æ¾ß ÇÒ Ã¥ÀÓÀº
´õ¿í Ä¿Áö°Ô µÈ´Ù.


½ºÆ®·µÃ÷2ÀÇ ÇÙ½É ±â´É

ÀÚ¹Ù À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§ÇØ Ã³À½ ¹è¿ì´Â ³»¿ëÀº ÀÚ¹Ù, ¼­ºí¸´, JSP, JDBC µîÀÌ´Ù. ÀÌ ±â¼úµéÀº °ü·Ã ¼­ÀûÀÇ ¿¹Á¦¸¦
ÅëÇØ ÇнÀÇÏ°Ô µÇ´Âµ¥, ÀϹÝÀûÀ¸·Î ±× ¶§¿¡ ÇнÀÇÑ ³»¿ëÀ» ±âÁØÀ¸·Î °³¹ß¿¡ ÀÓÇϹǷΠÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» »õ·Ó°Ô ¹è¿ì°í
Àû¿ëÇϱⰡ ½±Áö ¾Ê´Ù°í ´À³¥ ¼ö ÀÖ´Ù. ±×·¯³ª ½ÇÁ¦·Î´Â ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇØ ÀÚ¹Ù À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °ÍÀÌ
¸Å¿ì Èï¹Ì·Î¿î ÀÛ¾÷ÀÓÀ» ¾Ë°Ô µÈ´Ù. ±×·¸´Ù¸é ½ºÆ®·µÃ÷2ÀÇ ÇÙ½É ±â´ÉÀº ¹«¾ùÀϱî? ¿ä¾àµÈ ³»¿ëÀ» ¸ÕÀú »ìÆ캸ÀÚ.

¡Ü MVC(Model-View-Controller) ÇÁ·¹ÀÓ¿öÅ© - ½ºÆ®·µÃ÷2´Â ½ºÆ®·µÃ÷1°ú´Â ¿ÏÀüÈ÷ ´Ù¸¥ MVC ¾ÆÅ°ÅØó¸¦ »ç¿ëÇÏ°í ÀÖ´Ù.
2005³â ÀÚ¹Ù¿ø(JavaOne)¿¡¼­ ½ºÆ®·µÃ÷Ti(Titanium) ÃʾÈÀ» ±¸¼ºÇØ º»°ÝÀûÀÎ ½ºÆ®·µÃ÷2 °³¹ßÀÌ ½ÃÀ۵Ǿú´Ù.

¡Ü À¥¿öÅ©2(WebWork2)ÀÇ ¾ÆÅ°ÅØó ä¿ë - ½ºÆ®·µÃ÷2´Â °£°áÇÔ°ú ¼¼·Ã¹Ì, Åø ģȭ¼º°ú ÆäÀÌÁö Ç÷οìÀÇ ÀåÁ¡À» ½ºÆ®·µÃ÷1°ú °áÇÕÇß´Ù.
½ºÆ®·µÃ÷2ÀÇ ¾ÆÅ°ÅØó´Â À¥¿öÅ©2ÀÇ ¾ÆÅ°ÅØó¸¦ ±×´ë·Î Àû¿ëÇÏ°í ÀÖ´Ù.

¡Ü POJO ±â¹ÝÀÇ ÀÛ¾÷°ú Á¦·Î ÄÁÇDZԷ¹ÀÌ¼Ç ÁöÇâÀ¸·Î Á÷°üÀûÀÎ °³¹ß °¡´É - ½ºÆ®·µÃ÷2´Â Á÷°üÀûÀ¸·Î °³¹ßÇÒ ¼ö ÀÖµµ·Ï µðÀÚÀεǾú´Ù.
POJO(Plain Old Java Object) ±â¹ÝÀ¸·Î ½±°í À¯¿¬ÇÏ°Ô °³¹ßÇÒ ¼ö ÀÖÀ¸¸ç ¹«¾ùº¸´Ù ȯ°æ¼³Á¤ÀÇ ³»¿ëÀÌ °£´ÜÇØÁø °ÍÀÌ Å« ÀåÁ¡ÀÌ´Ù.
½ºÆ®·µÃ÷2´Â Á¦·Î ÄÁÇDZԷ¹À̼Ç(Zero Configuration)À» ÁöÇâÇÑ´Ù. ±âº» °ªÀ» »ç¿ëÇØ ¸¹Àº ¼³Á¤À» »ý·«ÇÒ ¼ö ÀÖÀ¸¸ç ¼Ò½º »ó¿¡
¾î³ëÅ×À̼Ç(Annotation)À» »ðÀÔÇØ ¼³Á¤ ÆÄÀÏ¿¡¼­ Á¤ÀÇÇØ¾ß ÇÒ ³»¿ëÀ» »ý·«Çϰųª À¯È¿¼º °Ë»ç, ÀÎÅͼÁÅÍÀÇ ±â´ÉÀ» ¾î³ëÅ×À̼ÇÀ¸·Î
Á¦°øÇÑ´Ù. ½ºÆ®·µÃ÷2´Â ¿ÍÀϵåÄ«µå ¸ÅÇÎÀ» »ç¿ëÇØ ÆÐÅÏÀ» °¡Áø ¿©·¯ ¾×¼ÇÀ» ÇϳªÀÇ Á¤ÀÇ·Î ÇÔÃàÇÒ ¼ö ÀÖ´Â ±â´Éµµ Á¦°øÇÑ´Ù.

¡Ü À¥ ÄÁÅ×ÀÌ³Ê Àç½ÃÀÛ ¾øÀÌ ½Å¼ÓÇÑ ¸®·Îµù Á¦°ø - ½ºÆ®·µÃ÷2´Â ½Å¼ÓÇÑ ¸®·Îµù ±â´ÉÀ» Á¦°øÇÑ´Ù.
º¯°æµÈ ȯ°æ¼³Á¤ ³»¿ëÀÌ À¥ ÄÁÅ×À̳ʸ¦ ´Ù½Ã ½ÃÀÛÇÏÁö ¾Ê¾Æµµ ¸®·ÎµåµÇ¹Ç·Î °³¹ß ½Ã¿¡ ¸Å¿ì À¯¿ëÇÏ´Ù.

¡Ü POJO ±â¹ÝÀ¸·Î ÇÁ·¹ÀÓ¿öÅ©¿¡ Á¾¼ÓÀûÀÌÁö ¾ÊÀ¸¸ç Å×½ºÆ®°¡ ½±´Ù - ½ºÆ®·µÃ÷2ÀÇ °¡Àå ÇÙ½É ±â´ÉÀ¸·Î º¼ ¼ö ÀÖ´Â ¾×¼Ç Ŭ·¡½º¸¦
POJO·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï µðÀÚÀÎÇÏ¿© ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇϸ鼭µµ ÇÁ·¹ÀÓ¿öÅ©¿¡ Á¾¼ÓµÇÁö ¾Ê´Â´Ù.
¾×¼Ç Ŭ·¡½º´Â HTTP¿¡ µ¶¸³ÀûÀ̹ǷΠMock °´Ã¼¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í ¼Õ½±°Ô Å×½ºÆ®ÇÒ ¼ö ÀÖ´Â ÀÌÁ¡À» °¡Áø´Ù.

¡Ü ÀÎÅͼÁÅÍÀÇ Áö¿øÀ¸·Î ¾×¼Ç¿¡ ´ëÇÑ AOP(Aspect-Oriented Pro gramming) ±â´É Áö¿ø - ½ºÆ®·µÃ÷2´Â HTTP ¿äûÀ» Áß°£¿¡ °¡·Îä¼­
¾×¼Ç ½ÇÇà Àü°ú ÈÄ¿¡ ½ÇÇàÇÒ Äڵ带 º°µµÀÇ °èÃþÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ´Â ÀÎÅͼÁÅ͸¦ »ç¿ëÇÑ´Ù. ÀÌ´Â AOP¿Í °°Àº °³³äÀ¸·Î ´Ù¾çÇÑ
ÀÎÅͼÁÅ͸¦ Á¦°øÇÏ°í ÀÖÀ¸¸ç, ¾ÆÁÖ °£´ÜÇÑ ¼³Á¤À¸·Î ¿øÇÏ´Â ÀÎÅͼÁÅ͸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é, ¿äûÀÇ ÆĶó¹ÌÅ͸¦ ¸ðµ¨
µ¥ÀÌÅÍ·Î º¯È¯ÇÏ´Â ´Ü¼øÇÏ°í Áö·çÇÑ ÀÛ¾÷À» ÀÚµ¿È­ÇÒ ¼ö ÀÖ´Ù.

¡Ü °­·ÂÇÑ ÅÂ±× ¶óÀ̺귯¸® Á¦°ø - ½ºÆ®·µÃ÷2´Â ´Ù¾çÇÑ ÅÂ±× ¶óÀ̺귯¸®¸¦ Á¦°øÇÑ´Ù.
Å׸¶¿Í ÅÛÇø´À» »ç¿ëÇØ ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖµµ·Ï Àç»ç¿ë¼ºÀÌ ³ôÀº ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù.

¡Ü ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Â Ajax ±â´É Á¦°ø - ½ºÆ®·µÃ÷2´Â Dojo ÇÁ·¹ÀÓ¿öÅ©¸¦ Æ÷ÇÔÇÏ°í ÀÖ°í, Ajax Å׸¶¸¦ Áö¿øÇϴ ű׸¦ »ç¿ëÇØ
Ưº°ÇÑ ÀÛ¾÷ ¾øÀÌ Ajax ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ °³³äÀ» Àû¿ëÇϱⰡ ÁÁ°í ´õ dzºÎÇÑ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé ¼ö ÀÖ´Ù.

¡Ü ´Ù¸¥ ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀÎÅÍÆäÀ̽º Á¦°øÀ¸·Î ½¬¿î ¿¬µ¿ - ½ºÆ®·µÃ÷2´Â ÀڽŠ¿Ü¿¡µµ À¯¿ëÇÑ ¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ©¸¦ ½±°Ô
»ç¿ëÇÒ ¼ö ÀÖµµ·Ï Ç÷¯±×ÀÎÀ» Á¦°øÇÑ´Ù. ºñÁî´Ï½º µ¥ÀÌÅ͸¦ Â÷Æ®·Î Ãâ·ÂÇÏ´Â JFreeChart, ¸®Æ÷Æ® Ãâ·ÂÀ» À§ÇÑ JasperReport,
ÆäÀÌÁö ·¹À̾ƿôÀ» ±¸¼ºÇÒ ¶§ µµ¿òÀ» ÁÙ ¼ö ÀÖ´Â Sitemesh, DI(Dependency Injection) ¹× OR Mapper¿Í ÇÔ²² »ç¿ëÇϱâ À§ÇÑ
Æ®·£Àè¼Ç °ü¸® µîÀ» À§ÇÑ Spring, Ajax ÇÁ·Î±×·¡¹ÖÀÇ µ¥ÀÌÅÍ Àü¼ÛÀ» À§ÇÑ JSon°ú °°Àº ´Ù¾çÇÑ Ç÷¯±×ÀÎÀ» Á¦°øÇÑ´Ù.
Ç÷¯±×ÀÎÀº Áö±Ýµµ °è¼Ó ¸¸µé¾îÁö°í ÀÖ´Ù.

¡Ü ÀÇÁ¸¼º ÁÖÀÔ ÄÁÅ×À̳ʸ¦ »ç¿ëÇØ ÀÇÁ¸¼º °áÇÕµµ¸¦ ³·Ãã - °´Ã¼ °£ÀÇ ÀÇÁ¸¼º °áÇÕµµ¸¦ ³·Ãß±â À§ÇØ ÀÇÁ¸¼º ÁÖÀÔ ÄÁÅ×À̳ʸ¦
»ç¿ëÇÒ ¼ö ÀÖ´Ù. ½ºÆ®·µÃ÷2 ³»ºÎÀÇ ÁÖ¿ä °´Ã¼¸¦ ´Ù·ç±â À§ÇØ ±¸±Û Guice ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ°í ÀÖÀ¸¸ç ½ºÇÁ¸µ°ú °°Àº ¶Ù¾î³­
ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¡Ü ´Ù¾çÇÑ ºä Á¦°ø - ½ºÆ®·µÃ÷2´Â JSP ¿Ü¿¡µµ FreeMarker, Velocity¿Í °°Àº ´Ù¾çÇÑ ºä ±â¼úÀ» Áö¿øÇÑ´Ù.
ÃÖ±Ù ÀÚ¹Ù½ºÅ©¸³Æ® ±â¹ÝÀÇ UI ÇÁ·¹ÀÓ¿öÅ©¿Íµµ ¿¬µ¿Çϱ⠽±´Ù.

¡Ü À¯¿ëÇÑ Ç¥Çö½Ä ¾ð¾î Á¦°ø - ½ºÆ®·µÃ÷2´Â OGNL(Object Graph Navigation Language)À» Á¦°øÇÏ¿©, ½ºÆ®·µÃ÷2ÀÇ Å±׸¦
»ç¿ëÇÒ ¶§ µ¥ÀÌÅÍÀÇ Ç¥ÇöÀ» ¸Å¿ì ÀÚÀ¯·Ó°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ½ºÆ®·µÃ÷2 ÅÂ±× ´ë½Å JSTL°ú °°Àº Ç¥Çö½Ä ¾ð¾î¸¦ ´ë½Å »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.


¾ÆÅ°ÅØó ºÐ¼®

Áö±Ý±îÁö »ìÆ캻 °Íó·³ ½ºÆ®·µÃ÷2´Â ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÏÁö¸¸ À¥ °³¹ßÀÇ ±âº»¿¡ Ãæ½ÇÇÏ°Ô µðÀÚÀεǾî À¥ °³¹ßÀ» óÀ½ ½ÃÀÛÇÏ´Â
°³¹ßÀڵ鵵 ¾î·Á¿ò ¾øÀÌ Á¢±Ù °¡´ÉÇÑ ¼º¼÷ÇÑ ÇÁ·¹ÀÓ¿öÅ©¶ó ÇÒ ¼ö ÀÖ´Ù. <Img#1>Àº ½ºÆ®·µÃ÷2¸¦ ±¸¼ºÇÏ°í ÀÖ´Â ÇÙ½É ¾ÆÅ°ÅØóÀÇ ¸ð½ÀÀÌ´Ù.

½ºÆ®·µÃ÷2ÀÇ ¾ÆÅ°ÅØó´Â ½ºÆ®·µÃ÷1º¸´Ù º¹ÀâÇØÁ³´Ù. ÀÌ´Â °³¹ßÀÚ°¡ ´õ ½±°í °£´ÜÇÑ ÀÛ¾÷À¸·Î °í±Þ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖµµ·Ï
¸¹Àº ºÎºÐÀ» ÇÁ·¹ÀÓ¿öÅ©°¡ Ã¥ÀÓÁö°í Àֱ⠶§¹®ÀÌ´Ù. <±×¸² 1>ÀÇ ÇÙ½É °³³ä Áß¿¡¼­ °³¹ßÀÚÀÇ ¼ÕÀ» °ÅÃÄ¾ß ÇÏ´Â ºÎºÐÀº º¸Åë
struts.xml, Action, TemplateÀ¸·Î, ¡®User created¡¯¶ó°í Á¤ÀÇµÈ °÷¿¡ ÇØ´çÇÑ´Ù. ½ºÆ®·µÃ÷2¸¦ ÀÌ¿ëÇØ °³¹ßÇÒ ¶§ °³¹ßÀÚ°¡
ÀÛ¾÷ÇÏ´Â ºÎºÐÀº ¾×¼Ç°ú ºä(JSP µî), ±×¸®°í À̵éÀÇ °ü°è¸¦ Á¤ÀÇÇÒ struts.xmlÀÌ´Ù.

±×·³ ½ÇÁ¦·Î ½ºÆ®·µÃ÷2¸¦ ÀÌ¿ëÇØ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÑ´Ù¸é ¾î¶² ¸ð½ÀÀÌ µÇ´ÂÁö¸¦ ¾ÆÁÖ °£´ÜÇÑ ¿¹·Î ¼³¸íÇÑ´Ù.
´ÙÀ½Àº ¾ÆÁÖ Àͼ÷ÇÑ ¿¹Á¦·Î, È­¸é¿¡ ¡°Hello World¡±¸¦ Ãâ·ÂÇÏ´Â ½ºÆ®·µÃ÷2 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ´Ù.

<¸®½ºÆ®1> HelloWorld ¾×¼Ç Ŭ·¡½º (HelloWorldAction.java)

package example;

public class HelloWorldAction {

    private String message;

    public String execute() throws Exception {
        message = "Hello World";
        return "success";
    }

    public String getMessage() {
        return this.message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}


<¸®½ºÆ®2> °á°ú ÆäÀÌÁö (HelloWorld.jsp)

<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>Struts2 Example</title></head>
<body>
<s:property value="message" />
</body>
</html>


<¸®½ºÆ®3> ½ºÆ®·µÃ÷2ÀÇ È¯°æ¼³Á¤ ÆÄÀÏ (struts.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="default" extends="struts-default" namespace="">
        <action name="helloWorld" class="example. HelloWorldAction">
            <result>/HelloWorld.jsp</result>
        </action>
    </package>
</struts>


ÀÌ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÄÁÅؽºÆ®¸íÀÌ [struts2] ¶ó°í °¡Á¤ÇßÀ» °æ¿ì, ÀÌ·¸°Ô ¸¸µé¾îÁø ¾×¼Ç Ŭ·¡½º¸¦ À¥¿¡¼­ ½ÇÇàÇÏ·Á¸é
À¥ ºê¶ó¿ìÀúÀÇ URL â¿¡ http://localhost:8080/struts2/helloWorld.action À» ÀÔ·ÂÇÑ´Ù. struts.xml ¿¡¼­ <action> ¿ä¼ÒÀÇ
name ¼Ó¼º¿¡ Á¤ÀÇÇÑ [helloWorld] ¿¡ ½ºÆ®·µÃ÷2ÀÇ ±âº» È®Àå¸íÀÎ [.action] À» ºÙÀÎ °ªÀÌ ¾×¼ÇÀ» È£ÃâÇÒ urlÀÌ µÈ´Ù.
À̸¦ ½ÇÇàÇϸé È­¸é¿¡´Â [Hello World] °ªÀÌ Ãâ·ÂµÈ´Ù.

½Å±âÇÏ°Ôµµ ½ºÆ®·µÃ÷2ÀÇ ¾×¼Ç Ŭ·¡½º´Â ¾î¶°ÇÑ ´Ù¸¥ Ŭ·¡½º¸¦ »ó¼Ó¹ÞÀº ÀûÀÌ ¾ø°í, ÇÁ·¹ÀÓ¿öÅ©¿¡ Á¾¼ÓµÈ ´Ù¸¥ Ŭ·¡½º ŸÀÔÀÇ
ÆĶó¹ÌÅÍ¿Í ¹Ýȯ °ªµµ »ç¿ëÇÏÁö ¾ÊÀº ä ¿øÇÏ´Â ÀÛ¾÷ÀÌ ÀÌ·ïÁ³´Ù. ¹Ù·Î ÀÌ°ÍÀÌ ½ºÆ®·µÃ÷2°¡ ÁöÇâÇÏ´Â POJO ±â¹ÝÀÇ
°£°áÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÇ ÇÑ ¸ð½ÀÀÌ´Ù.

±×·¸´Ù¸é À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀº Ãâ·Â À§ÁÖ°¡ ¾Æ´Ï¶ó È­¸é¿¡¼­ ÀÔ·ÂÇÑ °ªÀ» ÆĶó¹ÌÅÍ·Î ³Ñ°Ü ºñÁî´Ï½º ·ÎÁ÷À» ó¸®ÇØ¾ß Çϴµ¥,
request °´Ã¼¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÆĶó¹ÌÅÍ´Â ¾î¶»°Ô »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ±Ã±ÝÇØÁú °ÍÀÌ´Ù. JSP¿¡¼­ »ç¿ëÀÚ ¾ÆÀ̵𸦠ÀԷ¹ÞÀ»
ÅؽºÆ® Çʵ尡 ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù°í °¡Á¤ÇÏÀÚ.

<s:textfield name="userId" />

ÀÌ´Â HTMLÀÇ <input type="text" name="userId" />¿Í µ¿ÀÏÇÑ ³»¿ëÀ̸ç, ½ÇÁ¦·Î ÀÌ¿Í °°ÀÌ »ç¿ëÇصµ ÀÔ·Â ½Ã¿¡´Â ¶È°°ÀÌ ÀÛµ¿ÇÑ´Ù.
±×·¯³ª Ãâ·Â ½Ã¿¡µµ ¾×¼Ç Ŭ·¡½ºÀÇ ÇÁ·ÎÆÛƼ °ªÀ» ÄÁÆ®·Ñ¿¡ Ãâ·ÂÇÏ·Á¸é ½ºÆ®·µÃ÷2 ű׸¦ »ç¿ëÇÏ´Â °ÍÀÌ À¯¸®ÇÏ´Ù.
ÀÌ·¸°Ô ÀÔ·ÂµÈ "userId" ÆĶó¹ÌÅÍ °ªÀ» ½ºÆ®·µÃ÷2ÀÇ ¾×¼Ç Ŭ·¡½º¿¡¼­ »ç¿ëÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ÀÌ¿ëÇÑ´Ù.

ÀÔ·Â ÆĶó¹ÌÅÍ¿Í µ¿ÀÏÇÑ À̸§ÀÇ ¾×¼Ç Ŭ·¡½ºÀÇ ÇÁ·ÎÆÛƼ¸¦ Á¤ÀÇÇØ ³õÀ¸¸é, ÀÌ ÇÁ·ÎÆÛƼ¿¡ ÆĶó¹ÌÅÍ °ªÀÌ ÀÚµ¿À¸·Î ÀúÀåµÈ´Ù.
½ÇÁ¦·Î ½ºÆ®·µÃ÷2¸¦ »ç¿ëÇØ ÆĶó¹ÌÅ͸¦ ´Ù·ê °æ¿ì¿¡´Â ÀÌ¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏÁö ¾ÊÁö¸¸, ºñ±³¸¦ À§ÇÑ ´Ù¸¥ ¹æ¹ýÀ¸·Î
±âÁ¸ ¹æ½Äó·³ request °´Ã¼¸¦ ¾ò¾î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â ¿äû Á¤º¸°¡ ¾×¼Ç ÄÁÅؽºÆ®¿¡ ÀúÀåµÇ´Â °ÍÀ» º¸¿©ÁÖ±â À§ÇÑ °ÍÀÌ´Ù.

½ºÆ®·µÃ÷2´Â application, session, request, parameter µîÀÇ Á¤º¸¸¦ ½º·¹µå ·ÎÄÃÀÎ ActionContext ¿¡ ÀúÀå °ü¸®ÇÔÀ¸·Î½á
¾×¼Ç Ŭ·¡½º¸¦ POJO·Î ¸¸µé ¼ö ÀÖ´Â ±â¹ÝÀ» Á¦°øÇßÀ¸¸ç, ¿äû ÆĶó¹ÌÅ͸¦ ¾×¼Ç Ŭ·¡½ºÀÇ ÇÁ·ÎÆÛƼ¿¡ ÀÚµ¿À¸·Î ÀúÀåÇÏ´Â ±â´ÉÀº
½ºÆ®·µÃ÷2ÀÇ ÀÎÅͼÁÅÍ Áß "ÆĶó¹ÌÅÍ ÀÎÅͼÁÅÍ" ¸¦ ÀÌ¿ëÇÑ °ÍÀÌ´Ù. ÀÌ ¿Ü¿¡µµ ´Ù¾çÇÑ ÀÎÅͼÁÅ͸¦ ÅëÇØ °³¹ßÀÚ°¡ ½±°Ô °³¹ßÇÒ ¼ö ÀÖ´Â
±â¹Ý ȯ°æÀÌ Á¦°øµÇ°í ÀÖ´Ù. ÀÌó·³ ½ºÆ®·µÃ÷2 °¡ ÇÁ·¹ÀÓ¿öÅ© ·¹º§¿¡¼­ Á¦°øÇÏ´Â ±â´É ´öºÐ¿¡ ½ÇÁ¦ °³¹ßÀÌ ¸Å¿ì ½±°Ô ÀÌ·ïÁüÀ»
¾Ë ¼ö ÀÖ´Ù.


¿ÀǼҽº ÇÁ·¹ÀÓ¿öÅ© ¿­Àü

<¸®½ºÆ®4> ÆĶó¹ÌÅÍ°¡ ¾×¼Ç Ŭ·¡½ºÀÇ ÇÁ·ÎÆÛƼ¿¡ ÀÚµ¿ ÀúÀå

public class MyAction {
    private String userId;
    public String execute() throws Exception {
        System.out.println( userId );
        return "success";
    }
    //getter & setter methods...
}


<¸®½ºÆ®5> request °´Ã¼·ÎºÎÅÍ ÆĶó¹ÌÅ͸¦ ¾ò´Â ¹æ¹ý

public class MyAction {
    public String execute() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        System.out.println( request.getParameter("userId") );
        return "success";
    }
}

ÇöÀç Ant, Log4J, ½ºÆ®·µÃ÷, ½ºÆ®·µÃ÷2, WebWork2, ·çºñ¿Â·¹ÀÏÁî, ½ºÇÁ¸µ, ÇÏÀ̹ö³×ÀÌÆ®, iBatis, JSF, Acegi µîÀÇ ¿ÀǼҽº
ÇÁ·¹ÀÓ¿öÅ©°¡ ¸¹Àº °ü½ÉÀ» ¹Þ°í ÀÖ´Ù. ¶ÇÇÑ È­¸é UI ºÎºÐ¿¡ ´ëÇÑ °ü½É ¿ª½Ã ³ô¾Æ¼­ ÃÖ±Ù¿¡´Â À¥ Ç¥ÁØÀ» Áö¿øÇϸ鼭 dzºÎÇÑ È¿°ú¸¦
ÀÚ¶ûÇÏ´Â UI¸¦ À§ÇØ Prototype.js, Dojo, Google GWT, Yahoo UI, Extjs µî°ú °°Àº ´Ù¾çÇÑ ÇÁ·¹ÀÓ¿öÅ©µéÀÌ Ãâ½ÃµÇ°í ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇϱâ À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼±Á¤ÇÏ°í È­¸é °³¹ßÀ» À§ÇØ JSP¿Í °°Àº ±âº» ±â¼úÀ» »ç¿ëÇϰųª,
Á» ´õ dzºÎÇÑ ÀÎÅÍÆäÀ̽º¸¦ °³¹ßÇϱâ À§ÇØ º°µµÀÇ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼±Á¤ÇØ ÀÛ¾÷ÇÑ´Ù. ºñÁî´Ï½º ·ÎÁ÷À» ¼öÇàÇÏ´Â ÇÁ·¹ÀÓ¿öÅ©¿Í
È­¸é ó¸® ÇÁ·¹ÀÓ¿öÅ© °£ÀÇ µ¥ÀÌÅÍ Àü¼ÛÀ» À§ÇØ °´Ã¼ ¶Ç´Â xml, json µîÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÇϴµ¥, ÀÌ·± È­¸é ÄÁÆ®·Ñ°ú µ¥ÀÌÅÍÀÇ
¹ÙÀεùÀ» À§ÇÑ ÄÚµùÀÌ ½±°Ô¸¸ ´À²¸Áö´Â °ÍÀº ¾Æ´Ï´Ù.

¾ÕÀ¸·Î´Â ÀÌ·¯ÇÑ ºÎºÐµéÀ» ´õ ½±°Ô °³¹ßÇϱâ À§ÇØ È­¸éÀ» Æí¸®ÇÏ°Ô µðÀÚÀÎÇÏ°í ±× µðÀÚÀο¡ µ¥ÀÌÅ͸¦ ½±°Ô ¹ÙÀεùÇϱâ À§ÇÑ ¹æÇâÀ¸·Î
ÇÁ·¹ÀÓ¿öÅ©°¡ ¹ßÀüÇÒ °ÍÀ¸·Î »ý°¢µÈ´Ù. ÀÌ·¯ÇÑ ¸ð½ÀÀº ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©³ª ´Ù¸¥ ¾ð¾î¿¡¼­µµ ¿³º¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î À©µµ¿ì ÇÁ·Î±×·¡¹Ö
Ãʱ⿡´Â È­¸é µðÀÚÀÎÀ» À§ÇÑ ¸®¼Ò½º¸¦ °³¹ßÀÚ°¡ ÆÄÀÏ¿¡ Á÷Á¢ ÆíÁýÇß´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ºÒÆíÇÔÀ» ¾ø¾Ö±â À§ÇØ
WYSIWYG (What you see is what you get) ¸®¼Ò½º ¿¡µðÅ͸¦ Á¦°øÇÏ°í, ÀÌ ¸®¼Ò½º ¿¡µðÅ͸¦ »ç¿ëÇØ »ý¼ºÇÑ ¸®¼Ò½º¸¦ ÄÄÆÄÀÏ ½Ã ÂüÁ¶ÇØ
ÃÖÁ¾ ½ÇÇà ÆÄÀÏÀ» ¸¸µéµµ·Ï ±â´ÉÀ» °³¼±Çß´Ù.

¿ì¸®´Â ÀÌ·¯ÇÑ ÀÏ¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀÇ °³¹ß ¹æ¹ýÀ¸·ÎºÎÅÍ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹ßÀü ¹æÇâ¿¡ ´ëÇÑ ÈùÆ®¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
ÄÄÆ÷³ÍÆ® ±â¹Ý°ú ÇÁ·¹ÀÓ¿öÅ© ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀÌ °øÁ¸ÇÏ¸ç ±× ¼Ó¿¡¼­ ´õ ½¬¿î ÇعýÀ» ã´Â ³ë·ÂÀÌ °è¼ÓµÉ °ÍÀÌ°í,
½ºÆ®·µÃ÷2 ¿ª½Ã ±×·± È帧¿¡¼­ ÇÔ²² ÁøÈ­ÇØ°¡´Â ¸ð½ÀÀ» º¸¿©ÁÙ °ÍÀÌ´Ù.



Ãâó : http://blog.naver.com/crint?Redirect=Log&logNo=90047831860

 °Ô½ÃÆÇ ±Û ¸ñ·Ï
No Subject Poster Hits Posted
2476 helix 6765 2010-08-02 20:19:02
helix 3259 2009-10-26 12:33:59
2146 helix 3335 2009-09-08 11:02:51
1899 helix 3267 2009-05-07 20:55:24
1898 helix 7657 2009-05-07 20:26:08
1887 helix 7021 2009-04-28 19:37:56
ÄÚ¸àÆ®
ÀÛ¼ºÀÚ
                       
 
zany.kr
  Copyright ¨Ï 2002-2010 Zany's Programming Lab. All Rights Not Reserved.
temporary This Page loads on 0.031 Secs