ÄÁÅÙÃ÷»ó¼¼º¸±â

½ºÇÁ¸µ ºÎÆ®·Î ¹è¿ì´Â ÀÚ¹Ù À¥ °³¹ß
½ºÇÁ¸µ ºÎÆ®·Î ¹è¿ì´Â ÀÚ¹Ù À¥ °³¹ß
  • ÀúÀÚÀ±¼®Áø Àú
  • ÃâÆÇ»çÁ¦ÀÌÆà
  • ÃâÆÇÀÏ2020-01-02
  • µî·ÏÀÏ2020-12-21
º¸À¯ 1, ´ëÃâ 0, ¿¹¾à 0, ´©Àû´ëÃâ 5, ´©Àû¿¹¾à 0

Ã¥¼Ò°³

ÀÚ¹Ù ±â¹ÝÀÇ À¥ ¼­ºñ½º¸¦ °¡Àå ½±°í ºü¸£°Ô ¹è¿î´Ù!

½ÃÁß¿¡´Â ÀÚ¹Ù À¥ °³¹ßÀÚ¸¦ À§ÇÑ ½ºÇÁ¸µ°ú JSP °ü·Ã ¼­ÀûÀÌ ¸¹ÀÌ ³ª¿Í ÀÖ±ä ÇÏÁö¸¸, ÀÔ¹®ÀÚ°¡ ³¡±îÁö µû¶ó ÇÒ ¸¸ÇÑ Ã¥Àº ¸¹Áö ¾Ê½À´Ï´Ù. ÀÌ Ã¥Àº µ¶ÀÚµéÀÌ ÀÚ¹Ù ±â¹ÝÀÇ À¥ ¼­ºñ½º¸¦ ¸¸µé°Å³ª °øºÎÇÒ ¶§ °¡Àå ½±°Ô µû¶ó ÇÒ ¼ö ÀÖµµ·Ï ÁýÇʵǾú½À´Ï´Ù. ÀÚ¹Ù À¥ °³¹ß ȯ°æ¿¡ ´ëÇÑ ±âÃÊ ¼³¸í°ú °³¹ß¿¡ ÇÊ¿äÇÑ Çʼö ±â¼úÀ» ´Ù·ç¸ç, ³ª¾Æ°¡ ¸ð´ÏÅ͸µ ¹× Çì·ÎÄí¸¦ ÀÌ¿ëÇÑ Å¬¶ó¿ìµå ¹èÆ÷±îÁö À¥ ¼­ºñ½º¿¡ ÇÊ¿äÇÑ Àü¹ÝÀûÀÎ ³»¿ëÀ» ´ã°í ÀÖ½À´Ï´Ù.

¸ñÂ÷

CHAPTER 1 °³¹ß È¯°æÀÇ º¯È­¿Í ÀÚ¹Ù ¡¤ 1
1.1 ÀÎÇÁ¶ó¿Í ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ º¯È­ 3
1.1.1 ¾ÆÅ°ÅØóÀÇ º¯È­ 3
1.1.2 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ º¯È­ 5
1.2 À¥ ¾ÖÇø®ÄÉÀ̼ǠÄÁÅ×À̳ʠ6
1.2.1 ÀÚ¹Ù °³¹ßÀ» À§ÇØ ²À ÇÊ¿äÇѠŬ·¡½º ·Î´õ 6
1.3 WAR ÆÄÀÏÀǠƯ¼º 8

CHAPTER 2 ¼­ºí¸´ ¡¤ 11
2.1 ¼­ºí¸´ ½ÃÀÛÇϱâ 13
2.1.1 ¼­ºí¸´ ¼³Á¤ 13
2.2 ¼­ºí¸´ ³»ºÎ µ¿ÀÛ 16
2.2.1 ¼­ºí¸´ÀÇ »ý¸íÁÖ±â 16
2.3 ¼­ºí¸´ È°¿ë 20
2.3.1 HTTP ¿äû°ú ÀÀ´ä 20
2.3.2 ¸ÖƼÆÄÆ® 24
2.4 ¼­ºí¸´ °ü·Ã °´Ã¼µé 28
2.4.1 ÇÊÅÍ 28
2.4.2 ÄíÅ° 30
2.4.3 ¼¼¼Ç 36
2.5 µðÀÚÀΠÆÐÅÏ È°¿ë 40
2.5.1 Java EE ÆÐÅÏ 40
2.5.2 ÇÁ·ÐÆ® ÄÁÆ®·Ñ·¯ ÆÐÅÏ 41

