µ¿ÀûÀÌ°í °·ÂÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé±â À§ÇÑ ½ºÇÁ¸µ ºÎÆ® ¸¶½ºÅ͸¦ À§ÇÑ ±Ã±ØÀÇ °¡À̵åÀÎ '½ÇÀü ½ºÇÁ¸µ ºÎÆ® À¥ °³¹ß (feat. Java, Thymeleaf, JPA, MySQL, Maven)'¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ °·ÂÇÑ È®ÀåÀÎ ½ºÇÁ¸µ ºÎÆ®´Â Java ±â¹Ý ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ ´ëÇÑ °£¼ÒÈµÈ Á¢±Ù ¹æ½ÄÀ» Á¦°øÇÏ¿© °³¹ßÀÚ°¡ ÇÁ·Î´ö¼Ç¿¡ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ½±°Ô ±¸ÃàÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. ÀÌ Ã¥Àº Ãʱ⠼³Á¤ºÎÅÍ °í±Þ ±â´É±îÁö ¾È³»ÇÏ¿© ½ºÇÁ¸µ ºÎÆ®ÀÇ ÀáÀç·ÂÀ» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
1Àå, '½ºÇÁ¸µ ºÎÆ® °³¹ß ȯ°æ'¿¡¼´Â °³¹ß ¿©Á¤ÀÇ Åä´ë¸¦ ¸¶·ÃÇÕ´Ï´Ù. Java¿Í Spring Tools 4¸¦ ¼³Ä¡ÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù.
2Àå, '½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® ¸¸µé±â'¿¡¼´Â ù ¹ø° ½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ±¸¼ºÇÏ´Â °úÁ¤À» ¾È³»ÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÏ°í, ÆÄÀÏÀ» ±¸¼ºÇÏ°í, ½ÇÇàÇÏ°í, ½ºÇÁ¸µ MVCÀÇ ÇÙ½É ±¸Á¶¿Í Á¾¼Ó¼ºÀ» ÀÌÇØÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.
3Àå, '·Òº¹'¿¡¼´Â »ó¿ë±¸ Äڵ带 ÁÙ¿©ÁÖ´Â Java ¶óÀ̺귯¸®ÀÎ LombokÀ» ¼Ò°³ÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â LombokÀ» ¼³Ä¡ÇÏ°í @Getter, @Setter, @Data, @Builder¿Í °°Àº ´Ù¾çÇÑ ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÏ¿© Äڵ带 °£¼ÒÈÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
4Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ¸ÅÇÎ'¿¡¼´Â HTTP ¿äûÀ» ÄÁÆ®·Ñ·¯ ¸Þ¼µå¿¡ ¸ÅÇÎÇÏ´Â ¸ÞÄ¿´ÏÁòÀ» »ìÆ캾´Ï´Ù. ´Ù¾çÇÑ ¿äû ½Ã³ª¸®¿À¸¦ ó¸®Çϱâ À§ÇÑ °æ·Î ÆÐÅÏ, HTTP ¸Þ¼µå, ÄÜÅÙÃ÷ À¯Çü µî ´Ù¾çÇÑ ¸ÅÇÎ ±â¹ýÀ» »ìÆ캾´Ï´Ù.
5Àå, 'ÄÁÆ®·Ñ·¯ ÀÀ´ä'¿¡¼´Â ÄÁÆ®·Ñ·¯ ¸Þ¼µå¿¡¼ ÀÀ´äÀ» ¸¸µå´Â µ¥ ÁßÁ¡À» µÓ´Ï´Ù. API ÀÀ´äÀ» È¿°úÀûÀ¸·Î ó¸®Çϱâ À§ÇØ void, String, JavaBean Ŭ·¡½º, ´Ù¾çÇÑ ResponseEntity À¯Çü µî ´Ù¾çÇÑ À¯ÇüÀÇ ÀÀ´äÀ» ¹ÝȯÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¼¼¿ä.
6Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ó¸®'¿¡¼´Â ÄÁÆ®·Ñ·¯ ³»¿¡¼ µé¾î¿À´Â ¿äûÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù. ¸Þ¼µå ¸Å°³º¯¼ö¸¦ ó¸®ÇÏ°í, ¿äû µ¥ÀÌÅ͸¦ ó¸®ÇÏ°í, Ajax ½ºÅ¸ÀÏ ¿äûÀ» Æ÷ÇÔÇÑ ¾ç½Ä ¹× ÆÄÀÏ ¾÷·Îµå¸¦ °ü¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸¼¼¿ä.
7Àå, 'µ¥ÀÌÅÍ Àü´ÞÀÚ ¸ðµ¨'¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ µ¥ÀÌÅ͸¦ °ü¸®ÇÏ°í Àü¼ÛÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â ¸ðµ¨ °´Ã¼ÀÇ °³³ä, @ModelAttributeÀÇ »ç¿ë, RedirectAttributes·Î µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù.
8Àå, 'ŸÀÓ¸®ÇÁ'¿¡¼´Â À¥ ÆäÀÌÁö ·»´õ¸µ¿¡ »ç¿ëµÇ´Â ÅÛÇø´ ¿£ÁøÀΠŸÀÓ¸®ÇÁ¿¡ ´ëÇØ ¼Ò°³ÇÕ´Ï´Ù. ÅؽºÆ® »ç¿ë¹ý, Ç¥Çö½Ä, ¼Ó¼º °ª ¼³Á¤, Àç»ç¿ë °¡´ÉÇÑ ÅÛÇø´À» ¸¸µé¾î À¥ ÆäÀÌÁö¸¦ Çâ»ó½ÃÅ°´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
9Àå, '½ºÇÁ¸µ Æû'¿¡¼´Â À¥ ¾ç½ÄÀÇ »ý¼º°ú 󸮸¦ »ìÆ캾´Ï´Ù. ÅؽºÆ® Çʵå, üũ¹Ú½º, ¶óµð¿À ¹öÆ°, ÀÔ·Â À¯È¿¼º °Ë»ç µî ´Ù¾çÇÑ Æû ¿ä¼Ò¸¦ ´Ù·ï È¿°úÀûÀÎ »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» º¸ÀåÇÕ´Ï´Ù.
10Àå, 'ÀÔ·Â À¯È¿¼º °Ë»ç'¿¡¼´Â µ¥ÀÌÅÍ ¹«°á¼ºÀ» À¯ÁöÇϱâ À§ÇÑ »ç¿ëÀÚ ÀÔ·Â À¯È¿¼º °Ë»ç¿¡ ´ëÇØ ÀÚ¼¼È÷ ´Ù·ì´Ï´Ù. ÀÌ Àå¿¡¼´Â À¯È¿¼º °Ë»ç ±ÔÄ¢, °á°ú ¹× »ç¿ëÀÚ Á¤ÀÇ À¯È¿¼º °Ë»ç¸¦ À§ÇÑ ½ºÇÁ¸µ À¯È¿¼º °Ë»ç±â ÀÎÅÍÆäÀ̽º »ç¿ë¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
11Àå, '¸Þ½ÃÁö ó¸®'¿¡¼´Â ±¹Á¦È ¹× ¸Þ½ÃÁö 󸮿¡ ´ëÇØ ´Ù·ì´Ï´Ù. ¸Þ½ÃÁö ¼Ò½º¸¦ Á¤ÀÇÇÏ°í »ç¿ëÇÏ´Â ¹æ¹ý°ú ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¿©·¯ ¾ð¾î¸¦ Áö¿øÇϱâ À§ÇØ ±¹Á¦È¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸¼¼¿ä.
12Àå, 'ÀÇÁ¸¼º ÁÖÀÔ'¿¡¼´Â ½ºÇÁ¸µ ºÎÆ®¿¡¼ ÀÇÁ¸¼º ÁÖÀÔÀÇ ÇÙ½É °³³äÀ» ´Ù·ì´Ï´Ù. ÇÊµå ±â¹Ý, »ý¼ºÀÚ ±â¹Ý, ¼¼ÅÍ ±â¹Ý µî ´Ù¾çÇÑ ÁÖÀÔ ¹æ¹ý°ú ÀÚµ¿ ¿¬°á ±â¼úÀ» »ìÆ캾´Ï´Ù.
13Àå, '¼¼¼Ç°ú ÄíÅ°'¿¡¼´Â »ç¿ëÀÚ ¼¼¼Ç°ú ÄíÅ° °ü¸®¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ·Î±×ÀÎ ¹× ·Î±×¾Æ¿ô ó¸®, Àå¹Ù±¸´Ï ±¸Çö, »ç¿ëÀÚ °ü¸®¸¦ À§ÇÑ ¼¼¼Ç ¼Ó¼º ¹× ÄíÅ° »ç¿ë¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
14Àå, '¿¹¿Ü ó¸®'¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¿À·ù ¹× ¿¹¿Ü 󸮿¡ ´ëÇØ ÁßÁ¡ÀûÀ¸·Î ´Ù·ì´Ï´Ù. ÀÌ Àå¿¡¼´Â »ç¿ëÀÚ Á¤ÀÇ ¾î³ëÅ×À̼Ç, 404 ¿À·ù ó¸®, À¯È¿¼º °Ë»ç ¿¹¿Ü °ü¸® µî ´Ù¾çÇÑ ¿¹¿Ü ó¸® Àü·«À» ´Ù·ì´Ï´Ù.
15Àå, 'ÀÎÅͼÁÅÍ'¿¡¼´Â ¿äû°ú ÀÀ´äÀ» ó¸®Çϱâ À§ÇÑ ÀÎÅͼÁÅÍÀÇ °³³äÀ» ¼Ò°³ÇÕ´Ï´Ù. ¼¼¼Ç °ü¸®, ¾×¼¼½º ·Î±ë, ¿©·¯ ÀÎÅͼÁÅ͸¦ È¿°úÀûÀ¸·Î ó¸®Çϱâ À§ÇØ ÀÎÅͼÁÅ͸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸¼¼¿ä.
16Àå, 'µ¥ÀÌÅͺ£À̽º ¿¬°á'¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÏ´Â ¹æ¹ýÀ» ¾È³»ÇÕ´Ï´Ù. MySQL ¼³Ä¡, µ¥ÀÌÅÍ ¼Ò½º ¼³Á¤À» ´Ù·ç°í ½ºÇÁ¸µ JDBC, JPA, MyBatis¸¦ ºñ·ÔÇÑ ´Ù¾çÇÑ µ¥ÀÌÅͺ£À̽º »óÈ£ ÀÛ¿ë ¹æ¹ýÀ» »ìÆ캾´Ï´Ù.
17Àå, 'JPA'¿¡¼´Â µ¥ÀÌÅͺ£À̽º ¿î¿µÀ» À§ÇÑ Java Persistence API(JPA)¿¡ ´ëÇØ ¼Ò°³ÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â JPA ±¸¼º, ¾î³ëÅ×À̼Ç, ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA, JPQL ¹× Querydsl°ú °°Àº Äõ¸® ¹æ¹ýÀ» ´Ù·ì´Ï´Ù.
18Àå, 'JPA »ç¿ë¹ý'¿¡¼´Â ½ÇÁ¦ JPA ¾ÖÇø®ÄÉÀ̼ÇÀ» È®ÀåÇÕ´Ï´Ù. CRUD ÀÛ¾÷, ÆäÀÌÁö ¸Å±è, °Ë»ö ±â´É, ´Ü¹æÇâ ¹× ¾ç¹æÇâ ¸ÅÇÎÀ» Æ÷ÇÔÇÑ ´Ù¾çÇÑ ¿£Æ¼Æ¼ ¿¬°á¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
19Àå, 'JPA ¿¬°á'¿¡¼´Â °í±Þ ¿£ÅÍƼ ¿¬°áÀ» »ìÆ캾´Ï´Ù. ÀÏ´ë´Ù, ´Ù´ë´Ù, ÀÏ´ëÀÏ ¹× ´Ù´ë´Ù °ü°è¿Í °°Àº ´Ù¾çÇÑ À¯ÇüÀÇ ¿¬°á¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
20Àå, '°Ô½ÃÆÇ ÇÁ·ÎÁ§Æ®'¿¡¼´Â ¿ÏÀüÇÑ °Ô½ÃÆÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â °úÁ¤À» ¾È³»ÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â ¿ÏÀüÇÑ ±â´ÉÀ» °®Ãá °Ô½ÃÆÇÀ» À§ÇÑ ÇÁ·ÎÁ§Æ® ¼³Á¤, °Ô½Ã¹° µî·Ï, µ¥ÀÌÅͺ£À̽º ¿¬°á ¹× CRUD ÀÛ¾÷À» ´Ù·ì´Ï´Ù.
21Àå, 'ÆÄÀÏ ¾÷·Îµå'¿¡¼´Â ÆÄÀÏ ¾÷·Îµå¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» »ìÆ캾´Ï´Ù. À̹ÌÁö ¾÷·Îµå, ¿©·¯ ÆÄÀÏ ¾÷·Îµå, ºñµ¿±â ¾÷·Îµå¿¡ ´ëÇØ »ìÆ캸°í ÆÄÀÏ Ã³¸®ÀÇ ÀϹÝÀûÀÎ ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù.
22Àå, 'AOP'¿¡¼´Â Ⱦ´Ü °ü½É»ç ¹®Á¦¸¦ °ü¸®Çϱâ À§ÇÑ °üÁ¡ ÁöÇâ ÇÁ·Î±×·¡¹Ö(AOP)À» ¼Ò°³ÇÕ´Ï´Ù. Æ÷ÀÎÆ®ÄÆ Ç¥Çö½Ä°ú Before ¾îµå¹ÙÀ̽º, After ¾îµå¹ÙÀ̽º, Around ¾îµå¹ÙÀ̽º¿Í °°Àº ´Ù¾çÇÑ À¯ÇüÀÇ ¾îµå¹ÙÀ̽º¿¡ ´ëÇØ ¾Ë¾Æº¸¼¼¿ä.
23Àå, 'Æ®·£Àè¼Ç'¿¡¼´Â µ¥ÀÌÅÍ ÀÏ°ü¼ºÀ» º¸ÀåÇϱâ À§ÇÑ Æ®·£Àè¼Ç °ü¸®¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. µ¥ÀÌÅÍ ÀÛ¾÷À» È¿°úÀûÀ¸·Î °ü¸®Çϱâ À§ÇÑ Æ®·£Àè¼Ç ±¸¼º°ú Àû¿ë¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
24Àå, '½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼'¿¡¼´Â ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È¿¡ ´ëÇÑ °³¿ä¸¦ Á¦°øÇÕ´Ï´Ù. ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ±¸¼º, Á¢±Ù Á¦ÇÑ, ·Î±×ÀΠó¸®, JDBC ±â¹Ý ÀÎÁõÀ» Æ÷ÇÔÇÑ »ç¿ëÀÚ Á¤ÀÇ º¸¾È Çڵ鷯¸¦ ´Ù·ì´Ï´Ù.
25Àå, '½ÇÁ¦ ÇÁ·ÎÁ§Æ®'¿¡¼´Â ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ Áö½ÄÀ» ÅëÇÕÇÕ´Ï´Ù. MVC ¼³Á¤, ¸Þ½ÃÁö ó¸®, º¸¾È ±¸Çö, ·Î±ë µî ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇÏ¿© ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷·Î ¸¶¹«¸®ÇÕ´Ï´Ù.
ÀÌ Ã¥Àº ½ºÇÁ¸µ ºÎÆ®·Î °·ÂÇÏ°í È®Àå °¡´ÉÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇϱâ À§ÇÑ ·Îµå¸ÊÀÔ´Ï´Ù. Ãʺ¸ÀÚÀÌµç ¼÷·ÃµÈ °³¹ßÀÚÀ̵ç ÀÌ Ã¥À» ÅëÇØ °íÇ°Áú Java ±â¹Ý À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â µ¥ ÇÊ¿äÇÑ ±â¼ú°ú Áö½ÄÀ» ½ÀµæÇÒ ¼ö ÀÖ½À´Ï´Ù.