ÀÔ¹®ÀÚÀÇ ´«³ôÀÌ¿¡ ¸ÂÃç Â÷±ÙÂ÷±Ù µû¶ó ÇÏ¸é¼ ¹è¿ì´Â ½ºÇÁ¸µ ºÎÆ® ÀÔ¹®¼!¡¶½ºÇÁ¸µ ºÎÆ® ÇÙ½É °¡À̵塷´Â ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ ³»¿ëµéÀ» ¼Ò°³ÇÏ°í, ½ºÇÁ¸µ¿¡¼ Á¦°øÇÏ´Â °¢Á¾ ¶óÀ̺귯¸®ÀÇ ±â´ÉµéÀ» ÀÌÇØÇÒ ¼ö ÀÖ°Ô µ¿ÀÛ ¿ø¸®¸¦ »ó¼¼È÷ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¡®½ºÇÁ¸µ ºÎÆ®¡¯´Ù¿î Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ÃÊÁ¡À» ¸ÂÃç ½ºÇÁ¸µ ºÎÆ®¿¡¼ Á¦°øÇÏ´Â ÆíÀÇ ±â´ÉµéÀ» ÃÖ´ëÇÑ È°¿ëÇÏ°í, ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¾î¶»°Ô ¼³°èÇÏ°í ±¸ÇöÇÏ´ÂÁö ¾È³»ÇÑ´Ù.
»ï¼ºSDS¿¡¼ ÀÎÇÁ¶ó ¿£Áö´Ï¾î ¹× ¹é¿£µå °³¹ßÀÚ·Î ±Ù¹«ÇßÀ¸¸ç, ÇöÀç´Â À§´ëÇÑ»ó»ó¿¡¼ °áÁ¦ ½Ã½ºÅÛ °³¹ß ¾÷¹«¸¦ ´ã´çÇÏ°í ÀÖ´Ù. ±×¸®°í À¯Æ©ºê ¡´¾î¶ó¿îµåÇãºê ½ºÆ©µð¿À¡µ¸¦ ¿î¿µÇÏ¸é¼ ÇÁ·Î±×·¡¹Ö Á¤º¸¸¦ °øÀ¯ÇÏ°í ÀÖ´Ù.
01Àå: ½ºÇÁ¸µ ºÎÆ®¶õ? 1.1 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© __1.1.1 Á¦¾î ¿ªÀü(IoC) __1.1.2 ÀÇÁ¸¼º ÁÖÀÔ(DI) __1.1.3 °üÁ¡ ÁöÇâ ÇÁ·Î±×·¡¹Ö(AOP) __1.1.4 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ´Ù¾çÇÑ ¸ðµâ 1.2 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© vs. ½ºÇÁ¸µ ºÎÆ® __1.2.1 ÀÇÁ¸¼º °ü¸® __1.2.2 ÀÚµ¿ ¼³Á¤ __1.2.3 ³»Àå WAS __1.2.4 ¸ð´ÏÅ͸µ 02Àå: °³¹ß¿¡ ¾Õ¼ ¾Ë¸é ÁÁÀº ±âÃÊ Áö½Ä 2.1 ¼¹ö °£ Åë½Å 2.2 ½ºÇÁ¸µ ºÎÆ®ÀÇ µ¿ÀÛ ¹æ½Ä 2.3 ·¹À̾îµå ¾ÆÅ°ÅØó 2.4 µðÀÚÀÎ ÆÐÅÏ __2.4.1 µðÀÚÀÎ ÆÐÅÏÀÇ Á¾·ù __2.4.2 »ý¼º ÆÐÅÏ __2.4.3 ±¸Á¶ ÆÐÅÏ __2.4.4 ÇàÀ§ ÆÐÅÏ 2.5 REST API __2.5.1 REST¶õ? __2.5.2 REST API¶õ? __2.5.3 RESTÀÇ Æ¯Â¡ __2.5.4 RESTÀÇ URI ¼³°è ±ÔÄ¢ 03Àå: °³¹ß ȯ°æ ±¸¼º 3.1 ÀÚ¹Ù JDK ¼³Ä¡ 3.2 ÀÎÅÚ¸®Á¦ÀÌ IDEA ¼³Ä¡ 04Àå: ½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÇϱâ 4.1 ÇÁ·ÎÁ§Æ® »ý¼º __4.1.1 ÀÎÅÚ¸®Á¦ÀÌ IDEA¿¡¼ ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ __4.1.2 ½ºÇÁ¸µ °ø½Ä »çÀÌÆ®¿¡¼ ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ 4.2 pom.xml(Project Object Model) »ìÆ캸±â __4.2.1 ºôµå °ü¸® µµ±¸ __4.2.2 ¸ÞÀ̺ì __4.3 Hello World Ãâ·ÂÇϱâ __4.3.1 ÄÁÆ®·Ñ·¯ ÀÛ¼ºÇϱâ __4.3.2 ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱâ __4.3.3 À¥ ºê¶ó¿ìÀú¸¦ ÅëÇÑ µ¿ÀÛ Å×½ºÆ® __4.3.4 Talend API Tester¸¦ ÅëÇÑ µ¿ÀÛ Å×½ºÆ® 05Àå: API¸¦ ÀÛ¼ºÇÏ´Â ´Ù¾çÇÑ ¹æ¹ý 5.1 ÇÁ·ÎÁ§Æ® ¼³Á¤ 5.2 GET API ¸¸µé±â __5.2.1 @RequestMappingÀ¸·Î ±¸ÇöÇϱâ __5.2.2 ¸Å°³º¯¼ö°¡ ¾ø´Â GET ¸Þ¼µå ±¸Çö __5.2.3 @PathVariableÀ» È°¿ëÇÑ GET ¸Þ¼µå ±¸Çö __5.2.4 @RequestParamÀ» È°¿ëÇÑ GET ¸Þ¼µå ±¸Çö __5.2.5 DTO °´Ã¼¸¦ È°¿ëÇÑ GET ¸Þ¼µå ±¸Çö 5.3 POST API ¸¸µé±â __5.3.1 @RequestMappingÀ¸·Î ±¸ÇöÇϱâ __5.3.2 @RequestBody¸¦ È°¿ëÇÑ POST ¸Þ¼µå ±¸Çö 5.4 PUT API ¸¸µé±â __5.4.1 @RequestBody¸¦ È°¿ëÇÑ PUT ¸Þ¼µå ±¸Çö __5.4.2 ResponseEntity¸¦ È°¿ëÇÑ PUT ¸Þ¼µå ±¸Çö 5.5 DELETE API ¸¸µé±â __5.5.1 @PathVariable°ú @RequestParamÀ» È°¿ëÇÑ DELETE ¸Þ¼µå ±¸Çö 5.6 [ ÇÑ°ÉÀ½ ´õ ] REST API ¸í¼¼¸¦ ¹®¼ÈÇÏ´Â ¹æ¹ý - Swagger 5.7 [ ÇÑ°ÉÀ½ ´õ ] ·Î±ë ¶óÀ̺귯¸® - Logback __5.7.1 Logback ¼³Á¤ __5.7.2 Logback Àû¿ëÇϱâ 5.8 Á¤¸® 06Àå: µ¥ÀÌÅͺ£À̽º ¿¬µ¿ 6.1 ¸¶¸®¾ÆDB ¼³Ä¡ 6.2 ORM 6.3 JPA 6.4 ÇÏÀ̹ö³×ÀÌÆ® __6.4.1 Spring Data JPA 6.5 ¿µ¼Ó¼º ÄÁÅؽºÆ® __6.5.1 ¿£Æ¼Æ¼ ¸Å´ÏÀú __6.5.2 ¿£Æ¼Æ¼ÀÇ »ý¸íÁÖ±â 6.6 µ¥ÀÌÅͺ£À̽º ¿¬µ¿ __6.6.1 ÇÁ·ÎÁ§Æ® »ý¼º 6.7 ¿£Æ¼Æ¼ ¼³°è __6.7.1 ¿£Æ¼Æ¼ °ü·Ã ±âº» ¾î³ëÅ×ÀÌ¼Ç 6.8 ¸®Æ÷ÁöÅ丮 ÀÎÅÍÆäÀ̽º ¼³°è __6.8.1 ¸®Æ÷ÁöÅ丮 ÀÎÅÍÆäÀ̽º »ý¼º __6.8.2 ¸®Æ÷ÁöÅ丮 ¸Þ¼µåÀÇ »ý¼º ±ÔÄ¢ 6.9 DAO ¼³°è __6.9.1 DAO Ŭ·¡½º »ý¼º 6.10 DAO ¿¬µ¿À» À§ÇÑ ÄÁÆ®·Ñ·¯¿Í ¼ºñ½º ¼³°è __6.10.1 ¼ºñ½º Ŭ·¡½º ¸¸µé±â __6.10.2 ÄÁÆ®·Ñ·¯ »ý¼º __6.10.3 Swagger API¸¦ ÅëÇÑ µ¿ÀÛ È®ÀÎ 6.11 [ÇÑ°ÉÀ½ ´õ] ¹Ýº¹µÇ´Â ÄÚµåÀÇ ÀÛ¼ºÀ» »ý·«ÇÏ´Â ¹æ¹ý - ·Òº¹ __6.11.1 ·Òº¹ ¼³Ä¡ __6.11.2 ·Òº¹ Àû¿ë __6.11.3 ·Òº¹ÀÇ ÁÖ¿ä ¾î³ëÅ×ÀÌ¼Ç 07Àå: Å×½ºÆ® ÄÚµå ÀÛ¼ºÇϱâ 7.1 Å×½ºÆ® Äڵ带 ÀÛ¼ºÇÏ´Â ÀÌÀ¯ 7.2 ´ÜÀ§ Å×½ºÆ®¿Í ÅëÇÕ Å×½ºÆ® __7.2.1 ´ÜÀ§ Å×½ºÆ®ÀÇ Æ¯Â¡ __7.2.2 ÅëÇÕ Å×½ºÆ®ÀÇ Æ¯Â¡ 7.3 Å×½ºÆ® Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý __7.3.1 Given-When-Then ÆÐÅÏ __7.3.2 ÁÁÀº Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â 5°¡Áö ¼Ó¼º(F.I.R.S.T) 7.4 JUnitÀ» È°¿ëÇÑ Å×½ºÆ® ÄÚµå ÀÛ¼º __7.4.1 JUnitÀÇ ¼¼ºÎ ¸ðµâ __7.4.2 ½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® »ý¼º __7.4.3 ½ºÇÁ¸µ ºÎÆ®ÀÇ Å×½ºÆ® ¼³Á¤ __7.4.4 JUnitÀÇ »ý¸íÁÖ±â __7.4.5 ½ºÇÁ¸µ ºÎÆ®¿¡¼ÀÇ Å×½ºÆ® __7.4.6 ÄÁÆ®·Ñ·¯ °´Ã¼ÀÇ Å×½ºÆ® __7.4.7 ¼ºñ½º °´Ã¼ÀÇ Å×½ºÆ® __7.4.8 ¸®Æ÷ÁöÅ丮 °´Ã¼ÀÇ Å×½ºÆ® 7.5 JaCoCo¸¦ È°¿ëÇÑ Å×½ºÆ® Ä¿¹ö¸®Áö È®ÀÎ __7.5.1 JaCoCo Ç÷¯±×ÀÎ ¼³Á¤ __7.5.2 JaCoCo Å×½ºÆ® Ä¿¹ö¸®Áö È®ÀÎ 7.6 Å×½ºÆ® ÁÖµµ °³¹ß(TDD) __7.6.1 Å×½ºÆ® ÁÖµµ °³¹ßÀÇ °³¹ß ÁÖ±â __7.6.2 Å×½ºÆ® ÁÖµµ °³¹ßÀÇ È¿°ú 7.7 Á¤¸® 08Àå: Spring Data JPA È°¿ë 8.1 ÇÁ·ÎÁ§Æ® »ý¼º 8.2 JPQL 8.3 Äõ¸® ¸Þ¼µå »ìÆ캸±â __8.3.1 Äõ¸® ¸Þ¼µåÀÇ »ý¼º __8.3.2 Äõ¸® ¸Þ¼µåÀÇ ÁÖÁ¦ Å°¿öµå __8.3.3 Äõ¸® ¸Þ¼µåÀÇ Á¶°ÇÀÚ Å°¿öµå 8.4 Á¤·Ä°ú ÆäÀÌ¡ ó¸® __8.4.1 Á¤·Ä ó¸®Çϱâ __8.4.2 ÆäÀÌ¡ ó¸® 8.5 @Query ¾î³ëÅ×ÀÌ¼Ç »ç¿ëÇϱâ 8.6 QueryDSL Àû¿ëÇϱâ __8.6.1 QueryDSLÀ̶õ? __8.6.2 QueryDSLÀÇ ÀåÁ¡ __8.6.3 QueryDSLÀ» »ç¿ëÇϱâ À§ÇÑ ÇÁ·ÎÁ§Æ® ¼³Á¤ __8.6.4 ±âº»ÀûÀÎ QueryDSL »ç¿ëÇϱâ __8.6.5 QuerydslPredicateExecutor, QuerydslRepositorySupport È°¿ë 8.7 [ ÇÑ°ÉÀ½ ´õ ] JPA Auditing Àû¿ë __8.7.1 JPA Auditing ±â´É È°¼ºÈ __8.7.2 BaseEntity ¸¸µé±â 8.8 Á¤¸® 09Àå: ¿¬°ü°ü°è ¸ÅÇÎ 9.1 ¿¬°ü°ü°è ¸ÅÇÎ Á¾·ù¿Í ¹æÇâ 9.2 ÇÁ·ÎÁ§Æ® »ý¼º 9.3 ÀÏ´ëÀÏ ¸ÅÇÎ __9.3.1 ÀÏ´ëÀÏ ´Ü¹æÇâ ¸ÅÇÎ __9.3.2 ÀÏ´ëÀÏ ¾ç¹æÇâ ¸ÅÇÎ 9.4 ´Ù´ëÀÏ, ÀÏ´ë´Ù ¸ÅÇÎ __9.4.1 ´Ù´ëÀÏ ´Ü¹æÇâ ¸ÅÇÎ __9.4.2 ´Ù´ëÀÏ ¾ç¹æÇâ ¸ÅÇÎ __9.4.3 ÀÏ´ë´Ù ´Ü¹æÇâ ¸ÅÇÎ 9.5 ´Ù´ë´Ù ¸ÅÇÎ __9.5.1 ´Ù´ë´Ù ´Ü¹æÇâ ¸ÅÇÎ __9.5.2 ´Ù´ë´Ù ¾ç¹æÇâ ¸ÅÇÎ 9.6 ¿µ¼Ó¼º ÀüÀÌ __9.6.1 ¿µ¼Ó¼º ÀüÀÌ Àû¿ë __9.6.2 °í¾Æ °´Ã¼ 9.7 Á¤¸® 10Àå: À¯È¿¼º °Ë»ç¿Í ¿¹¿Ü ó¸® 10.1 ÀϹÝÀûÀÎ ¾ÖÇø®ÄÉÀÌ¼Ç À¯È¿¼º °Ë»çÀÇ ¹®Á¦Á¡ 10.2 Hibernate Validator 10.3 ½ºÇÁ¸µ ºÎÆ®¿¡¼ÀÇ À¯È¿¼º °Ë»ç __10.3.1 ÇÁ·ÎÁ§Æ® »ý¼º __10.3.2 ½ºÇÁ¸µ ºÎÆ®¿ë À¯È¿¼º °Ë»ç °ü·Ã ÀÇÁ¸¼º Ãß°¡ __10.3.3 ½ºÇÁ¸µ ºÎÆ®ÀÇ À¯È¿¼º °Ë»ç __10.3.4 @Validated È°¿ë __10.3.5 Ä¿½ºÅÒ Validation Ãß°¡ 10.4 ¿¹¿Ü ó¸® __10.4.1 ¿¹¿Ü¿Í ¿¡·¯ __10.4.2 ¿¹¿Ü Ŭ·¡½º __10.4.3 ¿¹¿Ü ó¸® ¹æ¹ý __10.4.4 ½ºÇÁ¸µ ºÎÆ®ÀÇ ¿¹¿Ü ó¸® ¹æ½Ä __10.4.5 Ä¿½ºÅÒ ¿¹¿Ü __10.4.6 Ä¿½ºÅÒ ¿¹¿Ü Ŭ·¡½º »ý¼ºÇϱâ 11Àå: ¾×Ãß¿¡ÀÌÅÍ È°¿ëÇϱâ 11.1 ÇÁ·ÎÁ§Æ® »ý¼º ¹× ¾×Ãß¿¡ÀÌÅÍ Á¾¼Ó¼º Ãß°¡ 11.2 ¿£µåÆ÷ÀÎÆ® 11.3 ¾×Ãß¿¡ÀÌÅÍ ±â´É »ìÆ캸±â __11.3.1 ¾ÖÇø®ÄÉÀÌ¼Ç ±âº» Á¤º¸(/info) __11.3.2 ¾ÖÇø®ÄÉÀÌ¼Ç »óÅÂ(/health) __11.3.3 ºó Á¤º¸ È®ÀÎ(/beans) __11.3.4 ½ºÇÁ¸µ ºÎÆ®ÀÇ ÀÚµ¿¼³Á¤ ³»¿ª È®ÀÎ(/conditions) __11.3.5 ½ºÇÁ¸µ ȯ°æº¯¼ö Á¤º¸(/env) __11.3.6 ·Î±ë ·¹º§ È®ÀÎ(/loggers) 11.4 ¾×Ãß¿¡ÀÌÅÍ¿¡ Ä¿½ºÅÒ ±â´É ¸¸µé±â __11.4.1 Á¤º¸ Á¦°ø ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çöü »ý¼º __11.4.2 Ä¿½ºÅÒ ¿£µåÆ÷ÀÎÆ® »ý¼º 12Àå: ¼¹ö °£ Åë½Å 12.1 RestTemplateÀ̶õ? __12.1.1 RestTemplateÀÇ µ¿ÀÛ ¿ø¸® __12.1.2 RestTemplateÀÇ ´ëÇ¥ÀûÀÎ ¸Þ¼µå 12.2 RestTemplate »ç¿ëÇϱâ __12.2.1 ¼¹ö ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ __12.2.2 RestTemplate ±¸ÇöÇϱâ __12.2.3 RestTemplate Ä¿½ºÅÒ ¼³Á¤ 12.3 WebClient¶õ? __12.3.1 WebClient ±¸¼º 12.4 WebClient »ç¿ëÇϱâ __12.4.1 WebClient ±¸Çö 12.5 Á¤¸® 13Àå: ¼ºñ½ºÀÇ ÀÎÁõ°ú ±ÇÇÑ ºÎ¿© 13.1 º¸¾È ¿ë¾î ÀÌÇØ __13.1.1 ÀÎÁõ __13.1.2 Àΰ¡ __13.1.3 Á¢±Ù ÁÖü 13.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ 13.3 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ÀÇ µ¿ÀÛ ±¸Á¶ 13.4 JWT __13.4.1 JWTÀÇ ±¸Á¶ __13.4.2 JWT µð¹ö°Å »ç¿ëÇϱâ 13.5 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¿Í JWT Àû¿ë __13.5.1 UserDetails¿Í UserDetailsService ±¸Çö __13.5.2 JwtTokenProvider ±¸Çö __13.5.3 JwtAuthenticationFilter ±¸Çö __13.5.4 SecurityConfiguration ±¸Çö __13.5.5 Ä¿½ºÅÒ AccessDeniedHandler, AuthenticationEntryPoint ±¸Çö __13.5.6 ȸ¿ø°¡ÀÔ°ú ·Î±×ÀÎ ±¸Çö __13.5.7 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ Å×½ºÆ® 13.6 Á¤¸®