CHAPTER 3 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© ¡¤ 49
3.1 ºó   ÄÁÅ×À̳ʠ51
3.2 IoC ÆÐÅÏ È°¿ë 52
3.2.1 ÀÎÅÍÆäÀ̽º¿Í ½ºÇÁ¸µ 53
3.2.2 ½ºÇÁ¸µ XML ¼³Á¤ 56
3.2.3 ½ºÇÁ¸µ JavaConfig ¼³Á¤ 63
3.3 ½ºÇÁ¸µ MVC 69
3.3.1 ½ºÇÁ¸µ MVC ±¸Á¶ 69
3.3.2 ½ºÇÁ¸µ MVC ¼³Á¤ 70
3.3.3 DispatcherServlet ¼³Á¤ 72
3.3.4 ÄÁÆ®·Ñ·¯¿Í ºä 73
3.3.5 ÀÎÅͼÁÅÍ 75

CHAPTER 4 ½ºÇÁ¸µ ºÎÆ® À¥ °³¹ß ¡¤ 81
4.1 ½ºÇÁ¸µ ºÎÆ®¿¡ ´ëÇÑ ÀÌÇØ 83
4.1.1 ½ºÇÁ¸µ ºÎÆ®ÀÇ ÇÁ·ÎÁ§Æ® ·¹À̾ƿô 83
4.1.2 ½ºÇÁ¸µ ºÎÆ® ½ÇÇàÇϱâ 84
4.2 Á¤Àû ÀÚ¿ø °ü¸® 94
4.2.1 Á¤Àû ÀÚ¿ø ±âº» ¼³Á¤ 94
4.2.2 À¥ ¸®¼Ò½º Æú´õ ¼³Á¤ 96
4.3 ÅÛÇø´ ¿£Áø 100
4.3.1 Å¸ÀÓ¸®ÇÁ Àû¿ë 101
4.3.2 Å¸ÀÓ¸®ÇÁ ¼Ó¼º 102
4.4 WebJars¸¦ ÀÌ¿ëÇÑ ÇÁ·ÐÆ®¶óÀ̺귯¸® °ü¸® 108
4.4.1 WebJars Àû¿ë 109
4.4.2 ÀÎÅͼÁÅÍ È°¿ë 113

CHAPTER 5 REST API ¼­¹ö ¸¸µé±â ¡¤ 117
5.1 REST 119
5.1.1 RESTÀǠƯ¼º°ú ±ÔÄ¢ 119
5.2 ¸®¼Ò½º 121
5.2.1 ¸®¼Ò½ºÀÇ ±¸ºÐ 121
5.3 REST API ¸¸µé±â 122
5.3.1 REST ÄÁÆ®·Ñ·¯ È°¿ë 122
5.3.2 REST API¿¡¼­ HTTP Method »ç¿ë 125
5.3.3 ½ºÇÁ¸µ¿¡¼­ URI ÅÛÇø´ È°¿ë 127
5.4 HATEOS¸¦ ÀÌ¿ëÇÑ ÀÚ±âÁÖ¼ÒÁ¤º¸ Ç¥Çö 128
5.4.1 HATEOS¸¦ ÀÌ¿ëÇÑ URI Á¤º¸ Ç¥Çö 129
5.5 REST API ¹®¼­È­ 131
5.5.1 swagger ¼³Á¤ ¹× ¶óÀ̺귯¸® Ãß°¡ 131
5.5.2 ÄÁÆ®·Ñ·¯ URL °æ·Î ¼³Á¤ 133
5.5.3 HTTP ¸Þ¼­µåº° È®ÀΠ134
5.5.4 ÆĶó¹ÌÅÍ °ËÁõ 136
5.6 REST Å¬¶óÀ̾ðÆ® °³¹ß 137
5.6.1 RestTemplate 137
5.6.2 UriComponentsBuilder È°¿ë 139
5.6.3 HTTP ¸Þ¼­µåº° RestTemplate ¸Þ¼­µå ¸í¼¼ 141

