ÀÌ Ã¥Àº ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ǿ¡¼ °ü°èÇü µ¥ÀÌÅ͸¦ °ü¸®Çϱâ À§ÇÑ °·ÂÇÑ ±â¼úÀÎ Java Persistence API(JPA)ÀÇ ¼¼°è¸¦ ÆÄÇìÄ¡´Â Æ÷°ýÀûÀÎ °¡À̵åÀÔ´Ï´Ù. ÀÌ Ã¥Àº JPAÀÇ ÇÙ½É °³³äÀ» ÀÌÇØÇÏ°í ±× ±â´ÉÀ» È°¿ëÇÏ¿© È¿À²ÀûÀÌ°í À¯Áö °ü¸® °¡´ÉÇÑ µ¥ÀÌÅͺ£À̽º »óÈ£ ÀÛ¿ëÀ» »ý¼ºÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ±â À§ÇØ °í¾ÈµÇ¾ú½À´Ï´Ù.
1Àå, 'JPA ¼Ò°³'¿¡¼´Â ÀÚ¹Ù Áö¼Ó¼º API¿¡ ´ëÇÑ °³¿ä¿Í ÃֽŠÀÚ¹Ù ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡¼ JPA°¡ °®´Â Á߿伺¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸®¿¡ JPA¸¦ »ç¿ëÇÏ¸é ¾òÀ» ¼ö ÀÖ´Â ÀÌÁ¡, ORM(°´Ã¼ °ü°èÇü ¸ÅÇÎ)¿¡¼ÀÇ ¿ªÇÒ, µ¥ÀÌÅͺ£À̽º »óÈ£ ÀÛ¿ëÀ» °£¼ÒÈÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¼ ¼ö ÀÖ½À´Ï´Ù.
2Àå, 'JPA ±âº» »çÇ×'¿¡¼´Â JPAÀÇ ±âº» °³³ä¿¡ ÁßÁ¡À» µÓ´Ï´Ù. JPAÀÇ ¾ÆÅ°ÅØó, ¿£Æ¼Æ¼ ¼ö¸í ÁÖ±â, ¿£Æ¼Æ¼, °ü°è ¹× Áö¼Ó¼º ÄÁÅؽºÆ®¿Í °°Àº ÁÖ¿ä ±¸¼º ¿ä¼Ò¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
3Àå, 'JPA Äõ¸® ¾ð¾î(JPQL)'¿¡¼´Â ¿£Æ¼Æ¼¿Í ±× °ü°è¸¦ Äõ¸®Çϱâ À§ÇÑ °·ÂÇÑ Äõ¸® ¾ð¾îÀÎ JPQL¿¡ ´ëÇØ »ìÆ캾´Ï´Ù. °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ °Ë»ö, ÇÊÅ͸µ ¹× Á¶ÀÛÇϱâ À§ÇØ JPQL Äõ¸®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù.
4Àå, 'JPA ¾î³ëÅ×À̼Ç'¿¡¼´Â ÀÚ¹Ù °´Ã¼¸¦ µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ¸ÅÇÎÇϱâ À§ÇØ JPA¿¡¼ »ç¿ëµÇ´Â Çʼö ¾î³ëÅ×À̼ÇÀ» ´Ù·ì´Ï´Ù. @Entity, @Table, Column°ú °°Àº ¾î³ëÅ×À̼ǰú ¿£Æ¼Æ¼ÀÇ ±¸Á¶¿Í µ¿ÀÛÀ» Á¤ÀÇÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
5Àå, 'JPA ¿£Æ¼Æ¼ ¸Å´ÏÀú'¿¡¼´Â ¿£Æ¼Æ¼ ÀνºÅϽº °ü¸®¿Í µ¥ÀÌÅͺ£À̽º¿ÍÀÇ »óÈ£ ÀÛ¿ëÀ» ´ã´çÇÏ´Â JPAÀÇ ÇÙ½É ±¸¼º ¿ä¼ÒÀÎ ¿£Æ¼Æ¼ ¸Å´ÏÀú¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë¾Æº¾´Ï´Ù. ¿£Æ¼Æ¼ ¸Å´ÏÀú¸¦ »ç¿ëÇÏ¿© CRUD(»ý¼º, Àбâ, ¾÷µ¥ÀÌÆ®, »èÁ¦) ÀÛ¾÷À» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù.
6Àå, 'JPA Criteria API'¿¡¼´Â Äõ¸®¸¦ »ý¼ºÇÏ´Â Çü½Ä¿¡ ¾ÈÀüÇÑ ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ» Á¦°øÇÏ´Â JPA Criteria API¸¦ ¼Ò°³ÇÕ´Ï´Ù. ¿ø½Ã JPQL ¹®ÀÚ¿À» ÀÛ¼ºÇÏÁö ¾Ê°íµµ Criteria API¸¦ »ç¿ëÇÏ¿© º¹ÀâÇÑ Äõ¸®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù.
7Àå, 'JPA °í±Þ ÁÖÁ¦'¿¡¼´Â »ó¼Ó Àü·«, ij½Ì ¹× Àá±Ý ¸ÞÄ¿´ÏÁòÀ» ºñ·ÔÇÑ JPAÀÇ °í±Þ °³³äÀ» »ìÆ캾´Ï´Ù. µ¥ÀÌÅͺ£À̽º ¼º´ÉÀ» ÃÖÀûÈÇÏ°í, µ¿½Ã¼ºÀ» °ü¸®ÇÏ°í, ´õ º¹ÀâÇÑ µ¥ÀÌÅÍ ½Ã³ª¸®¿À¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.
8Àå, '½ºÇÁ¸µ°ú JPA ÅëÇÕ'¿¡¼´Â ¿£ÅÍÇÁ¶óÀÌÁî ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇÏ´Â µ¥ ³Î¸® »ç¿ëµÇ´Â ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿Í JPA¸¦ ÅëÇÕÇÏ´Â µ¥ ÁßÁ¡À» µÓ´Ï´Ù. ½ºÇÁ¸µ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ JPA¸¦ ±¸¼ºÇÏ°í, Æ®·£Àè¼ÇÀ» °ü¸®ÇÏ°í, JPA¿Í ÇÔ²² ½ºÇÁ¸µÀÇ ±â´ÉÀ» È°¿ëÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù.
9Àå, 'JPA ¸ð¹ü »ç·Ê¿Í ÇÔÁ¤'¿¡¼´Â JPA¸¦ È¿°úÀûÀ¸·Î »ç¿ëÇÏ°í ÀϹÝÀûÀÎ ÇÔÁ¤À» ÇÇÇϱâ À§ÇÑ ¸ð¹ü »ç·Ê¸¦ ´Ù·ì´Ï´Ù. ¿£Æ¼Æ¼ ¼³°è ÃÖÀûÈ, °ü°è °ü¸®, ¼º´É °í·Á »çÇ× Ã³¸®¿¡ ´ëÇØ ¹è¿ì°Ô µË´Ï´Ù.
ÀÌ Ã¥Àº Java Persistence API¸¦ »ç¿ëÇÏ¿© ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ǿ¡¼ °ü°èÇü µ¥ÀÌÅ͸¦ È¿°úÀûÀ¸·Î °ü¸®ÇÒ ¼ö ÀÖ´Â Áö½Ä°ú ±â¼úÀ» °®Ãß°Ô ÇØÁÝ´Ï´Ù. Ãʺ¸ÀÚÀÌµç ¼÷·ÃµÈ °³¹ßÀÚÀ̵ç ÀÌ Ã¥Àº JPA °³¹ßÀÇ ±âº» °³³ä°ú °í±Þ ±â¼úÀ» ¾È³»ÇÕ´Ï´Ù. ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é JPA¸¦ »ç¿ëÇÏ¿© °·ÂÇÏ°í È¿À²ÀûÀ̸ç À¯Áö °ü¸® °¡´ÉÇÑ µ¥ÀÌÅͺ£À̽º »óÈ£ ÀÛ¿ëÀ» ¸¸µé ¼ö ÀÖ´Ù´Â ÀڽۨÀ» °®°Ô µÉ °ÍÀÔ´Ï´Ù.
1Àå : JPA ¼Ò°³
___1. JPA¶õ?
___2. ¿Ö JPA¸¦ »ç¿ëÇϳª¿ä?
___3. JPA¿Í ´Ù¸¥ ORM ÇÁ·¹ÀÓ¿öÅ© ºñ±³
2Àå : JPA ±âº» »çÇ×
___1. JPA ¿£Æ¼Æ¼ ¹× ¿£Æ¼Æ¼ ¼ö¸í ÁÖ±â
___2. ¿£Æ¼Æ¼¸¦ Å×ÀÌºí¿¡ ¸ÅÇÎÇϱâ
___3. ±âº» Å° ¹× »ý¼ºµÈ °ª
___4. ¿£Æ¼Æ¼ °ü°è
3Àå : JPA Äõ¸® ¾ð¾î(JPQL)
___1. JPQLÀ̶õ?
___2. JPQL·Î ¿£Æ¼Æ¼ Äõ¸®Çϱâ
___3. ¿£Æ¼Æ¼ ¼±ÅÃ, ÇÊÅ͸µ ¹× ¼ø¼ ÁöÁ¤
___4. Á¶ÀÎ ¹× ÇÏÀ§ Äõ¸®
4Àå : JPA ¾î³ëÅ×À̼Ç
___1. ¿£Æ¼Æ¼¿¡ ´ëÇÑ ¾î³ëÅ×À̼Ç
___2. °ü°è¿¡ ´ëÇÑ ¾î³ëÅ×À̼Ç
___3. Äõ¸®¿¡ ´ëÇÑ ¾î³ëÅ×À̼Ç
5Àå : JPA ¿£Æ¼Æ¼ ¸Å´ÏÀú
___1. EntityManager ÀÎÅÍÆäÀ̽º
___2. ¿£Æ¼Æ¼ »ý¼º, À¯Áö, ¾÷µ¥ÀÌÆ® ¹× »èÁ¦
___3. ¿£Æ¼Æ¼ °ü°è °ü¸®
___4. Æ®·£Àè¼Ç°ú ¿£Æ¼Æ¼ ¸Å´ÏÀú ¶óÀÌÇÁ»çÀÌŬ
6Àå : JPA Criteria API
___1. Criteria API¶õ?
___2. Criteria API·Î Äõ¸® ÀÛ¼º
___3. Ç¥Çö½Ä, Á¶°Ç¾î ¹× ¼ø¼ ÁöÁ¤
7Àå : JPA °í±Þ ÁÖÁ¦
___1. »ó¼Ó Àü·«
___2. ¿£Æ¼Æ¼ ¸®½º³Ê ¹× Äݹé
___3. ij½Ì
___4. ³«°üÀû Àá±Ý°ú ºñ°üÀû Àá±Ý
8Àå : ½ºÇÁ¸µ°ú JPA ÅëÇÕ
___1. ½ºÇÁ¸µÀ¸·Î JPA ¼³Á¤Çϱâ
___2. Æ®·£Àè¼Ç °ü¸®
___3. Spring Data JPA
9Àå : JPA ¸ð¹ü »ç·Ê ¹× ÇÔÁ¤
___1. JPA ¿£Æ¼Æ¼ ¹× °ü°è ¼³°è¸¦ À§ÇÑ ¸ð¹ü »ç·Ê
___2. ÀϹÝÀûÀÎ ÇÔÁ¤°ú À̸¦ ÇÇÇÏ´Â ¹æ¹ý