- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > À¥ÇÁ·Î±×·¡¹Ö > ÄÚµå·Î ¹è¿ì´Â ½ºÇÁ¸µ ºÎÆ® À¥ ÇÁ·ÎÁ§Æ®[³²°¡¶÷ºÏ½º]
¡®½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á» ´õ °£´ÜÈ÷ »ç¿ëÇÒ ¼ö´Â ¾øÀ»±î?¡¯
ÀÌ Ã¥ÀÇ ½ÃÀÛÀº À§ÀÇ Áú¹®¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. Á» ´õ ºü¸£°Ô °³¹ßÇÏ¸é¼ ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¸ðµç ±â´ÉÀ» È°¿ëÇÒ ¼ö ÀÖ´Â ½ºÇÁ¸µ ºÎÆ®´Â Intellij³ª ÀÌŬ¸³½º, VS Code µî °³¹ß µµ±¸µéÀÇ Áö¿ø ¿ª½Ã È°¹ßÇÕ´Ï´Ù. ½ºÇÁ¸µ ºÎÆ®ÀÇ °æ¿ì ÀÚµ¿ ¼³Á¤ ±â´ÉÀ» ÀÌ¿ëÇϸé ÃÖ¼ÒÇÑÀÇ ¼³Á¤¸¸À¸·Îµµ ¿øÇÏ´Â ±â´ÉµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ³î¶ó¿î °³¹ß »ý»ê¼ºÀ» º¸¿©ÁÝ´Ï´Ù.
°³¹ß¿¡¼ °¡Àå Áß¿äÇÑ µ¥ÀÌÅͺ£À̽º 󸮴 °ú°¨ÇÏ°Ô JPA¸¦ µµÀÔÇØ º¾´Ï´Ù. JPA¸¦ ÀÌ¿ëÇؼ ÃÖ¼ÒÇÑÀÇ °³¹ßÀ» Ãß±¸ÇÏ°í µ¥ÀÌÅͺ£À̽º¿¡ µ¶¸³ÀûÀ¸·Î ½ÇÇà °¡´ÉÇÑ Äڵ带 °³¹ßÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅͳÝÀÇ ¿¹Á¦µéÀÌ ³Ê¹« ´Ü¼øÇÑ ±¸Á¶ÀÇ ¿¹Á¦µé¸¸À» ´Ù·ç°í ÀÖ¾î¼ ½ÇÁ¦ JPA¸¦ µµÀÔÇϴµ¥ ºÎÁ·ÇÏ´Ù´Â »ý°¢¿¡ Á¶ÀΠ󸮰¡ ¸¹ÀÌ ÇÊ¿äÇÑ ¿¹Á¦µéÀ» ±¸¼ºÇØ º¾´Ï´Ù. JPA°¡ »ý¼ºÇÏ´Â SQLÀ» ·Î±×·Î È®ÀÎÇØ º¸¸é Á÷Á¢ Å×À̺íµéÀ» Á¶ÀΠó¸®ÇØ¾ß Çß´ø ½Ã°£À» ¾ó¸¶³ª Àý¾àÇÒ ¼ö ÀÖ´ÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
ÀÎÁõ ó¸® ¿ª½Ã ±¸±ÛÀ» ÀÌ¿ëÇÏ´Â ¼Ò¼È ·Î±×ÀΠó¸®¿Í ´õºÒ¾î JWT ÅäÅ«À» ¹ßÇàÇÏ´Â ¹æ½ÄÀ» µµÀÔÇÕ´Ï´Ù. À̸¦ ÅëÇؼ ÀüÅëÀûÀÎ ·Î±×Àΰú API¸¦ Á¦°øÇÒ ¶§ ÀÎÁõ 󸮸¦ ¸ðµÎ Áö¿øÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¾´Ï´Ù. ÀÌ Ã¥Àº ±âº»ÀûÀ¸·Î ¡®ÄÚµå·Î ¹è¿ì´Â ½ºÇÁ¸µ À¥ ÇÁ·ÎÁ§Æ® [°³Á¤ÆÇ](³²°¡¶÷ºÏ½º 2018)¡¯ÀÇ ³»¿ëÀ» ½ºÇÁ¸µ ºÎÆ®¿Í JPA, Thymeleaf¸¦ ÀÌ¿ëÇÏ´Â ±¸¼ºÀ̹ǷΠ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ÇнÀÀÌ ÇÊ¿äÇÏ´Ù¸é Âü°íÇϽñ⠹ٶø´Ï´Ù.
[ÀÌ Ã¥ÀÇ ÁÖ¿ä Ư¡]
* °³¹ß µµ±¸¸¦ STS ´ë½Å¿¡ Intellij Ultimate¸¦ ÀÌ¿ëÇÕ´Ï´Ù.
* MariaDB¸¦ ÀÌ¿ëÇÏ°í, Spring Data JPA·Î SQLÀ» ´ë½ÅÇÕ´Ï´Ù.
* JSP ´ë½Å¿¡ Thymeleaf¸¦ ÀÌ¿ëÇؼ ȸéÀ» ÀÛ¼ºÇÕ´Ï´Ù.
* ¼Ò¼È ·Î±×ÀÎÀ» ÀÌ¿ëÇÏ°í À̸¦ ÀÚµ¿ ȸ¿ø°¡ÀÔÀ¸·Î ó¸®ÇÕ´Ï´Ù.
* ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ ÀÌ¿ëÇؼ ÀÏ¹Ý ·Î±×Àΰú JWT¸¦ ÀÌ¿ëÇÑ API ÀÎÁõ󸮸¦ °°ÀÌ Àû¿ëÇÕ´Ï´Ù.
[ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ]
ÀÌ Ã¥Àº À̷к¸´Ù´Â ¹Ù·Î ½ÇÇàÇØ º¼ ¼ö ÀÖ´Â ¿¹Á¦¸¦ ¸¸µå´Âµ¥ ÁýÁßÇϹǷΠ´ÙÀ½°ú °°Àº Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
* Java ¾ð¾îÀÇ ±âº»ÀûÀÎ ¹®¹ý°ú ¿¹¿Ü ó¸®, JDBC °ü·Ã ±â´É¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÕ´Ï´Ù.
* JPA¸¦ ´Ù·ç±ä ÇÏÁö¸¸ ½ÇÁ¦ ½ÇÇàÀº SQL·Î ó¸®ÇϹǷΠÀÌ¿¡ ´ëÇÑ Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
* MVC ±â¹ÝÀÇ À¥ ÇÁ·Î±×·¡¹Ö °æÇèÀÌ ÀÖ¾î¾ß¸¸ ÇÕ´Ï´Ù.
* ½ºÇÁ¸µ¿¡ ´ëÇÑ ±âº»ÀûÀÎ °³³ä°ú ÀÌÇØ°¡ ÀÖ¾î¾ß¸¸ ÇÕ´Ï´Ù.
ÀÌ Ã¥ÀÇ ½ÃÀÛÀº À§ÀÇ Áú¹®¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. Á» ´õ ºü¸£°Ô °³¹ßÇÏ¸é¼ ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¸ðµç ±â´ÉÀ» È°¿ëÇÒ ¼ö ÀÖ´Â ½ºÇÁ¸µ ºÎÆ®´Â Intellij³ª ÀÌŬ¸³½º, VS Code µî °³¹ß µµ±¸µéÀÇ Áö¿ø ¿ª½Ã È°¹ßÇÕ´Ï´Ù. ½ºÇÁ¸µ ºÎÆ®ÀÇ °æ¿ì ÀÚµ¿ ¼³Á¤ ±â´ÉÀ» ÀÌ¿ëÇϸé ÃÖ¼ÒÇÑÀÇ ¼³Á¤¸¸À¸·Îµµ ¿øÇÏ´Â ±â´ÉµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ³î¶ó¿î °³¹ß »ý»ê¼ºÀ» º¸¿©ÁÝ´Ï´Ù.
°³¹ß¿¡¼ °¡Àå Áß¿äÇÑ µ¥ÀÌÅͺ£À̽º 󸮴 °ú°¨ÇÏ°Ô JPA¸¦ µµÀÔÇØ º¾´Ï´Ù. JPA¸¦ ÀÌ¿ëÇؼ ÃÖ¼ÒÇÑÀÇ °³¹ßÀ» Ãß±¸ÇÏ°í µ¥ÀÌÅͺ£À̽º¿¡ µ¶¸³ÀûÀ¸·Î ½ÇÇà °¡´ÉÇÑ Äڵ带 °³¹ßÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅͳÝÀÇ ¿¹Á¦µéÀÌ ³Ê¹« ´Ü¼øÇÑ ±¸Á¶ÀÇ ¿¹Á¦µé¸¸À» ´Ù·ç°í ÀÖ¾î¼ ½ÇÁ¦ JPA¸¦ µµÀÔÇϴµ¥ ºÎÁ·ÇÏ´Ù´Â »ý°¢¿¡ Á¶ÀΠ󸮰¡ ¸¹ÀÌ ÇÊ¿äÇÑ ¿¹Á¦µéÀ» ±¸¼ºÇØ º¾´Ï´Ù. JPA°¡ »ý¼ºÇÏ´Â SQLÀ» ·Î±×·Î È®ÀÎÇØ º¸¸é Á÷Á¢ Å×À̺íµéÀ» Á¶ÀΠó¸®ÇØ¾ß Çß´ø ½Ã°£À» ¾ó¸¶³ª Àý¾àÇÒ ¼ö ÀÖ´ÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
ÀÎÁõ ó¸® ¿ª½Ã ±¸±ÛÀ» ÀÌ¿ëÇÏ´Â ¼Ò¼È ·Î±×ÀΠó¸®¿Í ´õºÒ¾î JWT ÅäÅ«À» ¹ßÇàÇÏ´Â ¹æ½ÄÀ» µµÀÔÇÕ´Ï´Ù. À̸¦ ÅëÇؼ ÀüÅëÀûÀÎ ·Î±×Àΰú API¸¦ Á¦°øÇÒ ¶§ ÀÎÁõ 󸮸¦ ¸ðµÎ Áö¿øÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¾´Ï´Ù. ÀÌ Ã¥Àº ±âº»ÀûÀ¸·Î ¡®ÄÚµå·Î ¹è¿ì´Â ½ºÇÁ¸µ À¥ ÇÁ·ÎÁ§Æ® [°³Á¤ÆÇ](³²°¡¶÷ºÏ½º 2018)¡¯ÀÇ ³»¿ëÀ» ½ºÇÁ¸µ ºÎÆ®¿Í JPA, Thymeleaf¸¦ ÀÌ¿ëÇÏ´Â ±¸¼ºÀ̹ǷΠ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ÇнÀÀÌ ÇÊ¿äÇÏ´Ù¸é Âü°íÇϽñ⠹ٶø´Ï´Ù.
[ÀÌ Ã¥ÀÇ ÁÖ¿ä Ư¡]
* °³¹ß µµ±¸¸¦ STS ´ë½Å¿¡ Intellij Ultimate¸¦ ÀÌ¿ëÇÕ´Ï´Ù.
* MariaDB¸¦ ÀÌ¿ëÇÏ°í, Spring Data JPA·Î SQLÀ» ´ë½ÅÇÕ´Ï´Ù.
* JSP ´ë½Å¿¡ Thymeleaf¸¦ ÀÌ¿ëÇؼ ȸéÀ» ÀÛ¼ºÇÕ´Ï´Ù.
* ¼Ò¼È ·Î±×ÀÎÀ» ÀÌ¿ëÇÏ°í À̸¦ ÀÚµ¿ ȸ¿ø°¡ÀÔÀ¸·Î ó¸®ÇÕ´Ï´Ù.
* ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ ÀÌ¿ëÇؼ ÀÏ¹Ý ·Î±×Àΰú JWT¸¦ ÀÌ¿ëÇÑ API ÀÎÁõ󸮸¦ °°ÀÌ Àû¿ëÇÕ´Ï´Ù.
[ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ]
ÀÌ Ã¥Àº À̷к¸´Ù´Â ¹Ù·Î ½ÇÇàÇØ º¼ ¼ö ÀÖ´Â ¿¹Á¦¸¦ ¸¸µå´Âµ¥ ÁýÁßÇϹǷΠ´ÙÀ½°ú °°Àº Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
* Java ¾ð¾îÀÇ ±âº»ÀûÀÎ ¹®¹ý°ú ¿¹¿Ü ó¸®, JDBC °ü·Ã ±â´É¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÕ´Ï´Ù.
* JPA¸¦ ´Ù·ç±ä ÇÏÁö¸¸ ½ÇÁ¦ ½ÇÇàÀº SQL·Î ó¸®ÇϹǷΠÀÌ¿¡ ´ëÇÑ Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.
* MVC ±â¹ÝÀÇ À¥ ÇÁ·Î±×·¡¹Ö °æÇèÀÌ ÀÖ¾î¾ß¸¸ ÇÕ´Ï´Ù.
* ½ºÇÁ¸µ¿¡ ´ëÇÑ ±âº»ÀûÀÎ °³³ä°ú ÀÌÇØ°¡ ÀÖ¾î¾ß¸¸ ÇÕ´Ï´Ù.
ÀúÀÚ: ±¸¸Û°¡°Ô ÄÚµù´Ü
ÀÌ Ã¥À» ³»¸ç...
µé¾î°¡¸ç...
Part 1 ½ºÇÁ¸µ ºÎÆ® µµÀüÇϱâ
01Àå ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ Áغñ
1.1 °³¹ß µµ±¸ÀÇ Áغñ
1.2 Spring initializr¸¦ ÀÌ¿ëÇÑ ÇÁ·ÎÁ§Æ® »ý¼º
1.3 ½ºÇÁ¸µ ÇÁ·ÎÁ§Æ® ½ÇÇàÇØ º¸±â
1.4 ½ºÇÁ¸µ ºÎÆ®¸¦ ´Üµ¶À¸·Î ½ÇÇà °¡´ÉÇÑ ÆÄÀÏ·Î ¸¸µé±â
02Àå Maria µ¥ÀÌÅͺ£À̽º¿Í Spring Data JPA
2.1 MariaDBÀÇ ¼³Ä¡¿Í µ¥ÀÌÅͺ£À̽º »ý¼º
2.2 Spring Data JPA¸¦ ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®ÀÇ »ý¼º
2.3 Spring Data JPAÀÇ ¼Ò°³
2.4 ¿£Æ¼Æ¼ Ŭ·¡½º¿Í JpaRepository
2.5 ÆäÀÌ¡/Á¤·Ä ó¸®Çϱâ
2.6 Äõ¸® ¸Þ¼µå(Query Methods) ±â´É°ú @Query
03Àå ½ºÇÁ¸µ MVC¿Í Thymeleaf
3.1 Thymeleaf¸¦ »ç¿ëÇÏ´Â ÇÁ·ÎÁ§Æ® »ý¼º
3.2 ThymeleafÀÇ ±âº» »ç¿ë¹ý
3.3 ThymeleafÀÇ ±âº» °´Ã¼¿Í LocalDateTime
3.4 ThymeleafÀÇ ·¹À̾ƿô
Part 2 Spring MVC/JPA/Thymeleaf ¿¬½À
04Àå ÇÁ·ÎÁ§Æ® ±¸Á¶ ¸¸µé±â
4.1 ÇÁ·ÎÁ§Æ®ÀÇ ¿ÍÀ̾îÇÁ·¹ÀÓ
4.2 ÀÚµ¿À¸·Î 󸮵Ǵ ³¯Â¥/½Ã°£ ¼³Á¤
4.3 ¿£Æ¼Æ¼ Ŭ·¡½º¿Í Querydsl ¼³Á¤
4.4 ¼ºñ½º °èÃþ°ú DTO
4.5 ¸ñ·Ï ó¸®
4.6 ÄÁÆ®·Ñ·¯¿Í ȸ鿡¼ÀÇ ¸ñ·Ï ó¸®
4.7 µî·Ï ÆäÀÌÁö¿Í µî·Ï ó¸®
4.8 ¹æ¸í·ÏÀÇ Á¶È¸ ó¸®
4.9 ¹æ¸í·ÏÀÇ ¼öÁ¤/»èÁ¦ ó¸®
4.10 °Ë»ö ó¸®
Part 3 N:1(´Ù´ëÀÏ °ü°è) ó¸®Çϱâ
05Àå N:1(´Ù´ëÀÏ) ¿¬°ü°ü°è
5.1 ¿¬°ü°ü°è¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽º ¼³°è
5.2 ¿¬°ü°ü°è Å×½ºÆ®
5.3 ÇÁ·ÎÁ§Æ® Àû¿ëÇϱâ
5.4 ÄÁÆ®·Ñ·¯¿Í ȸé ó¸®
5.5 JPQL·Î °Ë»ö
06Àå @RestController¿Í JSON ó¸®
6.1 JSON°ú Ajax·Î ´ñ±Û ó¸®
6.2 ReplyDTO¿Í ReplyService/ReplyController
6.3Á¶È¸ ȸ鿡¼ ó¸®
Part 4 M:N(´Ù´ë´Ù) °ü°è¿Í ÆÄÀÏ ¾÷·Îµå ó¸®
07Àå M:N(´Ù´ë´Ù) °ü°èÀÇ ¼³°è¿Í ±¸Çö
7.1 M:N(´Ù´ë´Ù) °ü°èÀÇ Æ¯Â¡
7.2 ¿¹Á¦ ÇÁ·ÎÁ§Æ® »ý¼º
7.3 M:N(´Ù´ë´Ù) Repository¿Í Å×½ºÆ®
08Àå ÆÄÀÏ ¾÷·Îµå ó¸®
8.1 ÆÄÀÏ ¾÷·Îµå¸¦ À§ÇÑ ¼³Á¤
09Àå ¿µÈ/¸®ºä ÇÁ·ÎÁ§Æ® Àû¿ëÇϱâ
9.1 ¿µÈ(Movie) µî·Ï ó¸®
9.2 ¸ñ·Ï ó¸®¿Í Æò±Õ ÆòÁ¡
9.3 Á¶È¸ ÆäÀÌÁö¿Í ¿µÈ ¸®ºä
9.4 Ajax·Î ¿µÈ ¸®ºä ó¸®
Part 5 Spring Security¸¦ ÀÌ¿ëÇÑ ·Î±×ÀΠó¸®
10Àå Spring Boot¿Í Spring Security ¿¬µ¿
10.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ® »ý¼º
10.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ Ä¿½ºÅ͸¶ÀÌ¡
10.3 ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ JPA ó¸®
10.4 ½ÃÅ¥¸®Æ¼¸¦ À§ÇÑ UserDetailsService
10.5 Thymeleaf/Controller¿¡¼ »ç¿ëÀÚ Á¤º¸ Ãâ·ÂÇϱâ
11Àå ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ¼Ò¼È ·Î±×ÀΠó¸®
11.1 ±¸±Û ·Î±×ÀÎ ½Ã³ª¸®¿À
11.2 ÇöÀç ÇÁ·ÎÁ§Æ®¿ÍÀÇ ¿¬µ¿
11.3 ÀÚµ¿ ȸ¿ø °¡ÀÔÀÇ ÈÄó¸®
11.4 Remember me¿Í @PreAuthorize
12Àå API ¼ºñ½º ¸¸µé±â
12.1 API ¼¹ö¸¦ À§ÇÑ ±¸¼º
12.2 API ¼¹ö¸¦ À§ÇÑ ÇÊÅÍ
12.3 API¸¦ À§ÇÑ ÀÎÁõó¸®
Appendix
A ¾ç¹æÇâ°ú @OneToMany
A.1 µ¥ÀÌÅͺ£À̽º ¼³°è¿Í ¾ç¹æÇâ
A.2 ¾ç¹æÇâ ¼³Á¤µµ ½ÃÀÛÀº FK·Î
A.3 ¾ç¹æÇâ ÂüÁ¶´Â »óÀ§ ¿£Æ¼Æ¼¸¦ ±âÁØÀ¸·Î
ã¾Æº¸±â
µé¾î°¡¸ç...
Part 1 ½ºÇÁ¸µ ºÎÆ® µµÀüÇϱâ
01Àå ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ Áغñ
1.1 °³¹ß µµ±¸ÀÇ Áغñ
1.2 Spring initializr¸¦ ÀÌ¿ëÇÑ ÇÁ·ÎÁ§Æ® »ý¼º
1.3 ½ºÇÁ¸µ ÇÁ·ÎÁ§Æ® ½ÇÇàÇØ º¸±â
1.4 ½ºÇÁ¸µ ºÎÆ®¸¦ ´Üµ¶À¸·Î ½ÇÇà °¡´ÉÇÑ ÆÄÀÏ·Î ¸¸µé±â
02Àå Maria µ¥ÀÌÅͺ£À̽º¿Í Spring Data JPA
2.1 MariaDBÀÇ ¼³Ä¡¿Í µ¥ÀÌÅͺ£À̽º »ý¼º
2.2 Spring Data JPA¸¦ ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®ÀÇ »ý¼º
2.3 Spring Data JPAÀÇ ¼Ò°³
2.4 ¿£Æ¼Æ¼ Ŭ·¡½º¿Í JpaRepository
2.5 ÆäÀÌ¡/Á¤·Ä ó¸®Çϱâ
2.6 Äõ¸® ¸Þ¼µå(Query Methods) ±â´É°ú @Query
03Àå ½ºÇÁ¸µ MVC¿Í Thymeleaf
3.1 Thymeleaf¸¦ »ç¿ëÇÏ´Â ÇÁ·ÎÁ§Æ® »ý¼º
3.2 ThymeleafÀÇ ±âº» »ç¿ë¹ý
3.3 ThymeleafÀÇ ±âº» °´Ã¼¿Í LocalDateTime
3.4 ThymeleafÀÇ ·¹À̾ƿô
Part 2 Spring MVC/JPA/Thymeleaf ¿¬½À
04Àå ÇÁ·ÎÁ§Æ® ±¸Á¶ ¸¸µé±â
4.1 ÇÁ·ÎÁ§Æ®ÀÇ ¿ÍÀ̾îÇÁ·¹ÀÓ
4.2 ÀÚµ¿À¸·Î 󸮵Ǵ ³¯Â¥/½Ã°£ ¼³Á¤
4.3 ¿£Æ¼Æ¼ Ŭ·¡½º¿Í Querydsl ¼³Á¤
4.4 ¼ºñ½º °èÃþ°ú DTO
4.5 ¸ñ·Ï ó¸®
4.6 ÄÁÆ®·Ñ·¯¿Í ȸ鿡¼ÀÇ ¸ñ·Ï ó¸®
4.7 µî·Ï ÆäÀÌÁö¿Í µî·Ï ó¸®
4.8 ¹æ¸í·ÏÀÇ Á¶È¸ ó¸®
4.9 ¹æ¸í·ÏÀÇ ¼öÁ¤/»èÁ¦ ó¸®
4.10 °Ë»ö ó¸®
Part 3 N:1(´Ù´ëÀÏ °ü°è) ó¸®Çϱâ
05Àå N:1(´Ù´ëÀÏ) ¿¬°ü°ü°è
5.1 ¿¬°ü°ü°è¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽º ¼³°è
5.2 ¿¬°ü°ü°è Å×½ºÆ®
5.3 ÇÁ·ÎÁ§Æ® Àû¿ëÇϱâ
5.4 ÄÁÆ®·Ñ·¯¿Í ȸé ó¸®
5.5 JPQL·Î °Ë»ö
06Àå @RestController¿Í JSON ó¸®
6.1 JSON°ú Ajax·Î ´ñ±Û ó¸®
6.2 ReplyDTO¿Í ReplyService/ReplyController
6.3Á¶È¸ ȸ鿡¼ ó¸®
Part 4 M:N(´Ù´ë´Ù) °ü°è¿Í ÆÄÀÏ ¾÷·Îµå ó¸®
07Àå M:N(´Ù´ë´Ù) °ü°èÀÇ ¼³°è¿Í ±¸Çö
7.1 M:N(´Ù´ë´Ù) °ü°èÀÇ Æ¯Â¡
7.2 ¿¹Á¦ ÇÁ·ÎÁ§Æ® »ý¼º
7.3 M:N(´Ù´ë´Ù) Repository¿Í Å×½ºÆ®
08Àå ÆÄÀÏ ¾÷·Îµå ó¸®
8.1 ÆÄÀÏ ¾÷·Îµå¸¦ À§ÇÑ ¼³Á¤
09Àå ¿µÈ/¸®ºä ÇÁ·ÎÁ§Æ® Àû¿ëÇϱâ
9.1 ¿µÈ(Movie) µî·Ï ó¸®
9.2 ¸ñ·Ï ó¸®¿Í Æò±Õ ÆòÁ¡
9.3 Á¶È¸ ÆäÀÌÁö¿Í ¿µÈ ¸®ºä
9.4 Ajax·Î ¿µÈ ¸®ºä ó¸®
Part 5 Spring Security¸¦ ÀÌ¿ëÇÑ ·Î±×ÀΠó¸®
10Àå Spring Boot¿Í Spring Security ¿¬µ¿
10.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ ÀÌ¿ëÇÏ´Â ÇÁ·ÎÁ§Æ® »ý¼º
10.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ Ä¿½ºÅ͸¶ÀÌ¡
10.3 ÇÁ·ÎÁ§Æ®¸¦ À§ÇÑ JPA ó¸®
10.4 ½ÃÅ¥¸®Æ¼¸¦ À§ÇÑ UserDetailsService
10.5 Thymeleaf/Controller¿¡¼ »ç¿ëÀÚ Á¤º¸ Ãâ·ÂÇϱâ
11Àå ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ¼Ò¼È ·Î±×ÀΠó¸®
11.1 ±¸±Û ·Î±×ÀÎ ½Ã³ª¸®¿À
11.2 ÇöÀç ÇÁ·ÎÁ§Æ®¿ÍÀÇ ¿¬µ¿
11.3 ÀÚµ¿ ȸ¿ø °¡ÀÔÀÇ ÈÄó¸®
11.4 Remember me¿Í @PreAuthorize
12Àå API ¼ºñ½º ¸¸µé±â
12.1 API ¼¹ö¸¦ À§ÇÑ ±¸¼º
12.2 API ¼¹ö¸¦ À§ÇÑ ÇÊÅÍ
12.3 API¸¦ À§ÇÑ ÀÎÁõó¸®
Appendix
A ¾ç¹æÇâ°ú @OneToMany
A.1 µ¥ÀÌÅͺ£À̽º ¼³°è¿Í ¾ç¹æÇâ
A.2 ¾ç¹æÇâ ¼³Á¤µµ ½ÃÀÛÀº FK·Î
A.3 ¾ç¹æÇâ ÂüÁ¶´Â »óÀ§ ¿£Æ¼Æ¼¸¦ ±âÁØÀ¸·Î
ã¾Æº¸±â