CHAPTER 6 ½ºÇÁ¸µ ºÎÆ®¿Í µ¥ÀÌÅÍ ¡¤ 149
6.1 µ¥ÀÌÅͺ£À̽º ÇÁ·Î±×·¡¹Ö 151
6.1.1 ÇÁ·ÎÁ§Æ® ±¸¼º 151
6.2 ORM µµ±¸ÀÇ È°¿ë 152
6.2.1 Spring Data JPA 153
6.2.2 µ¥ÀÌÅͺ£À̽º¿Í °´Ã¼ ¸ÅÇΠ156
6.2.3 ¿¬°ü °ü°è 163
6.3 QueryDSLÀ» ÀÌ¿ëÇÑ Type SafeÇÑ Äõ¸® ÀÛ¼º 172
6.3.1 QueryDSL ¼³Á¤ 172
6.3.2 QueryDslRepositorySupport È°¿ë 176
6.4 Äõ¸® ¸ÅÆÛ 182
6.4.1 MyBatis 182
6.4.2 MyBatis¸¦ ÀÌ¿ëÇÑ Äõ¸® ½ÇÇà 186
6.4.3 ¸í½ÃÀûÀΠDataSource ÁöÁ¤ 193
6.5 µ¥ÀÌÅͺ£À̽º ¼­¹ö¿Í ¿¬µ¿ 195
6.5.1 MariaDB ¼³Ä¡ 195
6.5.2 MariaDB client µµ±¸¸¦ ÀÌ¿ëÇÑ ¼­¹ö Á¢¼Ó 197
6.6 Database Connection pool ¼³Á¤ 199
6.6.1 HikariCP 200
6.6.2 MyBatis¿Í MariaDB ¿¬µ¿ 205
6.7 MyBatisÀÇ °í±Þ ±â´É È°¿ë 208
6.7.1 selectKey 208
6.7.2 µ¿Àû Äõ¸® Å±נ216

CHAPTER 7 Ä¿½ºÅÒ ½ºÇÁ¸µ ºÎÆ® ½ºÅ¸ÅÍ ¡¤ 221
7.1 ¾î³ëÅ×À̼Ǡ223
7.1.1 ¾î³ëÅ×À̼Ǡ¸¸µé±â 223
7.1.2 ½ºÇÁ¸µ ºÎÆ® ¾î³ëÅ×À̼Ǡ226
7.2 ½ºÇÁ¸µ ºÎÆ®ÀÇ ±¸¼º ¿ä¼Ò 238
7.2.1 ½ºÇÁ¸µ ºÎÆ® ¸ðµâ 238
7.3 ½ºÇÁ¸µ ºÎÆ® ½ºÅ¸ÅÍ ¸¸µé±â 243
7.3.1 ½ºÅ¸ÅÍ °³¹ß È¯°æ ±¸Ãà 244

CHAPTER 8 ¿¹¿Ü Ã³¸® ¹× Å×½ºÆ® ¡¤ 249
8.1 ÀÚ¹Ù ¿¹¿Ü Ã³¸® 251
8.1.1 throw¿Í throws ±¸¹® È°¿ë 251
8.2 Validation È°¿ë 253
8.2.1 Çʵ忡 validation Àû¿ë 257
8.3 ¿¹¿Ü Ã³¸®¸¦ À§ÇÑ ControllerAdvice 259
8.3.1 Controller¿¡ ´ëÇÑ ¿¹¿Ü Ã³¸® 259
8.4 µ¥ÀÌÅͺ£À̽º ¿¹¿Ü Ã³¸® 264
8.4.1 Æ®·£Àè¼Ç 264
8.4.2 PlatformTransactionManager 265
8.5 ½ºÇÁ¸µ ºÎÆ® Å×½ºÆ® 269
8.5.1 µ¥ÀÌÅͺ£À̽º ¿¬µ¿ Å×½ºÆ® 269
8.5.2 ÅëÇÕ Å×½ºÆ® 274

