ÄÜÅÙÃ÷ »ó¼¼º¸±â
½ºÇÁ¸µ ºÎÆ® ÇÙ½É °¡À̵å


½ºÇÁ¸µ ºÎÆ® ÇÙ½É °¡À̵å

½ºÇÁ¸µ ºÎÆ® ÇÙ½É °¡À̵å

<ÀåÁ¤¿ì> Àú | À§Å°ºÏ½º

Ãâ°£ÀÏ
2022-08-17
ÆÄÀÏÆ÷¸Ë
PDF
¿ë·®
9 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

ÀÔ¹®ÀÚÀÇ ´«³ôÀÌ¿¡ ¸ÂÃç Â÷±ÙÂ÷±Ù µû¶ó Çϸ鼭 ¹è¿ì´Â ½ºÇÁ¸µ ºÎÆ® ÀÔ¹®¼­!

¡¶½ºÇÁ¸µ ºÎÆ® ÇÙ½É °¡À̵塷´Â ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§ ÇÊ¿äÇÑ ±âÃÊÀûÀÎ ³»¿ëµéÀ» ¼Ò°³ÇÏ°í, ½ºÇÁ¸µ¿¡¼­ Á¦°øÇÏ´Â °¢Á¾ ¶óÀ̺귯¸®ÀÇ ±â´ÉµéÀ» ÀÌÇØÇÒ ¼ö ÀÖ°Ô µ¿ÀÛ ¿ø¸®¸¦ »ó¼¼È÷ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¡®½ºÇÁ¸µ ºÎÆ®¡¯´Ù¿î Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ÃÊÁ¡À» ¸ÂÃç ½ºÇÁ¸µ ºÎÆ®¿¡¼­ Á¦°øÇÏ´Â ÆíÀÇ ±â´ÉµéÀ» ÃÖ´ëÇÑ È°¿ëÇÏ°í, ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¾î¶»°Ô ¼³°èÇÏ°í ±¸ÇöÇÏ´ÂÁö ¾È³»ÇÑ´Ù.

ÀúÀÚ¼Ò°³

»ï¼º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 Á¤¸®