óÀ½ºÎÅÍ ³¡±îÁö Á÷Á¢ ¸¸µé¾î º¸¸ç ÀÍÈ÷´Â ½ºÇÁ¸µ MVC!
½ºÇÁ¸µ MVC´Â À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß Àü¿ë ÇÁ·¹ÀÓ¿öÅ©·Î, ½ºÇÁ¸µ¿¡¼ Á¦°øÇÏ´Â ¸¹Àº ±â´ÉÀ» ÀÚÀ¯·Ó°Ô È®ÀåÇØ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¿µ¿ªº°·Î °³¹ßÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. Ã¥¿¡¼´Â ÀÌ·¯ÇÑ ½ºÇÁ¸µ MVC¸¦ ÀÌ¿ëÇØ µµ¼ ¼îÇθôÀ» óÀ½ºÎÅÍ ³¡±îÁö Á÷Á¢ ¸¸µé¾î º¼ ¼ö ÀÖ°Ô ±¸¼ºÇß´Ù. ¶ÇÇÑ, MultipartFile, RESTful À¥ ¼ºñ½º, ½ºÇÁ¸µ À¥ Ç÷οì, ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼, Log4j µîÀ» »ç¿ëÇϱ⠶§¹®¿¡ ´Ù¾çÇÑ ½ºÇÁ¸µ ±â´Éµµ ÇÔ²² ÀÍÈú ¼ö ÀÖ´Ù. Ã¥À» µû¶ó ½Ç½ÀÇÏ´Ù º¸¸é ½ºÇÁ¸µ MVCÀÇ °³³ä°ú ¿ø¸®¸¦ ÀÚ¿¬½º·¹ ÀÍÈú ¼ö ÀÖÀ» °ÍÀÌ´Ù. ½ºÇÁ¸µ MVC°¡ óÀ½À̰ųª ½ºÇÁ¸µ MVC·Î Á÷Á¢ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¸°í ½ÍÀº ºÐ¿¡°Ô ÃßõÇÑ´Ù.
°ü°ø¼ À§±â°ü¸® ȨÆäÀÌÁö, ÀÇÇпë¾î ¿Â¶óÀÎ Æò°¡ ½Ã½ºÅÛ, ÁßµµÅ»¶ô ¿¹¹æ ½Ã½ºÅÛ µî ´Ù¼öÀÇ À¥ ±â¹Ý ¿î¿µ ½Ã½ºÅÛ ¼³°è ¹× °³¹ß¿¡ Âü¿©Çß´Ù. ÇöÀç ¼ö¿ø¿©ÀÚ´ëÇб³ »çȸ½Ç¹«ÇкΠ±³¼ö·Î ÀçÁ÷ÇÏ¸é¼ ÀÚ¹Ù, JSP À¥ ÇÁ·Î±×·¡¹Ö, ½ºÇÁ¸µ, ¾Èµå·ÎÀ̵å ÇÁ·Î±×·¡¹Ö µîÀ» °ÀÇÇÏ°í ÀÖ´Ù. ÄÄÇ»ÅÍ ºñÀü, ¸ð¹ÙÀÏ °ÔÀÓ, °¡»óÇö½Ç µîÀ» ¿¬±¸ÇÏ°í ÀÖÀ¸¸ç, ĸ½ºÅæ µðÀÚÀÎ ÇÁ·ÎÁ§Æ®³ª °æÁø´ëȸ, °ø¸ðÀü µî¿¡¼ ÇлýµéÀÌ ½Ç¹« ´É·ÂÀ» ½×À» ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â Áöµµ ±³¼ö·Î¼ CATS(Computer Application Technology Study) µ¿¾Æ¸®¸¦ ¿î¿µ ÁßÀÌ´Ù. ¶ÇÇÑ ´Ù³â°£ÀÇ ÇöÀå ½Ç¹« °³¹ß°ú ±³À° °ÀǸ¦ ÅëÇØ ¾òÀº Áö½ÄÀ» µ¶ÀÚ¿¡°Ô ½±°í Àç¹ÌÀÖ°Ô ÀüÇÏ°íÀÚ ÁýÇÊ¿¡µµ Èû¾²°í ÀÖ´Ù. Àú¼·Î´Â ¡º½±°Ô ¹è¿ì´Â JSP À¥ ÇÁ·Î±×·¡¹Ö¡»(ÇѺû¾ÆÄ«µ¥¹Ì, 2018)ÀÌ ÀÖ´Ù.
1Àå ½ºÇÁ¸µ°ú ½ºÇÁ¸µ MVC
1.1 ÀÚ¹Ù Ç÷§Æû °³¹ß ÇÁ·¹ÀÓ¿öÅ©ÀÇ ´ë¼¼, ½ºÇÁ¸µ
__1.1.1 ½ºÇÁ¸µÀ̶õ?
__1.1.2 ²À ¾Ë¾Æ¾ß ÇÒ ½ºÇÁ¸µÀÇ ÁÖ¿ä Ư¡
1.2 MVC ÆÐÅÏ ±â¹ÝÀÇ À¥ ÇÁ·¹ÀÓ¿öÅ©, ½ºÇÁ¸µ MVC
__1.2.1 ½ºÇÁ¸µ MVC
__1.2.2 ½ºÇÁ¸µ MVCÀÇ ±¸¼º ¿ä¼Ò
1.3 ¸¶Ä¡¸ç
2Àå ½ºÇÁ¸µ MVC °³¹ß ȯ°æ ¼³Á¤°ú ¸Àº¸±â ¿¹Á¦
2.1 ½ºÇÁ¸µ MVC ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ȯ°æ ¼³Á¤
__2.1.1 ÀÚ¹Ù ¼³Ä¡ ¹× ȯ°æ ¼³Á¤Çϱâ
__2.1.2 À¥ ¼¹ö ÅèĹ ¼³Ä¡Çϱâ
__2.1.3 ÅëÇÕ °³¹ß ȯ°æ ÀÌŬ¸³½º ¼³Ä¡Çϱâ
__2.1.4 ½ºÇÁ¸µ °³¹ßÀ» À§ÇÑ STS ¼³Ä¡Çϱâ
2.2 ù ¹ø° ½ºÇÁ¸µ MVC ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Çö
__2.2.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ
__2.2.2 ÇÁ·ÎÁ§Æ® ½ÇÇàÇϱâ
2.3 ¸¶Ä¡¸ç
3Àå ù ¹ø° ½ºÇÁ¸µ MVC ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼®: ¡®µµ¼ ¼îÇθô¡¯ ½ÃÀÛ ÆäÀÌÁö ¸¸µé±â
3.1 ½ºÇÁ¸µ MVCÀÇ ÇÁ·ÎÁ§Æ® ±¸Á¶
__3.1.1 ÇÁ·ÎÁ§Æ® ±¸Á¶
__3.1.2 ÇÁ·ÎÁ§Æ® ½ÇÇà °úÁ¤
3.2 ȯ°æ ¼³Á¤ ÆÄÀÏ »ìÆ캸±â: web.xml
__3.2.1 ³×ÀÓ ½ºÆäÀ̽º¿Í ½ºÅ°¸¶ ¼±¾ð
__3.2.2 ·çÆ® ÄÁÅؽºÆ® ¼³Á¤
__3.2.3 ¼ºí¸´ ÄÁÅؽºÆ® ¼³Á¤
3.3 ½ºÇÁ¸µ MVC ȯ°æ ¼³Á¤ ÆÄÀÏ
__3.3.1 ·çÆ® ÄÁÅؽºÆ® ÆÄÀÏ »ìÆ캸±â: root-context.xml
__3.3.2 ¼ºí¸´ ÄÁÅؽºÆ® ÆÄÀÏ »ìÆ캸±â: servlet-context.xml
3.4 ÄÁÆ®·Ñ·¯: HomeController.java
3.5 ºä: hello.jsp
3.6 ¸ÞÀ̺ì ȯ°æ ¼³Á¤ ÆÄÀÏ: pom.xml
__3.6.1 ÇÁ·ÎÁ§Æ® Á¤º¸:
__3.6.2 ¼Ó¼º Á¤º¸:
__3.6.3 ÀÇÁ¸¼º ¶óÀ̺귯¸® Á¤º¸:
__3.6.4 ºôµå Á¤º¸:
3.7 [½Ç½À] µµ¼ ¼îÇθô ½ÃÀÛ ÆäÀÌÁö ¸¸µé±â
__3.7.1 ½ÃÀÛ ÆäÀÌÁö ¸¸µé±â
__3.7.2 ºÎÆ®½ºÆ®·¦ CSS¸¦ Àû¿ëÇÏ¿© ½ÃÀÛ ÆäÀÌÁö ¸¸µé±â
__3.7.3 ÇÁ·ÎÁ§Æ® ½ÇÇà °æ·Î º¯°æ
3.8 ¸¶Ä¡¸ç
4Àå ½ºÇÁ¸µ MVC ¾ÖÇø®ÄÉÀ̼ÇÀÇ °èÃþÀû ±¸Á¶: ¡®µµ¼ ¼îÇθô¡¯ °èÃþÀû °øÅë ¸ðµâ ¸¸µé±â
4.1 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °èÃþÀû ±¸Á¶
__4.1.1 °èÃþÀû ±¸Á¶
__4.1.2 °èÃþÀû ±¸Á¶ÀÇ ±¸Çö °úÁ¤
4.2 µµ¼ ¼îÇθôÀÇ °èÃþÀû °øÅë ¸ðµâ ¸¸µé±â
__4.2.1 µµ¼ ¼îÇθô ¾ÖÇø®ÄÉÀ̼ÇÀÇ °èÃþÀû ±¸Á¶
__4.2.2 [½Ç½À] µµ¼ ±âº» Á¤º¸°¡ ´ã±ä µµ¸ÞÀÎ °´Ã¼
__4.2.3 [½Ç½À] µµ¼ Á¤º¸¸¦ °ü¸®ÇÏ´Â Æ۽ýºÅϽº °èÃþ
__4.2.4 [½Ç½À] ¿äûÇÑ µµ¼ ¸ñ·ÏÀ» ¹ÝȯÇÏ´Â ¼ºñ½º °èÃþ
__4.2.5 [½Ç½À] MVC¸¦ ´ã´çÇÏ´Â ÇÁ·¹Á¨Å×ÀÌ¼Ç °èÃþ
__4.2.6 [½Ç½À] ½ÇÇà °á°ú È®ÀÎÇϱâ
4.3 ¸¶Ä¡¸ç
5Àå ÄÁÆ®·Ñ·¯ ±¸Çö: ¡®µµ¼ ¼îÇθô¡¯¿¡¼ µµ¼ ¸ñ·Ï Ãâ·ÂÇϱâ
5.1 ÄÁÆ®·Ñ·¯ °³¿ä
__5.1.1 ÄÁÆ®·Ñ·¯
__5.1.2 ÄÁÆ®·Ñ·¯ ±¸Çö °úÁ¤
5.2 ÄÁÆ®·Ñ·¯ Á¤ÀÇ
__5.2.1 @Controller¸¦ ÀÌ¿ëÇÑ ÄÁÆ®·Ñ·¯ Á¤ÀÇ
__5.2.2 ¿ä¼Ò·Î ÄÁÆ®·Ñ·¯ µî·Ï
__5.2.3 [½Ç½À] @Controller·Î ÄÁÆ®·Ñ·¯¸¦ Á¤ÀÇÇÏ¿© µµ¼ ¸ñ·Ï Ãâ·ÂÇϱâ
5.3 @RequestMappingÀ» ÀÌ¿ëÇÑ ¿äû ¸ÅÇÎ °æ·Î ¼³Á¤
__5.3.1 ÄÁÆ®·Ñ·¯¿¡ @RequestMapping Àû¿ë
__5.3.2 [½Ç½À] ÄÁÆ®·Ñ·¯¿¡ @RequestMapping ÀÛ¼ºÇϱâ
__5.3.3 ¸Þ¼µå¿¡ @RequestMapping Àû¿ë
__5.3.4 [½Ç½À] ¸Þ¼µå¿¡ @RequestMapping ÀÛ¼ºÇϱâ
__5.3.5 ¸Þ¼µå ¼öÁØÀÇ @RequestMapping ´Ü¼øÈ
__5.3.6 [½Ç½À] ´Ü¼øÈÇÑ @RequestMapping »ç¿ëÇϱâ
5.4 ¿äû ó¸® ¸Þ¼µå¿Í ¸ðµ¨ À¯Çü
__5.4.1 Model ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÑ ¸Þ¼µå ÀÛ¼º
__5.4.2 ModelMap Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ ¸Þ¼µå ÀÛ¼º
__5.4.3 ModelAndView Ŭ·¡½º¸¦ »ç¿ëÇÑ ¸Þ¼µå ÀÛ¼º
__5.4.4 [½Ç½À] ModelAndView Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© °á°ú ¹ÝȯÇϱâ
5.5 ¸¶Ä¡¸ç
6Àå ¿äû ó¸® ¸Þ¼µåÀÇ ÆĶó¹ÌÅÍ À¯Çü: ´Ù¾çÇÑ Á¶°ÇÀ¸·Î °Ë»öÇÑ µµ¼ ¸ñ·Ï Ãâ·ÂÇϱâ
6.1 °æ·Î º¯¼ö¿Í @PathVariable
__6.1.1 °æ·Î º¯¼öÀÇ °³¿ä
__6.1.2 @PathVariableÀ» ÀÌ¿ëÇÑ °æ·Î º¯¼ö ó¸®
__6.1.3 [½Ç½À] @PathVariableÀ» ÀÌ¿ëÇÏ¿© µµ¼ ºÐ¾ß¿Í ÀÏÄ¡ÇÏ´Â µµ¼ ¸ñ·Ï Ãâ·ÂÇϱâ
6.2 ¸ÅÆ®¸¯½º º¯¼ö¿Í @MatrixVariable
__6.2.1 ¸ÅÆ®¸¯½º º¯¼öÀÇ °³¿ä
__6.2.2 @MatrixVariableÀ» ÀÌ¿ëÇÑ ¸ÅÆ®¸¯½º º¯¼ö ó¸®
__6.2.3 [½Ç½À] @MatrixVariableÀ» ÀÌ¿ëÇÏ¿© ¸ÅÆ®¸¯½º º¯¼ö °ª°ú ÀÏÄ¡ÇÏ´Â µµ¼ ¸ñ·Ï Ãâ·ÂÇϱâ
6.3 ¿äû ÆĶó¹ÌÅÍ¿Í @RequestParam
__6.3.1 ¿äû ÆĶó¹ÌÅÍÀÇ °³¿ä
__6.3.2 @RequestParamÀ» ÀÌ¿ëÇÑ ¿äû ÆĶó¹ÌÅÍ Ã³¸®
__6.3.3 [½Ç½À] @RequestParamÀ» ÀÌ¿ëÇÏ¿© µµ¼ ID¿Í ÀÏÄ¡ÇÏ´Â µµ¼ÀÇ »ó¼¼ Á¤º¸ Ãâ·ÂÇϱâ
6.4 ¸¶Ä¡¸ç
7Àå ½ºÇÁ¸µ Æû ű×: µµ¼ µî·Ï ÆäÀÌÁö ¸¸µé±â
7.1 ½ºÇÁ¸µ Æû ÅÂ±× °³¿ä
__7.1.1 ½ºÇÁ¸µ Æû ű×
__7.1.2 ½ºÇÁ¸µ Æû ÅÂ±× »ç¿ë¹ý
__7.1.3 [½Ç½À] ½ºÇÁ¸µ Æû ű׷Πµµ¼ µî·Ï ÆäÀÌÁö ¸¸µé±â
7.2 @ModelAttribute¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ ¹ÙÀεù
__7.2.1 ¿äû ó¸® ¸Þ¼µåÀÇ ¸Å°³º¯¼ö¿¡ @ModelAttribute Àû¿ë
__7.2.2 ¸Þ¼µå¿¡ @ModelAttribute Àû¿ë
__7.2.3 [½Ç½À] @ModelAttribute¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î µµ¼ µî·ÏÇϱâ
7.3 @InitBinder¸¦ ÀÌ¿ëÇÑ Ä¿½ºÅÒ µ¥ÀÌÅÍ ¹ÙÀεù
__7.3.1 ¸Þ¼µå¿¡ @InitBinder Àû¿ë
__7.3.2 Æû ÆĶó¹ÌÅÍÀÇ Ä¿½ºÅÒ µ¥ÀÌÅÍ ¹ÙÀεù
__7.3.3 [½Ç½À] @InitBinder¸¦ ÀÌ¿ëÇÏ¿© Ä¿½ºÅÒ µ¥ÀÌÅÍ ¹ÙÀεùÇϱâ
7.4 ¸¶Ä¡¸ç
8Àå ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼: ·Î±×ÀÎ/·Î±×¾Æ¿ô ÆäÀÌÁö ¸¸µé±â
8.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ °³¿ä
__8.1.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼
__8.1.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ű×
8.2 Á¢±Ù ±ÇÇÑ°ú »ç¿ëÀÚ ±ÇÇÑ ¼³Á¤
__8.2.1 Á¢±Ù ±ÇÇÑÀ» ¼³Á¤ÇÏ´Â ½ÃÅ¥¸®Æ¼ ű×
__8.2.2 »ç¿ëÀÚ ±ÇÇÑÀ» ¼³Á¤ÇÏ´Â ½ÃÅ¥¸®Æ¼ ű×
8.3 ºä ÆäÀÌÁö¿¡ »ç¿ëÇÏ´Â ½ÃÅ¥¸®Æ¼ ű×
__8.3.1 ±ÇÇÑ Å±×:
__8.3.2 ÀÎÁõ ű×:
__8.3.3 [½Ç½À] ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ű׷Πµµ¼ µî·Ï ÆäÀÌÁö¿¡ Á¢±Ù ±ÇÇÑ ¼³Á¤Çϱâ
8.4 ·Î±×Àΰú ·Î±×¾Æ¿ô ó¸®
__8.4.1 ű×
__8.4.2 ű×
__8.4.3 [½Ç½À] ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ű׷Π·Î±×ÀÎ ÆäÀÌÁö ±¸ÇöÇϱâ
__8.4.4 [½Ç½À] ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ű׷Π·Î±×¾Æ¿ô ÆäÀÌÁö ±¸ÇöÇϱâ
8.5 ¸¶Ä¡¸ç
9Àå ÆÄÀÏ ¾÷·Îµå ó¸®: À̹ÌÁö ÆÄÀÏ ¾÷·ÎµåÇϱâ
9.1 ÆÄÀÏ ¾÷·ÎµåÀÇ °³¿ä
__9.1.1 ÆÄÀÏ ¾÷·Îµå
__9.1.2 ÆÄÀÏ ¾÷·Îµå¸¦ À§ÇÑ À¥ ÆäÀÌÁö
9.2 MultipartFileÀ» »ç¿ëÇÑ ÆÄÀÏ ¾÷·Îµå
__9.2.1 MultipartFile ÀÎÅÍÆäÀ̽ºÀÇ °³¿ä
__9.2.2 ÆÄÀÏ ¾÷·Îµå À¯Çü
__9.2.3 [½Ç½À] ¸®¼Ò½º¸¦ ÀÌ¿ëÇÑ µµ¼ À̹ÌÁö Ãâ·ÂÇϱâ
__9.2.4 [½Ç½À] µµ¼ À̹ÌÁö ÆÄÀÏ ¾÷·ÎµåÇϱâ
9.3 ¸¶Ä¡¸ç
10Àå ¿¹¿Ü ó¸®: µµ¼ °Ë»ö ¿À·ù¿¡ ´ëÇÑ ¿¹¿Ü ó¸®Çϱâ
10.1 ¿¹¿Ü ó¸®ÀÇ °³¿ä
__10.1.1 ¿¹¿Ü ó¸®
__10.1.2 ¿¹¿Ü ó¸® ¹æ¹ýÀÇ Á¾·ù
10.2 @ResponseStatus¸¦ ÀÌ¿ëÇÑ HTTP »óÅ ÄÚµå ±â¹Ý ¿¹¿Ü ó¸®
__10.2.1 HTTP »óÅ ÄÚµåÀÇ °³¿ä
__10.2.2 @ResponseStatus¸¦ ÀÌ¿ëÇÑ ¿¹¿Ü ó¸®
__10.2.3 [½Ç½À] @ResponseStatus¸¦ ÀÌ¿ëÇÏ¿© ¿¹¿Ü ó¸®Çϱâ
10.3 @ExceptionHandler¸¦ ÀÌ¿ëÇÑ ÄÁÆ®·Ñ·¯ ±â¹Ý ¿¹¿Ü ó¸®
__10.3.1 @ExceptionHandler¸¦ ÀÌ¿ëÇÑ ¿¹¿Ü ó¸®
__10.3.2 [½Ç½À] @ExceptionHandler¸¦ ÀÌ¿ëÇÏ¿© ¿¹¿Ü ó¸®Çϱâ
10.4 @ControllerAdvice¸¦ ÀÌ¿ëÇÑ Àü¿ª ¿¹¿Ü ó¸®
__10.4.1 Àü¿ª ¿¹¿Ü 󸮸¦ À§ÇÑ @ControllerAdvice
__10.4.2 [½Ç½À] @ControllerAdvice¸¦ ÀÌ¿ëÇÏ¿© ¿¹¿Ü ó¸®Çϱâ
10.5 ¸¶Ä¡¸ç
11Àå ·Î±× ±â·Ï: ·Î±× ±â·Ï ¸¸µé±â
11.1 Log4j °³¿ä
__11.1.1 ·Î±ë À¯Æ¿¸®Æ¼ Log4j
__11.1.2 Log4jÀÇ ±¸Á¶¿Í ·Î±ë ·¹º§
__11.1.3 ·Î±× ȯ°æ ¼³Á¤ ÆÄÀÏÀÇ ±¸¼º
11.2 ÀÎÅͼÁÅÍ °³¿ä
__11.2.1 ÀÎÅͼÁÅÍ
__11.2.2 ÀÎÅͼÁÅÍ µî·Ï
11.3 ÀÎÅͼÁÅ͸¦ ÀÌ¿ëÇÑ ·Î±× ±â·Ï
__11.3.1 HandlerInterceptor¸¦ ÀÌ¿ëÇÑ ·Î±× ±â·Ï
__11.3.2 [½Ç½À] HandlerInterceptor¸¦ »ç¿ëÇÏ¿© ·Î±× ±â·ÏÇϱâ
__11.3.3 [½Ç½À] ÆÄÀÏ·Î ·Î±× ±â·Ï Ãâ·ÂÇϱâ
__11.3.4 HandlerInterceptorAdapter¸¦ »ç¿ëÇÑ ·Î±× ±â·Ï
__11.3.5 [½Ç½À] HandlerInterceptorAdapter¸¦ »ç¿ëÇÏ¿© ·Î±× ±â·ÏÇϱâ
11.4 ¸¶Ä¡¸ç
12Àå ´Ù±¹¾î ó¸®: µµ¼ µî·Ï ÆäÀÌÁö¿¡¼ ´Ù±¹¾î ÆäÀÌÁö ¸¸µé±â
12.1 ´Ù±¹¾î ó¸®ÀÇ °³¿ä
12.2 MessageSource¸¦ ÀÌ¿ëÇÑ ´Ù±¹¾î ó¸®
__12.2.1 ¸Þ½ÃÁö ¸®¼Ò½º ÆÄÀÏ ÀÛ¼º
__12.2.2 MessageSource ȯ°æ ¼³Á¤
__12.2.3 ºä ÆäÀÌÁö¿¡ ¸Þ½ÃÁö Ãâ·Â
__12.2.4 [½Ç½À] MessageSource¸¦ ÀÌ¿ëÇÏ¿© ´Ù±¹¾î ó¸®Çϱâ
12.3 LocaleResolver¿Í LocaleChangeInterceptor¸¦ ÀÌ¿ëÇÑ ´Ù±¹¾î º¯°æ
__12.3.1 LocaleResolver ȯ°æ ¼³Á¤
__12.3.2 LocaleChangeInterceptor¸¦ ÀÌ¿ëÇÑ ·ÎÄÉÀÏ º¯°æ
__12.3.3 [½Ç½À] LocaleResolver¿Í LocaleChangeInterceptor¸¦ ÀÌ¿ëÇÏ¿© ´Ù±¹¾î º¯°æÇϱâ
12.4 ¸¶Ä¡¸ç
13Àå À¯È¿¼º °Ë»ç: µµ¼ µî·Ï ÆäÀÌÁöÀÇ ¿À·ù ¸Þ½ÃÁöÃâ·ÂÇϱâ
13.1 À¯È¿¼º °Ë»çÀÇ °³¿ä
__13.1.1 À¯È¿¼º °Ë»çÀÇ À¯Çü
__13.1.2 @Valid¸¦ ÀÌ¿ëÇÑ À¯È¿¼º °Ë»ç
13.2 JSR-380À¸·Î À¯È¿¼º °Ë»ç
__13.2.1 JSR-380 ¾Ö³ÊÅ×ÀÌ¼Ç ¼±¾ð
__13.2.2 @Valid¸¦ ÀÌ¿ëÇÑ À¯È¿¼º °Ë»ç
__13.2.3 ű׷Π¿À·ù ¸Þ½ÃÁö Ãâ·Â
__13.2.4 [½Ç½À] JSR-380À» ÀÌ¿ëÇÏ¿© À¯È¿¼º °Ë»çÇϱâ
13.3 »ç¿ëÀÚ Á¤ÀÇ ¾Ö³ÊÅ×À̼ÇÀ¸·Î À¯È¿¼º °Ë»ç
__13.3.1 »ç¿ëÀÚ Á¤ÀÇ ¾Ö³ÊÅ×ÀÌ¼Ç »ý¼º
__13.3.2 ConstraintValidator ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çöü »ý¼º
__13.3.3 [½Ç½À] »ç¿ëÀÚ Á¤ÀÇ ¾Ö³ÊÅ×À̼ÇÀ» ÀÌ¿ëÇÏ¿© À¯È¿¼º °Ë»çÇϱâ
13.4 Validator ÀÎÅÍÆäÀ̽º·Î À¯È¿¼º °Ë»ç
__13.4.1 À¯È¿¼º °Ë»ç °úÁ¤
__13.4.2 Validator ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çöü »ý¼º
__13.4.3 @InitBinder¸¦ ¼±¾ðÇÑ ¸Þ¼µå Ãß°¡
__13.4.4 [½Ç½À] Validator ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© À¯È¿¼º °Ë»çÇϱâ
__13.4.5 [½Ç½À] Validator ÀÎÅÍÆäÀ̽º¿Í JSR-380À» ¿¬µ¿Çؼ À¯È¿¼º °Ë»çÇϱâ
13.5 ¸¶Ä¡¸ç
14Àå RESTful À¥ ¼ºñ½º: Àå¹Ù±¸´Ï ÆäÀÌÁö ¸¸µé±â
14.1 RESTful À¥ ¼ºñ½ºÀÇ °³¿ä
14.2 RESTful ¹æ½ÄÀÇ ¾Ö³ÊÅ×À̼Ç
__14.2.1 @RequestBody
__14.2.2 @ResponseBody
__14.2.3 @RestController
__14.2.4 [½Ç½À] RESTful ¹æ½ÄÀÇ Àå¹Ù±¸´Ï ±âº» ±¸Á¶ ¸¸µé±â
14.3 RESTful À¥ ¼ºñ½ºÀÇ CRUD
__14.3.1 [½Ç½À] RESTful À¥ ¼ºñ½º¸¦ À§ÇÑ Àå¹Ù±¸´Ï CRUD ¸¸µé±â
14.4 ¸¶Ä¡¸ç
15Àå ½ºÇÁ¸µ À¥ Ç÷οì: ÁÖ¹® ó¸® ÆäÀÌÁö ¸¸µé±â
15.1 À¥ Ç÷οìÀÇ °³¿ä
__15.1.1 ½ºÇÁ¸µ À¥ Ç÷οì
__15.1.2 ½ºÇÁ¸µ À¥ Ç÷οìÀÇ Æ¯Â¡
__15.1.3 [½Ç½À] À¥ Ç÷ο츦 Àû¿ëÇÏ´Â ÁÖ¹® ó¸®ÀÇ ±âº» ±¸Á¶ ¸¸µé±â
15.2 À¥ Ç÷οì¿Í MVC ¿¬µ¿À» À§ÇÑ È¯°æ ¼³Á¤
__15.2.1 ½ºÇÁ¸µ À¥ Ç÷οì ȯ°æ ¼³Á¤
__15.2.2 ½ºÇÁ¸µ MVC ȯ°æ ¼³Á¤
__15.2.3 [½Ç½À] À¥ Ç÷οì Àû¿ëÀ» À§ÇÑ È¯°æ ¼³Á¤Çϱâ
15.3 À¥ ÇÃ·Î¿ì ±¸¼º ¿ä¼Ò
__15.3.1 ¿ä¼Ò
__15.3.2 ¿ä¼Ò
__15.3.3 ¿ä¼Ò
__15.3.4 ¿ä¼Ò
__15.3.5 ¿ä¼Ò
__15.3.6 ¿ä¼Ò
__15.3.7 ¿ä¼Ò
__15.3.8 [½Ç½À] ÁÖ¹® 󸮸¦ À§ÇÑ À¥ Ç÷οì Á¤ÀÇ ÆÄÀÏ ¸¸µé±â
__15.3.9 [½Ç½À] ÁÖ¹® 󸮸¦ À§ÇÑ À¥ Ç÷οì ÆäÀÌÁö ÀÛ¼ºÇϱâ
15.4 ¸¶Ä¡¸ç
16Àå ŸÀÏÁî: À¥ ÆäÀÌÁö ¸ðµâÈÇϱâ
16.1 ŸÀÏÁî °³¿ä
__16.1.1 ŸÀÏÁî
__16.1.2 pom.xml ÆÄÀÏ¿¡ ÀÇÁ¸ ¶óÀ̺귯¸® µî·Ï
__16.1.3 servlet-context.xml ÆÄÀÏ¿¡ ŸÀÏÁî ȯ°æ ¼³Á¤
__16.1.4 [½Ç½À] ŸÀÏÁî Àû¿ëÀ» À§ÇÑ È¯°æ ¼³Á¤Çϱâ
16.2 ŸÀÏÁî ·¹À̾ƿô Á¤ÀÇ
__16.2.1 ±âº» ·¹À̾ƿô Á¤ÀÇ
__16.2.2 ŸÀÏÁî ·¹À̾ƿô Á¤ÀÇ ÆÄÀÏ ¸¸µé±â
__16.2.3 ŸÀÏÁî ·¹À̾ƿô ÆäÀÌÁö ¸¸µé±â
__16.2.4 [½Ç½À] ŸÀÏÁî ·¹À̾ƿô Á¤ÀÇÇϱâ
16.3 ŸÀÏÁî¿Í À¥ ÇÃ·Î¿ì ¿¬µ¿
__16.3.1 FlowBuilder ¼ºñ½º ¼³Á¤
__16.3.2 ViewResolver ºó µî·Ï
__16.3.3 [½Ç½À] ½ºÇÁ¸µ À¥ Ç÷ο쿡 ŸÀÏÁî ¿¬µ¿Çϱâ
16.4 ¸¶Ä¡¸ç
17Àå µ¥ÀÌÅͺ£À̽º ¿¬µ¿: µµ¼ ¸ñ·Ï CRUD ó¸®Çϱâ
17.1 µ¥ÀÌÅͺ£À̽º ¼³Ä¡
__17.1.1 MySQL ¼³Ä¡
__17.1.2 MySQL ±âº» ¸í·É¾î
__17.1.3 [½Ç½À] µ¥ÀÌÅͺ£À̽º¿Í Å×ÀÌºí »ý¼º ¹× µ¥ÀÌÅÍ µî·ÏÇϱâ
17.2 JDBC ¿¬µ¿À» À§ÇÑ È¯°æ ¼³Á¤
__17.2.1 pom.xml ÆÄÀÏ¿¡ ÀÇÁ¸ ¶óÀ̺귯¸® µî·Ï
__17.2.2 servlet-context.xml¿¡ µ¥ÀÌÅͺ£À̽º ȯ°æ ¼³Á¤
__17.2.3 [½Ç½À] JDBC ¿¬µ¿À» À§ÇÑ È¯°æ ¼³Á¤Çϱâ
17.3 µ¥ÀÌÅÍ °Ë»ö
__17.3.1 queryForObject() ¸Þ¼µå
__17.3.2 queryForList() ¸Þ¼µå
__17.3.3 query() ¸Þ¼µå
__17.3.4 [½Ç½À] CRUD ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© µµ¼ ¸ñ·Ï Á¶È¸Çϱâ
17.4 µ¥ÀÌÅÍ »ðÀÔ, ¼öÁ¤, »èÁ¦
__17.4.1 »ðÀÔ, ¼öÁ¤, »èÁ¦
__17.4.2 [½Ç½À] CRUD ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ½Å±Ô µµ¼ »ðÀÔÇϱâ
__17.4.3 [½Ç½À] CRUD ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© µµ¼ Á¤º¸ ¼öÁ¤Çϱâ
__17.4.4 [½Ç½À] CRUD ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© µµ¼ »èÁ¦Çϱâ
17.5 ¸¶Ä¡¸ç