CHAPTER 9 ¹èÆ÷ ¡¤ 281
9.1 ºôµå 283
9.1.1 Runnable JAR 283
9.2 À¥ ¼­ºñ½º¸¦ À§ÇÑ ¹èÆ÷ 288
9.2.1 Å¬¶ó¿ìµå ¼­ºñ½º¿¡ ¹èÆ÷ 288

CHAPTER 10 ¸ð´ÏÅ͸µ ¡¤ 299
10.1 ¾×Ãß¿¡ÀÌÅÍ 301
10.1.1 ¾×Ãß¿¡ÀÌÅÍ Àû¿ë 301
10.1.2 ÁöÇ¥ Á¤º¸ È°¿ë 303
10.1.3 ±âº» ¼³Á¤ º¯°æ 307
10.2 JMX¿Í JConsoleÀ» ÀÌ¿ëÇÑ ¸ð´ÏÅ͸µ 308
10.2.1 JConsole 308

CHAPTER 11 Ä³½Ã ¡¤ 311
11.1 Ä³½ÃÀÇ À¯Çü 313
11.1.1 À§Ä¡¿¡ µû¸¥ Ä³½Ã ±¸ºÐ 313
11.1.2 À¯Çü¿¡ µû¸¥ ±¸ºÐ 314
11.1.3 Ä³½Ã µ¥ÀÌÅÍ ÀúÀå ¹æ½Ä 314
11.2 ½ºÇÁ¸µ Ä³½Ã 315
11.2.1 Ä³½Ã Àû¿ëÀ» À§ÇÑ ±âº» ¿¹Á¦ 316
11.2.2 ½ºÇÁ¸µ Ä³½Ã È°¿ë 322
11.3 Jcache È°¿ë 328
11.3.1 Jcache ±¸Á¶ ¹× ¼³Á¤ 329
11.3.2 Jcache °´Ã¼ »ý¼º ¹× ½ÇÇà 330
11.4 Ehcache È°¿ë 332
11.4.1 Ehcache ¼³Á¤ 332
11.4.2 Ehcache »ç¿ë 333
11.4.3 Ä¿½ºÅÒ Å° »ý¼º ¹× Àû¿ë 335

CHAPTER 12 È¸¿ø °ü¸® ¡¤ 341
12.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ 343
12.1.1 ÀÎÁõ°ú Àΰ¡ 343
12.1.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ¼³Á¤ 345
12.2 ÆäÀÌÁö ±¸¼º 348
12.2.1 ÀÇÁ¸¼º ¼³Á¤ 348
12.2.2 Å¸ÀÓ¸®ÇÁ ·¹À̾ƿô ±¸¼º 349
12.3 È¸¿ø°¡ÀÔ 355
12.3.1 Á¢±Ù °æ·Î ¼³Á¤ 355
12.3.2 »ç¿ëÀÚ Á¤º¸¿Í È¸¿ø°¡ÀÔ ÆäÀÌÁö °³¹ß 356
12.4 ·Î±×ÀΠ366
12.4.1 È¸¿øÁ¤º¸ Á¶È¸ 366
12.4.2 Remember Me 368

APPENDIX A ÀÎÅÚ¸®Á¦À̸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·ÎÁ§Æ® ½ÇÇà ¹æ¹ý ¡¤ 375
A.1 °³¹ß µµ±¸ È°¿ë ¹æ¹ý 377
A.1.1 ÀÎÅÚ¸®Á¦ÀÌ ¼³Ä¡ 377
A.1.2 ±âº» ÇÁ·ÎÁ§Æ® »ý¼º 378
A.2 Lombok ¹× Annotation processing ¼³Á¤ 382

ã¾Æº¸±â 386

ÇÑÁÙ ¼­Æò