¿À¸®Áö³ÎÆÇÀÌ ÀÖ´Â °æ¿ì °³Á¤ÆÇÀ» ´Ù½Ã ±¸¸ÅÇÒ ÇÊ¿ä ¾øÀÌ ¿À¸®Áö³ÎÆÇÀ» ¾÷µ¥ÀÌÆ®ÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ »ç¿ëÇØ µ¥ÀÌÅͺ£À̽º ÅëÇÕ ¹× °ü¸®¸¦ ¸¶½ºÅÍÇÏ´Â Á¾ÇÕ °¡À̵åÀÎ ¡°½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¡±¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. ÀÌ Ã¥Àº ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©·Î È¿À²ÀûÀÌ°í È®Àå °¡´ÉÇϸç À¯Áö °ü¸®°¡ ¿ëÀÌÇÑ µ¥ÀÌÅÍ ±â¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù. Ãʺ¸ÀÚÀÌµç ¼÷·ÃµÈ °³¹ßÀÚÀ̵ç ÀÌ Ã¥Àº µ¥ÀÌÅÍ ¾×¼¼½º °èÃþÀ» ¿øÈ°ÇÏ°Ô ±¸ÇöÇÏ°í ÃÖÀûÈÇÏ´Â µ¥ ÇÊ¿äÇÑ Áö½ÄÀ» Á¦°øÇÕ´Ï´Ù.
1Àå, '½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¼Ò°³'¿¡¼´Â ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ °³¿ä¸¦ Á¦°øÇÏ°í JPA(ÀÚ¹Ù Áö¼Ó¼º API)ÀÇ ÇÙ½É °³³äÀ» ¼³¸íÇÔÀ¸·Î½á ½ÃÀÛÀ» ¾Ë¸³´Ï´Ù. ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA »ç¿ëÀÇ ÀåÁ¡°ú °³¹ß ȯ°æÀ» ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
2Àå, '½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ½ÃÀÛÇϱâ'¿¡¼´Â ½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â, ÀÇÁ¸¼º Ãß°¡, µ¥ÀÌÅÍ ¼Ò½º ±¸¼º, ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ »ç¿ëÇÑ ±âº» ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÀ» ¾È³»ÇÕ´Ï´Ù.
3Àå, '¿£Æ¼Æ¼¿Í ¸®Æ÷ÁöÅ丮 ÀÌÇØ'¿¡¼´Â JPA ¿£Æ¼Æ¼¸¦ Á¤ÀÇÇÏ°í ÀÏ´ëÀÏ, ÀÏ´ë´Ù, ´Ù´ë´Ù¿Í °°Àº °ü°è¸¦ °ü¸®ÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù. ¶ÇÇÑ CrudRepository¿Í JpaRepository¸¦ »ç¿ëÇÏ¿© ¸®Æ÷ÁöÅ丮 ÀÎÅÍÆäÀ̽º¸¦ ¸¸µå´Â ¹æ¹ýµµ ¼³¸íÇÕ´Ï´Ù.
4Àå, '½ºÇÁ¸µ µ¥ÀÌÅÍ JPA·Î µ¥ÀÌÅÍ Äõ¸®Çϱâ'¿¡¼´Â ¸Þ¼µå À̸§ Äõ¸® ÆÄ»ý, JPQL(ÀÚ¹Ù Áö¼Ó¼º Äõ¸® ¾ð¾î), ±âº» SQL Äõ¸®, @Query ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÑ »ç¿ëÀÚ Á¤ÀÇ Äõ¸®¸¦ ºñ·ÔÇÑ µ¥ÀÌÅÍ °Ë»ö ±â¼úÀ» »ìÆ캾´Ï´Ù.
5Àå, 'ÆäÀÌÁö ³ª´©±â ¹× Á¤·Ä'¿¡¼´Â ´ë±Ô¸ð µ¥ÀÌÅÍ ÁýÇÕÀ» È¿À²ÀûÀ¸·Î ó¸®Çϱâ À§ÇÑ ÆäÀÌÁö ³ª´©±â ¹× Á¤·Ä ±â´ÉÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù. ¶ÇÇÑ µ¿Àû Äõ¸®¸¦ À§ÇØ ÆäÀÌÁö ¹× Á¤·Ä ¸Å°³º¯¼ö¸¦ »ç¿ëÀÚ ÁöÁ¤ÇÏ´Â ¹æ¹ýµµ ¹è¿ó´Ï´Ù.
6Àå, '°í±Þ JPA °³³ä'¿¡¼´Â ¿£Æ¼Æ¼ ¼ö¸í ÁÖ±â Äݹé, Æ®·£Àè¼Ç °ü¸®, Àá±Ý Àü·«(³«°üÀû Àá±Ý°ú ºñ°üÀû Àá±Ý)À» »ìÆ캾´Ï´Ù. ¶ÇÇÑ ÃÖÀûÈµÈ µ¥ÀÌÅÍ Ã³¸®¸¦ À§ÇØ ¿¹Ãø°ú DTO¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ¹è¿ó´Ï´Ù.
7Àå, '½ÉÃþÀûÀÎ °ü°è ó¸®'¿¡¼´Â °è´Ü½Ä ¿¬»ê, °¡Á®¿À±â À¯Çü, ¿£Æ¼Æ¼ °ü°è °ü¸®¸¦ À§ÇÑ Àü·«¿¡ ´ëÇØ ÁßÁ¡ÀûÀ¸·Î ´Ù·ì´Ï´Ù. ÀÌ Àå¿¡¼´Â °ü°è¿¡ ´ëÇÑ »ç¿ëÀÚ ÁöÁ¤ Äõ¸® ÀÛ¼º¿¡ ´ëÇÑ Áöħ°ú ¼º´É ÃÖÀûȸ¦ À§ÇÑ ¸ð¹ü »ç·Êµµ Á¦°øÇÕ´Ï´Ù.
8Àå, '½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®Çϱâ'¿¡¼´Â Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼³Á¤ÇÏ°í, ¸®Æ÷ÁöÅ丮¿¡ ´ëÇÑ ´ÜÀ§ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ°í, @DataJpaTest ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ¾ÈÁ¤¼ºÀ» º¸ÀåÇϱâ À§ÇØ Àθ޸𸮠µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ÅëÇÕ Å×½ºÆ®µµ ´Ù·ì´Ï´Ù.
9Àå, 'RESTful ¼ºñ½º¿Í ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ÅëÇÕ'¿¡¼´Â CRUD ÀÛ¾÷À» ó¸®ÇÏ´Â RESTful API¸¦ ºôµåÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ±ò²ûÇÑ API ÀÀ´äÀ» À§ÇØ DTO¸¦ »ç¿ëÇÏ°í REST ¼ºñ½º¿¡¼ ¿¹¿Ü¸¦ È¿°úÀûÀ¸·Î ó¸®ÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.
10Àå, '¸ð¹ü »ç·Ê ¹× ÆÁ'¿¡¼´Â °·ÂÇÑ µ¥ÀÌÅÍ ¾×¼¼½º °èÃþÀ» ±¸ÃàÇϱâ À§ÇÑ ½Ç¿ëÀûÀÎ Á¶¾ðÀ» Á¦°øÇÕ´Ï´Ù. ¼º´É Æ©´×, ij½Ì, º¸¾È °í·Á »çÇ×, ÄÚµå Ç°Áú ¹× ¹®¼ À¯Áö °ü¸® µîÀÇ ÁÖÁ¦¸¦ ´Ù·ì´Ï´Ù.
11Àå, 'Ä¿¹Â´ÏƼ ¹× Ãß°¡ ¸®¼Ò½º'¿¡¼´Â ÀÌ Ã¥¿¡¼ ³íÀÇµÈ ÁÖ¿ä °³³äÀ» ¿ä¾àÇÏ°í Ãß°¡ ÇнÀÀ» À§ÇÑ ¸®¼Ò½º¸¦ Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ ¿¬°á »óŸ¦ À¯ÁöÇÏ°í ÃֽŠÁ¤º¸¸¦ ¾ò´Â µ¥ µµ¿òÀÌ µÇ´Â ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA Ä¿¹Â´ÏƼ¿Í Áö¿ø ä³ÎÀ» °Á¶ÇÕ´Ï´Ù.
ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ ±íÀÌ ÀÖ°Ô ÀÌÇØÇÏ¿© È¿À²ÀûÀÎ µ¥ÀÌÅÍ ±â¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼³°èÇÏ°í ±¸ÇöÇÒ ¼ö ÀÖ°Ô µÉ °ÍÀÔ´Ï´Ù. ½ÇÁ¦ ¹®Á¦¸¦ ÇØ°áÇÏ°í ÇÁ·ÎÁ§Æ®ÀÇ ¼º´É, º¸¾È ¹× È®À强À» ÃÖÀûÈÇÒ ¼ö ÀÖ´Â ¿ª·®À» °®Ãß°Ô µÉ °ÍÀÔ´Ï´Ù.
º» µµ¼´Â ÀΰøÁö´É ±â¹ÝÀ¸·Î °Ë»öµÈ ÄÜÅÙÃ÷¸¦ ¹ÙÅÁÀ¸·Î, ÀÏ¹Ý ¼½Ä, Áú¹®°ú ´äº¯, ¹®Á¦ Ç®ÀÌ µî ´Ù¾çÇÑ Çü½ÄÀ» ÅëÇØ ÇÙ½É °³³äÀ» ü°èÀûÀ¸·Î ¼³¸íÇÕ´Ï´Ù. µ¶ÀÚµéÀÌ °³³äÀ» º¸´Ù ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï, ¸í·áÇÏ°í °£°áÇÑ ±¸Á¶¸¦ À¯ÁöÇÏ¿´À¸¸ç, °¢ ¼Ò½º Äڵ忡 ÀûÇÕÇÑ ÇÏÀ̶óÀÌÆ® ±â´ÉÀ» Á¦°øÇÏ¿© °¡µ¶¼ºÀ» ±Ø´ëÈÇÏ¿´½À´Ï´Ù.
ÀÌ Ã¥Àº Á¾ÀÌÃ¥ ÇüÅ°¡ ¾Æ´Ñ EPUB ÀüÀÚÃ¥À¸·Î Á¦À۵Ǿî, ÀüÅëÀûÀÎ ÆäÀÌÁö ·¹À̾ƿô°ú´Â ´Ù¸¥, À¥ ±â¹ÝÀÇ È帧À» ÃëÇÏ°í ÀÖ½À´Ï´Ù. µû¶ó¼ Á¾ÀÌÃ¥°ú °°Àº ±¸¼º¿¡ Àͼ÷ÇÑ µ¶ÀÚ¶ó¸é ´Ù¼Ò ÀÌÁú°¨À» ´À³¥ ¼ö ÀÖ½À´Ï´Ù.
º» ÁÖÁ¦¿¡ óÀ½ Á¢ÇÏ´Â µ¶ÀÚ¿¡°Ô´Â ÀÌ µµ¼°¡ ´Ù¼Ò ¹æ´ëÇÑ ³»¿ë°ú ±íÀÌ ÀÖ´Â °³³äÀ» ´Ù·ç°í ÀÖ¾î ÁÖÁ¦¸¦ ÀÌÇØÇÏ´Â µ¥ ¾î·Á¿òÀ» ´À³¥ ¼ö ÀÖÀ¸¹Ç·Î, °ü·Ã ºÐ¾ß¿¡ ¾î´À Á¤µµ °æÇèÀÌ ÀÖ´Â µ¶Àڵ鿡°Ô ÀÌ Ã¥À» ±ÇÀåÇÕ´Ï´Ù. ±âÁ¸ Áö½ÄÀ» ³ÐÈ÷°íÀÚ ÇÏ´Â À̵鿡°Ô´Â ½ÉÈµÈ ÀÌÇØ¿Í Áö½ÄÀÇ È®ÀåÀ» µµ¿ï ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
1Àå : ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¼Ò°³
___1. ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© °³¿ä
___2. JPA¶õ ¹«¾ùÀΰ¡?
___3. ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA »ç¿ëÀÇ ÀåÁ¡
___4. °³¹ß ȯ°æ ¼³Á¤
2Àå : ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ½ÃÀÛÇϱâ
___1. ½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
___2. ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ÀÇÁ¸¼º Ãß°¡
___3. µ¥ÀÌÅÍ ¼Ò½º ¹× JPA ¼Ó¼º ±¸¼º
___4. ±âº» ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà
3Àå : ¿£Æ¼Æ¼ ¹× ¸®Æ÷ÁöÅ丮 ÀÌÇØ
___1. JPA ¿£Æ¼Æ¼ Á¤ÀÇ
___2. ¿£Æ¼Æ¼ °ü°è(ÀÏ´ëÀÏ, ÀÏ´ë´Ù, ´Ù´ëÀÏ, ´Ù´ë´Ù)
___3. ¸®Æ÷ÁöÅ丮 ÀÎÅÍÆäÀ̽º ¸¸µé±â
___4. CrudRepository ¹× JpaRepository »ç¿ë
4Àå : ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA·Î µ¥ÀÌÅÍ Äõ¸®Çϱâ
___1. ¸Þ¼µå À̸§ Äõ¸® À¯µµ
___2. JPQL(Java Persistence Query Language)
___3. ³×ÀÌƼºê SQL Äõ¸®
___4. @Query ¾î³ëÅ×À̼Ç
5Àå : ÆäÀÌÁö ³ª´©±â ¹× Á¤·Ä
___1. ÆäÀÌÁö ³ª´©±â ±¸Çö
___2. °á°ú Á¤·Ä
___3. ÆäÀÌÁö ¹× Á¤·Ä ¸Å°³º¯¼ö »ç¿ëÀÚ ÁöÁ¤
6Àå : °í±Þ JPA °³³ä
___1. ¿£Æ¼Æ¼ ¶óÀÌÇÁ»çÀÌŬ ¹× Äݹé
___2. ³«°üÀû ¹× ºñ°üÀû Àá±Ý
___3. Æ®·£Àè¼Ç °ü¸®
___4. ÇÁ·ÎÁ§¼Ç ¹× DTO »ç¿ë
7Àå : ½ÉÃþÀûÀÎ °ü°è ó¸®
___1. °è´Ü½Ä ÀÛ¾÷
___2. Fetch ŸÀÔ ¹× Fetch Àü·«
___3. °ü°è¿¡ ´ëÇÑ »ç¿ëÀÚ Á¤ÀÇ Äõ¸® ÀÛ¼º
___4. ¼º´ÉÀ» À§ÇÑ ¸ð¹ü »ç·Ê
8Àå : ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®
___1. Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ© ¼³Á¤
___2. ÀúÀå¼Ò¿¡ ´ëÇÑ ´ÜÀ§ Å×½ºÆ® ÀÛ¼º
___3. @DataJpaTest ¾î³ëÅ×ÀÌ¼Ç »ç¿ë
___4. Àθ޸𸮠µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ÅëÇÕ Å×½ºÆ®
9Àå : RESTful ¼ºñ½º¿Í ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ÅëÇÕ
___1. RESTful API ºôµå
___2. REST¸¦ ÅëÇÑ CRUD ÀÛ¾÷ ó¸®
___3. API ÀÀ´ä¿¡ DTO »ç¿ë
___4. REST ¼ºñ½º¿¡¼ÀÇ ¿¹¿Ü ó¸®
10Àå : ¸ð¹ü »ç·Ê ¹× ÆÁ
___1. µ¥ÀÌÅÍ ¾×¼¼½º °èÃþ ¸ð¹ü »ç·Ê
___2. ¼º´É Æ©´× ¹× ij½Ì
___3. º¸¾È °í·Á »çÇ×
___4. ÄÚµå Ç°Áú ¹× ¹®¼ À¯Áö °ü¸®
11Àå : Ä¿¹Â´ÏƼ ¹× Ãß°¡ ¸®¼Ò½º
___1. ÇÙ½É °³³ä ¿ä¾à
___2. Ãß°¡ ÇнÀ ¸®¼Ò½º
___3. Ä¿¹Â´ÏƼ ¹× Áö¿ø