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


JPA

JPA

<¿Â°³¹ßÆÀ> Àú | ¿Â³ëÆ®

Ãâ°£ÀÏ
2023-08-22
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
823 K
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

ÀÌ Ã¥Àº ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ °ü°èÇü µ¥ÀÌÅ͸¦ °ü¸®Çϱâ À§ÇÑ °­·ÂÇÑ ±â¼úÀÎ 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. ÀϹÝÀûÀÎ ÇÔÁ¤°ú À̸¦ ÇÇÇÏ´Â ¹æ¹ý