±¹³»µµ¼
Àü°øµµ¼/´ëÇб³Àç
°øÇаè¿
ÄÄÇ»ÅÍ°øÇÐ
Á¤°¡ |
43,000¿ø |
---|
38,700¿ø (10%ÇÒÀÎ)
2,150P (5%Àû¸³)
ÇÒÀÎÇýÅÃ | |
---|---|
Àû¸³ÇýÅà |
|
|
|
Ãß°¡ÇýÅÃ |
|
À̺¥Æ®/±âȹÀü
¿¬°üµµ¼
»óÇ°±Ç
ÀÌ»óÇ°ÀÇ ºÐ·ù
Ã¥¼Ò°³
ÀÚ¹Ù ORM Ç¥ÁØ JPA´Â SQL ÀÛ¼º ¾øÀÌ °´Ã¼¸¦ µ¥ÀÌÅͺ£À̽º¿¡ Á÷Á¢ ÀúÀåÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ°í, °´Ã¼¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÇ Â÷À̵µ Áß°£¿¡¼ ÇØ°áÇØÁØ´Ù. ÀÌ Ã¥Àº JPA ±âÃÊ À̷аú ÇÙ½É ¿ø¸®, ±×¸®°í ½Ç¹«¿¡ ÇÊ¿äÇÑ ¼º´É ÃÖÀûÈ ¹æ¹ý±îÁö JPA¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ´Ù·é´Ù. ¶ÇÇÑ, ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿Í JPA¸¦ ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í, ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA, QueryDSL °°Àº Çõ½ÅÀûÀÎ ¿ÀÇ ¼Ò½º¸¦ È°¿ëÇؼ ÀÚ¹Ù À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» È¿°úÀûÀ¸·Î °³¹ßÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.
´ÙÀ½ ¸µÅ©¿¡¼ ¿Â¶óÀÎ °ÀǸ¦ ¼ö°ÇÒ ¼ö ÀÖ´Ù.
¡á °ÀÇ ¸µÅ©: https://www.inflearn.com/roadmaps/149
¡á ¿Â¶óÀÎ °ÀÇ ¸ñ·Ï
-ÀÚ¹Ù ORM Ç¥ÁØ JPA ÇÁ·Î±×·¡¹Ö - ±âº»Æí: https://www.inflearn.com/course/ORM-JPA-Basic
-½ÇÀü! ½ºÇÁ¸µ ºÎÆ®¿Í JPA È°¿ë1 - À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß: https://www.inflearn.com/course/½ºÇÁ¸µºÎÆ®-JPA-È°¿ë-1
-½ÇÀü! ½ºÇÁ¸µ ºÎÆ®¿Í JPA È°¿ë2 - API °³¹ß°ú ¼º´É ÃÖÀûÈ: https://www.inflearn.com/course/½ºÇÁ¸µºÎÆ®-JPA-API°³¹ß-¼º´ÉÃÖÀûÈ#
-½ÇÀü! ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA: https://www.inflearn.com/course/½ºÇÁ¸µ-µ¥ÀÌÅÍ-JPA-½ÇÀü
-½ÇÀü! Querydsl: https://www.inflearn.com/course/Querydsl-½ÇÀü
ÃâÆÇ»ç ¼Æò
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á JPA ±âÃÊ À̷аú ÇÙ½É ¿ø¸®
¡á JPA·Î µµ¸ÞÀÎ ¸ðµ¨À» ¼³°èÇÏ´Â °úÁ¤À» ¿¹Á¦ Áß½ÉÀ¸·Î ¼³¸í
¡á ´Ù¾çÇÑ °´Ã¼ ÁöÇâ Äõ¸® ¾ð¾î ¼³¸í
¡á JPA¿Í ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÇÔ²² »ç¿ëÇؼ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â ¹æ¹ý
¡á ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA, QueryDSL ¼Ò°³ ¹× È°¿ë
¡á ½Ç¹«¿¡¼ JPA¸¦ »ç¿ëÇÒ ¶§ ¼º´ÉÀ» ÃÖÀûÈÇÏ´Â ´Ù¾çÇÑ ¹æ¹ý
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÀÌ Ã¥Àº JPA¸¦ »ç¿ëÇؼ ¿£ÅÍÇÁ¶óÀÌÁî ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ·Á´Â ¸ðµç ÀÚ¹Ù °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. ÀÌ Ã¥ÀÇ ³»¿ëÀ» ÀÌÇØÇÏ·Á¸é ÀÚ¹Ù ¾ð¾î¿Í JDBC¸¦ »ç¿ëÇÑ µ¥ÀÌÅͺ£À̽º ÇÁ·Î±×·¡¹Ö, ±×¸®°í °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö°ú °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ ¾î´À Á¤µµ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. Ãß°¡·Î 3ºÎ´Â À¥ °³¹ß°ú ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ±âÃÊ Áö½ÄÀÌ ÇÊ¿äÇϸç JUnitÀ» ´Ù·ê ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×¸®°í ¿¹Á¦ Äڵ带 ½ÇÇàÇÏ·Á¸é ¸ÞÀ̺쿡 ´ëÇؼµµ ¾à°£ÀÇ Áö½ÄÀÌ ÇÊ¿äÇÏ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
JPA´Â Å©°Ô °´Ã¼¿Í Å×À̺íÀ» ¾î¶»°Ô ¸ÅÇÎÇØ¾ß ÇÏ´ÂÁö¿¡ °üÇÑ ¼³°è ºÎºÐ°ú ¼³°èÇÑ ¸ðµ¨À» ½ÇÁ¦ »ç¿ëÇÏ´Â ºÎºÐÀ¸·Î ³ª´ ¼ö ÀÖ´Ù. Ã¥ÀÇ ¾ÕºÎºÐ¿¡¼´Â ±âÃÊ À̷аú ¼³°è ¹æ¹ýÀ» ÇнÀÇÏ°í µÞºÎºÐ¿¡¼´Â ÇнÀÇÑ ÀÌ·ÐÀ» ¹ÙÅÁÀ¸·Î JPA¸¦ È°¿ëÇؼ ½ÇÁ¦ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÑ´Ù.
ÀÌ Ã¥Àº Å©°Ô ³× ºÎºÐÀ¸·Î ³ª´µ¾î ÀÖ´Ù.
1Àå¿¡¼ 9ÀåÀº ÀÌ·Ð ÆíÀÌ´Ù. °´Ã¼¿Í Å×À̺íÀ» ¸ÅÇÎÇÏ´Â ¹æ¹ý°ú JPAÀÇ ÇÙ½É ±â´ÉµéÀ» ¾Ë¾Æº»´Ù. 4ÀåºÎÅÍ 9Àå±îÁö´Â °¢ ÀåÀÇ ¸¶Áö¸·¿¡ Á¡ÁøÀûÀ¸·Î µµ¸ÞÀÎ ¸ðµ¨À» ¼³°èÇØ ³ª°¡´Â ½ÇÀü ¿¹Á¦°¡ ÀÖ¾î¼ ÇнÀÇÑ ³»¿ëÀ» ½ÇÁ¦·Î Àû¿ëÇغ¼ ¼ö ÀÖ°Ô Çß´Ù.
10ÀåÀº °´Ã¼ÁöÇâ Äõ¸® ¾ð¾î¿¡ ´ëÇÑ ³»¿ëÀÌ´Ù. JPA°¡ Á¦°øÇÏ´Â °´Ã¼ÁöÇâ Äõ¸® ¾ð¾îÀÎ JPQL(Java Persistence Query Language)ºÎÅÍ Á÷Á¢ SQLÀ» ÀÛ¼ºÇÏ´Â ³×ÀÌƼºê SQL±îÁö ¾Ë¾Æº»´Ù.
11Àå°ú 12ÀåÀº ½Ç¹«¿¡¼ JPA¸¦ »ç¿ëÇϱâ À§ÇÑ È°¿ëÆíÀÌ´Ù. ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿Í JPA¸¦ »ç¿ëÇؼ ¾î¶»°Ô À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´ÂÁö ÇнÀÇÏ°í ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¿Í QueryDSLÀ̶ó´Â Çõ½ÅÀûÀÎ ¿ÀǼҽºµµ »ç¿ëÇغ»´Ù.
13Àå¿¡¼ 16ÀåÀº Æ®·£Àè¼Ç°ú ¶ô, ij½Ã, ¼º´É ÃÖÀûÈ µî JPAÀÇ ´Ù¾çÇÑ °í±Þ ÁÖÁ¦µéÀ» ´Ù·é´Ù.
¡Ú ¿Â¶óÀÎ °ÀÇ ¡Ú
Áö±Ý±îÁö ´Ù¾çÇÑ ½Ç¹« ÇÁ·ÎÁ§Æ®¿¡ JPA¸¦ µµÀÔÇß´Ù. ÀÛ°Ô´Â ´Ü¼øÇÑ À¥ ¼ºñ½ººÎÅÍ Å©°Ô´Â Á¶ ´ÜÀ§ÀÇ °Å·¡ ±Ý¾×À» ó¸®ÇÏ´Â ÁÖ¹®, °áÁ¦, Á¤»ê ½Ã½ºÅÛ±îÁö JPA·Î Á÷Á¢ ¼³°èÇÏ°í °³¹ßÇß´Ù. JPA¸¦ óÀ½ ½Ç¹«¿¡ µµÀÔÇÒ ¶§´Â ÁÂÃæ¿ìµ¹ ÇßÁö¸¸, °³¹ß »ý»ê¼º°ú À¯Áöº¸¼ö°¡ È®¿¬È÷ ÁÁ¾ÆÁ³°í ÄÚµå Ç°Áú°ú Å×½ºÆ®¿¡ ´õ ¸¹Àº ½Ã°£À» ÇÒ¾ÖÇÒ ¼ö ÀÖ¾ú´Ù. ¹«¾ùº¸´Ù JPA¸¦ »ç¿ëÇغ» µ¿·áµéÀº ÀÌÀüÀ¸·Î µ¹¾Æ°¡°í ½Í¾îÇÏÁö ¾Ê¾Æ Çß´Ù. ÇÏÁö¸¸ JPA¿¡ °üÇÑ ±¹³» ÀÚ·á°¡ ºÎÁ·ÇØ ¾î·Á¿òÀÌ ¸¹¾Ò´Ù. ±×·¡¼ 2015³â Á÷Á¢ ÀÌ Ã¥À» ½è´Ù.
Ã¥°ú ÇÔ²² º¼ ¼ö ÀÖ´Â À¯·á ¿Â¶óÀÎ °ÀǸ¦ Á¦°øÇÑ´Ù. Ã¥À» Ãâ°£ÇÑ µÚ ³×À̹ö, Ä«Ä«¿À¿Í °°Àº ÀÎÅÍ³Ý ºñÁî´Ï½º ȸ»çºÎÅÍ ¿ì¾ÆÇÑÇüÁ¦µé, 11¹ø°¡ µî eÄ¿¸Ó½º ȸ»ç±îÁö JPA¸¦ »ç¿ë ÁßÀ̰ųª µµÀÔÇÏ·Á´Â ¸¹Àº ȸ»ç¿¡¼ °¿¬Çß´Ù. Ã¥¿¡¼ ÀÌÇØÇϱ⠾î·Æ´ø ºÎºÐÀ» °ÀǸ¦ ÅëÇØ ½±°Ô ÀÌÇØÇß´Ù´Â °³¹ßÀÚµéÀÇ À̾߱⸦ µè°í ¿Â¶óÀÎ °ÀǸ¦ °³¼³Çß´Ù. Âü°í·Î °ÀÇ´Â ÃֽŠ¹öÀüÀÇ ½ºÇÁ¸µ ºÎÆ®¿Í JPA¸¦ »ç¿ëÇÏ°í, ÄÚµå·Î ½±°Ô µû¶óÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ½Ç¹« ³ëÇϿ츦 Àü´ÞÇÏ´Â µ¥ ´õ ¸¹Àº ÃÊÁ¡À» ¸ÂÃè´Ù.
¿©·¯ºÐµµ ½Ç¹«¿¡¼ JPA¸¦ ÀڽŠÀÖ°Ô È°¿ëÇÒ ¼ö Àֱ⸦ ¹Ù¶õ´Ù.
̵̧ȍ
JPA¸¦ óÀ½ Á¢ÇßÀ» ¶§ÀÇ ³î¶ó¿òÀº ¾ÆÁ÷µµ ÀØÇôÁöÁö ¾Ê´Â´Ù. Áö±Ý±îÁö °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡¼ °´Ã¼¸¦ °ü¸®ÇÏ·Á°í ÀÛ¼ºÇß´ø ¹«¼öÇÑ CRUD ÄÚµå¿Í SQLµéÀÌ ¸Ó¸´¼ÓÀ» ½ºÃÄ Áö³ª°¬´Ù. ¸¶Ä¡ ½Ã°ñ¿¡¼ Á÷Á¢ ¸ð³»±â¸¦ ÇÏ´Ù°¡ ÃֽŠƮ·¢Å͸¦ ¸¸³ ±âºÐÀ̾ú´Ù.
°´Ã¼¸¦ °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåÇÏ·Á¸é ¸¹Àº ½Ã°£°ú Äڵ带 ¼ÒºñÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î °´Ã¼¸¦ SQL·Î º¯È¯ÇÏ´Â ´Ü¼øÇÑ ÀϺÎÅÍ, °´Ã¼ÀÇ »ó¼Ó ±¸Á¶¸¦ Å×ÀÌºí¿¡ ÀúÀåÇÏ´Â º¹ÀâÇÑ ÀϱîÁö, °³¹ßÀÚ´Â °´Ã¼¿Í µ¥ÀÌÅͺ£À̽º »çÀÌ¿¡¼ ¹«¼öÇÑ ¸ÅÇÎ ÄÚµå¿Í SQLÀ» ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ÀÚ¹Ù Áø¿µ¿¡¼´Â ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ JPA¶ó´Â Ç¥ÁØ ±â¼úÀ» Á¦°øÇÑ´Ù. ÀÚ¹Ù ORM Ç¥ÁØ JPA´Â SQL ÀÛ¼º ¾øÀÌ °´Ã¼¸¦ µ¥ÀÌÅͺ£À̽º¿¡ Á÷Á¢ ÀúÀåÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ°í, °´Ã¼¿Í °ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÇ Â÷À̵µ Áß°£¿¡¼ ÇØ°áÇØÁØ´Ù.
±×°£ ½Ç¹«¿¡ JPA¸¦ µµÀÔÇÏ¸é¼ Ã³À½¿¡´Â ÁÂÃæ¿ìµ¹Çϱ⵵ ÇßÁö¸¸, °³¹ß »ý»ê¼º°ú À¯Áöº¸¼ö°¡ È®¿¬È÷ ÁÁ¾ÆÁ³°í, ³²Àº ½Ã°£¿¡ ÄÚµå Ç°Áú°ú Å×½ºÆ®¿¡ ´õ ¸¹Àº ½Ã°£À» ½ñÀ» ¼ö ÀÖ¾ú´Ù. ±×¸®°í JPA¸¦ »ç¿ëÇغ» µ¿·áµéÀº ÀüÀ¸·Î µ¹¾Æ°¡°í ½Í¾îÇÏÁö ¾Ê¾Ò´Ù. ÇÏÁö¸¸ JPA¿¡ ´ëÇÑ ±¹³» ÀÚ·á°¡ ºÎÁ·Çß°í, ´ëºÎºÐÀÌ ¿ø¼¿©¼ ¾î·Á¿î Á¡ÀÌ ¸¹¾Ò´Ù. ±×·¡¼ ¶§°¡ µÇ¸é JPA¿¡ ´ëÇÑ Ã¥À» ¾²°í ½Í´Ù°í ¾î·ÅDzÇÏ°Ô »ý°¢Çߴµ¥, ¸¶Ä§ ¡ºÅäºñÀÇ ½ºÇÁ¸µ 3¡»°ú ¡ºÅäºñÀÇ ½ºÇÁ¸µ 3.1¡»À» Àú¼úÇϽŠÀÌÀϹΠ´Ô²²¼ JPA¿¡ °üÇÑ Ã¥ ¾²±â¸¦ ±ÇÀ¯Çϼ̴Ù. 6°³¿ù Á¤µµ¸é ÃæºÐÇÏ°ÚÁö »ý°¢ÇÏ°í Ã¥À» ¾²±â·Î Çߴµ¥, ¾î´Àµ¡ ½Ã°£ÀÌ È»ìó·³ ºü¸£°Ô Áö³ª 2³âÀÌ Áö³ª¹ö·È´Ù.
ÀÌ Ã¥¿¡¼´Â JPA ±âÃÊ À̷аú ÇÙ½É ¿ø¸®, ±×¸®°í ½Ç¹«¿¡ ÇÊ¿äÇÑ ¼º´É ÃÖÀûÈ ¹æ¹ý±îÁö JPA¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ´Ù·ç´Â µ¥ ÁÖ·ÂÇß´Ù. ¶ÇÇÑ, ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿Í JPA¸¦ ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°í, ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA, QueryDSL °°Àº Çõ½ÅÀûÀÎ ¿ÀÇ ¼Ò½º¸¦ È°¿ëÇؼ ÀÚ¹Ù À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» È¿°úÀûÀ¸·Î °³¹ßÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇß´Ù.
µ¹ÀÌÄѺ¸´Ï º¸À߰;ø´Â »ç¶÷ÀÇ Ã¥À» ±â´Ù¸®°í ÀÀ¿øÇØÁֽŠºÐµé ´öºÐ¿¡ ¿©±â±îÁö ¿Â °Í °°´Ù. Áø½ÉÀ¸·Î Á¤¸» Å« ÈûÀÌ µÇ¾ú±â¿¡, ±× ¸ðµç ºÐ²² °¨»ç¸¦ ÀüÇÑ´Ù. ÀÌ Ã¥ÀÌ JPA¸¦ ½ÃÀÛÇÏ´Â ºÐµé²² Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ µÇ±æ ¹Ù¶õ´Ù.
ÀÌÀϹÎ(Epril ´ëÇ¥ ÄÁ¼³ÅÏÆ®, ÀÛ°¡)
JPA´Â µ¥ÀÌÅͺ£À̽º ±â¼úÀ̶ó±âº¸´Ù ¾ÖÇø®ÄÉÀ̼ÇÀÇ µ¥ÀÌÅ͸¦ °´Ã¼ÁöÇâ °üÁ¡À¸·Î ¹Ù¶óº¸°í ´Ù·ê ¼ö ÀÖ°Ô ÇØÁÖ´Â °´Ã¼ÁöÇâ ±â¼úÀÔ´Ï´Ù. °´Ã¼ÁöÇâÀÇ ±Ùº» ¿ø¸®¸¦ Ãæ½ÇÈ÷ µû¸£¸é »ý»ê¼º°ú Ç°Áú, À¯Áöº¸¼ö¼º ¸ðµÎ¸¦ ¸¸Á·½Ãų ¼ö ÀÖ´Â È¿°úÀûÀÎ °³¹ßÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀº ÀÌ¹Ì ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©°¡ Àß º¸¿©ÁÖ¾ú½À´Ï´Ù. JPA´Â Àü ¼¼°è ½ºÇÁ¸µ °³¹ßÀÚµéÀÌ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â µ¥ÀÌÅÍ Ã³¸® ±â¼úÀ̱⵵ ÇÕ´Ï´Ù. ±×·±µ¥ JPA¸¦ ÀÌ¿ëÇØ °´Ã¼ °üÁ¡¿¡¼ º¹ÀâÇÑ ¹®Á¦¸¦ ´Ù·ç´Â µ¥¸¸ ÁýÁßÇÏ´Ù º¸¸é ÀÚÄ© À̸鿡¼ ÀϾ´Â µ¥ÀÌÅͺ£À̽º ÀÛ¾÷ÀÇ ÃÖÀûȸ¦ ³õÄ¥ ¼öµµ ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º´Â ±â¾÷ÀÇ °¡Àå Áß¿äÇÑ IT ÀÚ»êÀÌ°í, È®Àå¿¡ ºñ¿ëÀÌ ¸¹ÀÌ µå´Â ¸®¼Ò½ºÀ̱⠶§¹®¿¡ Ç×»ó ÃÖÀûȸ¦ ¿°µÎ¿¡ µÖ¾ß ÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ ÀüÅëÀûÀÎ µ¥ÀÌÅͺ£À̽º ±â¼ú¿¡¼ JPA·Î ÀüȯÇϱⰡ µÎ·Á¿î ºÐµéµµ °è½Å µíÇÕ´Ï´Ù. ±×·¡¼ JPA¸¦ ½Ç¹«¿¡ Àû¿ëÇÏ·Á¸é µ¥ÀÌÅ͸¦ °´Ã¼ÁöÇâÀûÀ¸·Î ´Ù·ç´Â ¹æ¹ý°ú ÇÔ²² µ¥ÀÌÅͺ£À̽º ¼º´ÉÀ» °í·ÁÇÑ ¼³Á¤ ¹× °³¹ß ¹æ¹ýÀ» ¹Ýµå½Ã ÇÔ²² ÀÍÇô¾ß ÇÕ´Ï´Ù. ÀÌ Ã¥Àº JPA¸¦ ÀÌ¿ëÇÑ °´Ã¼ÁöÇâ °³¹ß°ú µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ Àü·«, µÎ °¡Áö¸¦ Ãæ½ÇÇÏ°Ô ±×¸®°í ±ÕÇü ÀÖ°Ô ´Ù·ç´Â Ã¥ÀÔ´Ï´Ù. JPA µµÀÔÀ» ¾ÆÁ÷ °í¹ÎÇÏ°í °è½Ã°Å³ª JPA¸¦ ÀÌ¿ëÇØ °³¹ßÇÏ°í ÀÖÁö¸¸ ÃÖ¼±ÀÇ °³¹ß ¹æ¹ýÀÌ ±Ã±ÝÇϽŠºÐÀ̶ó¸é ²À Àо½Ã±â¸¦ ÃßõÇص帳´Ï´Ù.
¼Õ±Ç³²(ÄíÆÎ °³¹ßÀÚ)
ÇöÀç Á¦°¡ ÀÏÇÏ´Â ÄíÆÎÀº ¿ì¸®³ª¶óÀÇ ´ëÇ¥ÀûÀÎ ÀüÀÚ»ó°Å·¡ ¾÷ü·Î¼, ¿¬°£ °Å·¡¾×ÀÌ ¼öÁ¶ ¿ø¿¡ ´ÞÇϸç, Çѱ¹Àº ¹°·Ð ¹Ì±¹, Áß±¹ µîÁö¿¡ ºÐÆ÷ÇÑ ¼ö¹é ¸íÀÌ ³Ñ´Â ÇÁ·Î±×·¡¸ÓµéÀÌ ÇÔ²² °³¹ß ¾÷¹«¸¦ ÁøÇàÇÏ°í ÀÖ½À´Ï´Ù. ÄíÆÎÀ» ÁöÅÊÇÏ´Â ÀüÀÚ»ó°Å·¡ ½Ã½ºÅÛÀÇ ÇÙ½É ÁßÃß´Â ÀÚ¹Ù¿Í ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©, JPA/ÇÏÀ̹ö³×ÀÌÆ®·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.
±×°£, JPA·Î °³¹ßÇغ» ÀûÀÌ ¾ø´Â ¸¹Àº °³¹ßÀÚµéÀÌ È¸»ç¿¡ óÀ½ ÀÔ»çÇØ ¿©·¯ ¾î·Á¿î »óȲ¿¡ ³õÀÌ´Â ¸ð½ÀÀ» ÁöÄѺÁ¾ß ÇÏ´Â ¾ÈŸ±î¿î »óȲµµ ÀûÁö ¾Ê¾Ò´ø µ¥´Ù°¡, ¸¶¶¥ÇÑ ±¹³» Âü°í ÀÚ·áµµ ¾ø¾î¼ ¸Å¿ì °í½ÉÇÏ´ø Â÷¿¡ ÀÌ·¸°Ô ÁÁÀº Ã¥ÀÌ Ãâ°£µÇ¾î ¸Å¿ì ±â»Þ´Ï´Ù. ¿ì¼±, Ãâ°£¿¡ ¾Õ¼¼ Ã¥À» ¸ÕÀú Àо ¼ö ÀÖ´Â ¼ÒÁßÇÑ ±âȸ¸¦ °¡Áö°Ô µÈ °Í¿¡ °¨»çµå¸³´Ï´Ù.
ÀÌ Ã¥¿¡¼´Â JPA¿¡ °üÇÑ ³»¿ëÀ» Á¤¸» ½±°Ô ¼³¸íÇϸ鼵µ Áß¿äÇÑ ÇÙ½É »çÇ×µéÀ» ¸ðµÎ Àß Àü´ÞÇÏ°í ÀÖ¾î JPA¸¦ óÀ½ Á¢ÇÏ´Â »ç¶÷µé¿¡°Ôµµ JPA¿¡ ´ëÇÑ ÀÌÇØ¿Í ÄÚµå Ç°Áú Çâ»ó¿¡ Å« µµ¿òÀÌ µÇ¸®¶ó´Â Á¡¿¡¼, Àд ³»³» ¹Ý°¡¿î ¸¶À½À» ±ÝÄ¡ ¸øÇß½À´Ï´Ù. JPA/ÇÏÀ̹ö³×ÀÌÆ®´Â ÀÌ¹Ì ¿ì¸®³ª¶ó¸¦ Á¦¿ÜÇÑ ´Ù¸¥ ±¹°¡¿¡¼´Â º¸ÆíÀûÀ¸·Î »ç¿ëµÇ´Â ±â¼ú·Î¼, SQL Äõ¸®¸¦ Á÷Á¢ ÀÛ¼ºÇÒ ¶§º¸´Ù ¿ùµîÇÑ °³¹ß ¼Óµµ¿Í À¯Áöº¸¼ö¼ºÀ» ´©¸± ¼ö ÀÖ½À´Ï´Ù. ÇؿܻӸ¸ ¾Æ´Ï¶ó ±¹³»¿¡¼µµ ÀÌ¹Ì ¼º°øÀûÀ¸·Î ½Ç¹«¿¡¼ »ç¿ë ÁßÀΠȸ»ç°¡ ÀÖ´Ù´Â »ç½ÇÀ» ¾Æ½Å´Ù¸é, ±×µ¿¾È JPA »ç¿ëÀ» ¸Á¼³ÀÎ ºÐµéÀÌ´õ¶óµµ ÀÌ Ã¥À» Àаí Â÷±ÙÂ÷±Ù ½Ç½ÀÇغ» ÈÄ¿¡ ÃæºÐÈ÷ ÀڽۨÀ» °¡Áö°í ¹®Á¦¾øÀÌ µµÀÔÇÏ½Ç ¼ö ÀÖÀ¸¸®¶ó ¹Ï½À´Ï´Ù.
ÇѼº°ï(»ï¼ºSDS ¼ö¼®º¸)
´Ù¾çÇÑ ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾î¸¦ ±â¹ÝÀ¸·Î Ç¥ÁØÈµÈ ¾ÆÅ°ÅØó¸¦ Á¦°øÇÏ´Â ÀüÀÚÁ¤ºÎ Ç¥ÁØÇÁ·¹ÀÓ¿öÅ©¿¡´Â ¸î °¡Áö µ¥ÀÌÅÍ ¾×¼¼½º ±â¼úÀ» Á¦°øÇÕ´Ï´Ù. °ø°øÁ¤º¸È ºÐ¾ß¿¡¼ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ¾ÆÀ̹ÙƼ½º(¶Ç´Â ¸¶À̹ÙƼ½º)»Ó¸¸ ¾Æ´Ï¶ó ORMÀÇ ±â´ÉÀ» Á¦°øÇÏ´Â ÇÏÀ̹ö³×ÀÌÆ®, ORM¿¡ ´ëÇÑ Ç¥ÁØÀ» Á¦½ÃÇÏ´Â JPA, ´Ù¾çÇÑ ½ºÅ丮Áö(storage) ±â¼ú·ÎÀÇ È®ÀåÀ» Á¦½ÃÇÏ´Â ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¹× ½ºÇÁ¸µ µ¥ÀÌÅÍ ¸ù°íDB±îÁö ´Ù¾çÇÑ ±â¼úÀÌ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. ±×·¯³ª ÀüÀÚÁ¤ºÎ Ç¥ÁØÇÁ·¹ÀÓ¿öÅ© È°¿ë¿¡ ÀÖ¾î¼, À¯µ¶ ¾ÆÀ̹ÙƼ½º/¸¶À̹ÙƼ½º¿¡ ´ëÇÑ µµÀÔ·üÀÌ JPA¿¡ ºñÇØ ±²ÀåÈ÷ ³ôÀº ÆíÀÔ´Ï´Ù. Æò¼Ò JPAÀÇ Æí¸®¼ºÀ̳ª È¿À²¼º ¶§¹®¿¡ ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®¿¡ JPA¸¦ Àû±Ø È°¿ëÇÏ°í ÀÖ´Â Á¦ °³ÀÎÀûÀÎ ÀÔÀå¿¡¼´Â ¾Æ½¬¿òÀÌ ´Ù¼Ò ¸¹¾Ò½À´Ï´Ù. ±¹³»ÀÇ °æ¿ì´Â Á¤º¸°øÇйæ¹ý·ÐÀÇ ¿µÇâÀ» ¹ÞÀº °³¹ß¹æ¹ý·Ð¿¡ ÀÇÇØ µ¥ÀÌÅͺ£À̽º ¸ðµ¨¸µÀÌ Áß¿ä½ÃµÇ°í, ÀÌ·Î ÀÎÇÏ¿© ¸ðµ¨¸µ°ú °³¹ß°úÀÇ ºÒÀÏÄ¡°¡ ¹ß»ýÇÏ´Â µîÀÇ ¹®Á¦·Î ÀÎÇÏ´Â °ÍÀ¸·Î º¸ÀÔ´Ï´Ù. ÀúÀÚ°¡ À̾߱âÇÏ´Â ¡®Æз¯´ÙÀÓÀÇ ºÒÀÏÄ¡¡¯µµ ÀÌ¿Í ÀϸƻóÅëÇÕ´Ï´Ù. ±×·± Àǹ̿¡¼ ÀÌ Ã¥Àº JPA¿¡ ´ëÇÑ ±âÃÊ ¹× ¿©·¯ ºÐ¾ß¿¡ ´ëÇÑ ±íÀÌ ÀÖ´Â ³»¿ë»Ó¸¸ ¾Æ´Ï¶ó µµ¸ÞÀÎ ¸ðµ¨ ¼³°è µîÀÇ ½ÇÀü ¿¹Á¦µéÀ» ÅëÇØ ½ÇÁúÀûÀÎ JPA Àû¿ëÀÇ °¡À̵带 Á¦½ÃÇÕ´Ï´Ù. ¾Æ¿ï·¯ ¸®Æ÷ÁöÅ丮 ÀÎÅÍÆäÀ̽º ¸ðµ¨ ±â¹ÝÀÇ ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA, ŸÀÔ¾ÈÁ¤¼ºÀ» º¸ÀåÀ» À§ÇÑ QueryDSL µîÀÇ ÃֽŠ±â¼ú°ú ij½Ã ¹× ¼º´É ÃÖÀûÈ µîÀÇ ´Ù¾çÇÑ ÁÖÁ¦¸¦ ´Ù·ëÀ¸·Î½á ¿£ÅÍÇÁ¶óÀÌÁî ·¹º§ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß¿¡ ½ÇÁúÀûÀÎ µµ¿òÀÌ µÉ °ÍÀ¸·Î ±â´ëÇÕ´Ï´Ù.
ÃÖ¹ü±Õ(ÀÛ°¡)
JPA¸¦ ÁÁ¾ÆÇÏ´Â ÀÌÀ¯´Â °³¹ß ½Ã°£ ¶§¹®ÀÔ´Ï´Ù. JPA¸¦ Á¶±Ý¸¸ ÇнÀÇصµ ¸¹Àº ´Ü¼ø ÀÛ¾÷À» ÁÙ¿© °³¹ß ½Ã°£À» ´ÜÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. °Ô´Ù°¡ JPA¸¦ ¼³°è¿¡ ³ì¿© ³ÖÀ¸¸é º¹ÀâÇÑ Äõ¸® ´ë½Å °´Ã¼ÁöÇâÀûÀ¸·Î Àß ¼³°èµÈ µµ¸ÞÀÎ Äڵ带 ¾òÀ» ¼öµµ ÀÖ½À´Ï´Ù. JPA¸¦ µµÀÔÇؼ ÀÌ·± È¿°ú¸¦ ¾ò°í ½ÍÀº ºÐÀ̶ó¸é ÀÌ Ã¥À¸·Î ÇнÀÇϱ⸦ Àû±Ø ÃßõÇÕ´Ï´Ù.
JPAÀÇ ±âÃÊ ¼³Á¤ºÎÅÍ ¼º´É ÃÖÀûÈ¿¡ À̸£±â±îÁö Ã¥¿¡ ³ì¾Æ ÀÖ´Â ÀúÀÚÀÇ Ç³ºÎÇÑ °æÇèÀ» ÀÚ½ÅÀÇ °ÍÀ¸·Î ¸¸µé ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
¹Ú¼ºÃ¶(SK Ç÷¡´Ö °³¹ßÆÀ ±×·ìÀå)
´ë·« 2005³â Á¤µµ¿´´ø °ÍÀ¸·Î ±â¾ïÇÕ´Ï´Ù. ȸ»ç¿¡¼ µ¿·áµé°ú Àú³á ȸ½ÄÀ» ÇÏ°í´Â ÀÌ·±Àú·± À̾߱⸦ ³ª´©´Ù°¡ ÈÁ¦°¡ ORMÀ¸·Î ÇâÇß½À´Ï´Ù. "¿Ö ORMÀº ÀÌ·¸°Ô º¸±ÞÀÌ ´õµô±î?" °´Ã¼ ¸ðµ¨¸µÀÌ ³Î¸® º¸±ÞµÇÁö ¾Ê¾Ò°í, »ç¶÷µéÀº SQL¿¡ Áö³ªÄ¡°Ô ÀÇÁ¸ÀûÀÌ°í, Çü½ÄÀûÀ¸·Î´Â ´Ù´Ü°è ¾ÆÅ°ÅØó¸¦ »ç¿ëÇÏÁö¸¸ »ç½ÇÀº ¿©ÀüÈ÷ Ŭ¶óÀ̾ðÆ®-¼¹ö ¹æ½ÄÀ¸·Î °³¹ßÇÏ°í, ORMÀÌ ¼º´É Á¶Á÷¿¡¼ ¸ð³ µ¹ Ãë±Þ ¹Þ±â¸¦ ½È¾îÇÑ´Ù´Â µîÀÇ ÀÇ°ßÀÌ ³ª¿ÔÁö¸¸, ¸ðµç °ÍÀ» ¶°³ª¼ ÀûÀýÇÑ ±³Àç°¡ ¾ø´Ù´Â »ç½ÇÀÌ °¡Àå Å« °É¸²µ¹À̶ó´Â °á·ÐÀ̾ú½À´Ï´Ù. ´ç½Ã 3.0 ¹öÀüÀÌ Ãâ½ÃµÈ ÇÏÀ̹ö³×ÀÌÆ®´Â ±â¼úµµ ÃæºÐÈ÷ ¼º¼÷Çß°í ¹®¼µµ Ãæ½ÇÇßÀ¸¸ç Ãâ°£µÈ Ã¥µµ ´Ù¾çÇßÁö¸¸ ¿ì¼±Àº ÇѱÛÀÌ ¾Æ´Ò »Ó ¾Æ´Ï¶ó »ç¶÷µéÀÇ ´«³ôÀÌ¿¡ ¸ÂÁö ¾Ê¾Ò½À´Ï´Ù. ±³ÀçÀÇ ¼ö´Â ÀûÁö ¾Ê¾ÒÁö¸¸ ÀûÀýÇÑ ±³Àç°¡ ¾ø¾ú´ø °ÍÀÌÁö¿ä. ±×·ÎºÎÅÍ 10¿© ³âÀÌ Èê·¯, ¾î´Àµ¡ 2015³âÀÔ´Ï´Ù. ±× »çÀÌ »õ·Î¿î ¾ð¾î¿Í Ç÷§ÆûÀÌ ¶ß°í Á³À¸¸ç, NoSQL°ú Ŭ¶ó¿ìµåÀÇ ±¤Ç³µµ ºÒ¾ú°í, ½º¸¶Æ®ÆùÀ» ÅëÇØ N½ºÅ©¸°ÀÇ ½Ã´ë°¡ ¿·È½À´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®°¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â ¹æ½ÄÀº ¿©ÀüÈ÷ ±×´ë·ÎÀÔ´Ï´Ù. ¾ÆÁ÷µµ °³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡´Â ¡°ORMÀ» ¾²´Â °÷ÀÌ ÀÖ³ª¿ä?¡±¶ó´Â Áú¹®ÀÌ ¿Ã¶ó¿É´Ï´Ù. °³¹ß ÇöÀ帶´Ù »ý»ê¼º°ú ¼ÒÇÁÆ®¿þ¾î Ç°ÁúÀ» Çâ»ó½ÃÄÑ¾ß ÇÑ´Ù´Â ¸ñ¼Ò¸®´Â ³ôÁö¸¸ ÀÌ·¯ÇÑ ¹®Á¦µéÀ» ´ëÆø °³¼±½Ãų ¼ö ÀÖ´Â ORM¿¡ ´ëÇؼ´Â Àǽɸ¸ ½×¿© °©´Ï´Ù. ³×¸ð ¹ÙÄû ¼ö·¹¸¦ ¹Ì´À¶ó Èûµé¾îÇϸ鼵µ µÕ±Ù ¹ÙÄû¸¦ ¾²¶ó°í ÁÖ¸é Á¤ÀÛ ¹ÙÄû¸¦ °¥ ½Ã°£ÀÌ ¾ø´Ù°í °ÅºÎÇÏ´Â Çü±¹ÀÔ´Ï´Ù. ORMÀº ³ÇØÇÑ ±â¼úµµ º¹ÀâÇÑ ±â¼úµµ ¾Æ´Õ´Ï´Ù. µµÀÔÇϱ⿣ ¹Ì¼º¼÷ÇÑ ÃֽŠ±â¼úÀº ´õ´õ¿í ¾Æ´Õ´Ï´Ù. ORMÀÌ ¾î·Á¿ö º¸ÀÌ´Â °ÍÀº ±×Àú ³¸¼³±â ¶§¹®ÀÏ »ÓÀÔ´Ï´Ù.
ÀúÀÚ ±è¿µÇÑ ´ÔÀº JPA Àü¹®°¡·Î¼ ÀúÈñ ÆÀÀ» ºñ·ÔÇÑ ¿©·¯ °÷¿¡¼ JPA¸¦ µµÀÔÇÏ´Â µ¥ µµ¿òÀ» ÁÖ¾ú°í ±âȸ°¡ ÀÖÀ» ¶§¸¶´Ù °ÀǸ¦ ÅëÇØ JPA¸¦ ¼Ò°³ÇÏ°í ÀÚ½ÅÀÇ ±íÀº Áö½Ä°ú °æÇèÀ» °øÀ¯Çß½À´Ï´Ù. ±è¿µÇÑ ´ÔÀÇ °ÀǸ¦ µé¾î º» »ç¶÷À̶ó¸é ´Ü¼øÈ÷ JPA ¹®¼ ¸î ¹ø ÀÐÀº ÈÄ ¾âÆÅÇÑ Áö½ÄÀ» ¼³ÆÄÇÏ´Â ¾óÄ¡±â Àü¹®°¡°¡ °áÄÚ ¾Æ´Ï¶ó´Â »ç½ÇÀ» ¸ðµÎ Àß ¾Æ½Ç °Ì´Ï´Ù.
ÀÌÁ¦ ¡®ÀûÀýÇÑ¡¯ JPA Ã¥ÀÌ ¿ì¸® ¾Õ¿¡ ³õ¿´½À´Ï´Ù. ¿ì¸®°¡ ³×¸ð³ ¹ÙÄû¸¦ ¹ö¸®°í µÕ±Ù ¹ÙÄû·Î °¥¾Æ ³¥Áö ¸»Áö °áÁ¤ÇØ¾ß ÇÒ Â÷·ÊÀÔ´Ï´Ù. ¾à°£ÀÇ ¿ë±â¸¸À¸·Î ÃæºÐÇÕ´Ï´Ù.
Á¶¿µÈ£(ÀÛ°¡)
°´Ã¼ÁöÇâ Æз¯´ÙÀÓÀÇ ÇÙ½ÉÀº ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â °´Ã¼µé¿¡°Ô ÀûÀýÇÑ Ã¥ÀÓÀ» ÇÒ´çÇÏ´Â °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼ °´Ã¼ÀÇ Ã¥ÀÓÀ̶õ °´Ã¼°¡ ¿ÜºÎ¿¡ Á¦°øÇÏ´Â ¡®Çൿ¡¯°ú ¹ÐÁ¢ÇÑ °ü·ÃÀÌ ÀÖ½À´Ï´Ù. µû¶ó¼ °´Ã¼ÁöÇâÀÇ ¼¼°è´Â ¡®Çൿ¡¯ÀÌ ÁÖ°¡ µÇ´Â ¼¼°èÀÔ´Ï´Ù. °´Ã¼ÀÇ Çൿ ÀúÆí¿¡´Â ¡®µ¥ÀÌÅÍ¡¯°¡ Áß½ÉÀÌ µÇ´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º¶ó´Â ¶Ç ´Ù¸¥ ¼¼°è°¡ Á¸ÀçÇÕ´Ï´Ù. ÃÖ±Ù ¸î ³â µ¿¾È NoSQLÀÌ ¼¼°£ÀÇ ÁÖ¸ñÀ» ²ø¾úÁö¸¸ ¿©ÀüÈ÷ µ¥ÀÌÅͺ£À̽º ¼¼°èÀÇ Çì°Ô¸ð´Ï¸¦ Áã°í ÀÖ´Â °ÍÀº °ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÔ´Ï´Ù. ¹®Á¦´Â ÇൿÀ» Á߽ɿ¡ ³õ´Â °´Ã¼ÁöÇâ°ú µ¥ÀÌÅ͸¦ Á߽ɿ¡ ³õ´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º »çÀÌ¿¡´Â Á¼È÷±â ¾î·Á¿î °Å¸®°¡ ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. »ç½Ç À¯¿¬ÇÏ°í È®Àå °¡´ÉÇÑ °´Ã¼ÁöÇâ ¼³°è¸¦ ÇâÇØ ³ª¾Æ°¥¼ö·Ï °´Ã¼ ±¸Á¶¿Í µ¥ÀÌÅÍ ¸ðµ¨ »çÀÌÀÇ °Å¸®´Â Á¡Á¡ ´õ ¸Ö¾îÁö°Ô µË´Ï´Ù. °á±¹ °´Ã¼¿Í µ¥ÀÌÅÍ »çÀÌÀÇ º¹ÀâÇÑ ¸ÅÇο¡ ÁöÄ£ ´ëºÎºÐÀÇ °³¹ßÀÚµéÀº °´Ã¼ÁöÇâ ¼³°èÀÇ ±æÀ» Æ÷±âÇÑ Ã¤ µ¥ÀÌÅÍ Á¾¼ÓÀûÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó´Â ºÒÇàÇÑ °á¸»¿¡ À̸£°í ¸¿´Ï´Ù. JPA´Â ÀÌ¿Í °°Àº ºÒÇàÇÑ »çŸ¦ ¸·°í °´Ã¼ °ü°è ÀÓÇÇ´ø½º ºÒÀÏÄ¡ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ÀÚ¹Ù Áø¿µ¿¡¼ ¹ßÇ¥ÇÑ ORM Ç¥ÁØÀÔ´Ï´Ù. JPA¿Í °ü·ÃµÈ ³ª»Û ¼Ò½Ä°ú ÁÁÀº ¼Ò½ÄÀÌ Çϳª¾¿ ÀÖ½À´Ï´Ù. ³ª»Û ¼Ò½ÄÀº JPA°¡ °¡Áø °·ÂÇÔÀ» ÃæºÐÈ÷ ´©¸®±â À§Çؼ´Â °´Ã¼ÁöÇâ°ú µ¥ÀÌÅͺ£À̽º ¾çÂÊ ¸ðµÎ¸¦ Àß ÀÌÇØÇÏ°í ¼·Î °£ÀÇ Àå´ÜÁ¡À» Á¤È®ÇÏ°Ô ÆľÇÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. µû¶ó¼ JPA¸¦ ÇнÀÇÏ°í ÀÌÇØÇϱâ À§ÇØ ÇÊ¿äÇÑ »çÀü Áö½ÄÀ» ÀÍÈ÷´Â °úÁ¤ÀÌ ¿©·¯ºÐ¿¡°Ô ²Ï³ª ºÎ´ã½º·´°Ô ´À²¸Áú ¼öµµ ÀÖ½À´Ï´Ù. ÁÁÀº ¼Ò½ÄÀº Áö±Ý ÀÌ Ã¥ÀÌ JPA¸¦ ¹è¿ì°í ÀÍÈ÷´Â µ¥ ¼ö¹ÝµÇ´Â ¾î·Á¿òÀ» ¸¹Àº ºÎºÐ ÇØ°áÇØÁÙ °ÍÀ̶ó´Â Á¡ÀÔ´Ï´Ù. ÀÌ Ã¥ÀÇ °¡Àå Å« ÀåÁ¡Àº ´Ü¼øÈ÷ JPAÀÇ API¸¦ ³ª¿ÇÏ´Â µ¥ ±×Ä¡Áö ¾Ê°í JPAÀÇ ±â¹ÝÀ» ÀÌ·ç´Â ´Ù¾çÇÑ °´Ã¼ÁöÇâ À̷аú °ü°èÇü µ¥ÀÌÅͺ£À̽ºÀÇ °³³äÀ» Æø³Ð°Ô ¼³¸íÇÑ´Ù´Â »ç½ÇÀÔ´Ï´Ù. µû¶ó¼ ÀÌ Ã¥À» ÀÐ°í ³ª¸é JPA»Ó¸¸ ¾Æ´Ï¶ó °´Ã¼ÁöÇâ°ú °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ °üÇؼµµ Á» ´õ ±í°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ Ã¥ÀÇ ¶Ç ´Ù¸¥ ¹Ì´öÀº °úÇÑ ¿å½ÉÀ» ¹ö¸®°í Çٽɿ¡ ÁýÁßÇß´Ù´Â °ÍÀÔ´Ï´Ù. ÀúÀÚ´Â ½Ç¹«¿¡¼ °ÅÀÇ »ç¿ëµÇÁö ¾Ê´Â ºÎºÐÀº °ú°¨ÇÏ°Ô »ý·«ÇÏ°í ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â µ¥ ÀÚÁÖ »ç¿ëµÇ´Â ÇÙ½ÉÀûÀÎ ºÎºÐÀ» ´Ù·ç´Â µ¥ ÁýÁßÇÏ°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ Ã¥ÀÇ ÈĹݺο¡¼´Â JPA¿Í ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÇÔ²² Á¶ÇÕÇؼ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â ¹æ¹ý±îÁö ´Ù·ì´Ï´Ù. ÀÌ ³»¿ëÀ» ÀÐ°í ³ª¸é ¿©·¯ºÐ ÀڽŸ¸ÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇϱâ À§ÇØ JPA¸¦ »ç¿ëÇÏ´Â µ¥ Å« ¾î·Á¿òÀÌ ¾øÀ» °ÍÀÔ´Ï´Ù. óÀ½ JPA¸¦ ÇнÀÇÏ°Ô µÇ¸é ¹Ýµå½Ã ³Ñ¾î¾ß ÇÏ´Â ¸î ¹øÀÇ °íºñ°¡ Á¸ÀçÇÕ´Ï´Ù. ±×¸®°í ¸¹Àº ºÐµéÀÌ ÀÌ °íºñ¸¦ ³Ñ±âÁö ¸øÇÏ°í JPA ±â¼úÀ» Æ÷±âÇÏ´Â °ÍÀ» ÀÚÁÖ º¸¾Æ¿Ô½À´Ï´Ù. ±×·¯³ª ÀÌÁ¦´Â ±×·± °ÆÁ¤À» ÇÒ ÇÊ¿ä°¡ ¾øÀ» °Í °°½À´Ï´Ù. ÀÌ Ã¥ÀÌ ¾ÆÁÖ ½±°í Æí¾ÈÇÏ°Ô °íºñ¸¦ ³Ñ±æ ¼ö ÀÖµµ·Ï µµ¿ÍÁÙ °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù.
°ü°èÇü µ¥ÀÌÅͺ£À̽º¶ó´Â º®¿¡ ¸·Çô °´Ã¼ÁöÇâ Æз¯´ÙÀÓÀÇ ÀåÁ¡À» Æ÷±âÇØ¾ß Çß´ø ¼ö¸¹Àº °³¹ßÀڵ鿡°Ô, ±×¸®°í JPA´Â ¾î·Æ´Ù´Â ¸·¿¬ÇÑ µÎ·Á¿òÀ» °¡Áö°í °è½Å ¸ðµç ºÐµé²² ÀÌ Ã¥À» ±ÇÇÕ´Ï´Ù. ÀÌ Ã¥À» Àд ¿©·¯ºÐ ¸ðµÎ °´Ã¼ÁöÇâ ¼³°è¿Í µ¥ÀÌÅÍ ¸ðµ¨¸µ¿¡ ´ëÇÑ ´õ ³ÐÀº ½Ä°ßÀ» °®Ãß°Ô µÉ °ÍÀ̶ó°í È®½ÅÇÕ´Ï´Ù.
¸ñÂ÷
1Àå. JPA ¼Ò°³
1.1 SQL°ú ¹®Á¦Á¡
1.1.1 ¹Ýº¹, ¹Ýº¹ ±×¸®°í ¹Ýº¹
1.1.2 SQL¿¡ ÀÇÁ¸ÀûÀÎ °³¹ß
1.1.3 JPA¿Í ¹®Á¦ ÇØ°á
1.2 Æз¯´ÙÀÓÀÇ ºÒÀÏÄ¡
1.2.1 »ó¼Ó
1.2.2 ¿¬°ü°ü°è
1.2.3 °´Ã¼ ±×·¡ÇÁ Ž»ö
1.2.4 ºñ±³
1.2.5 Á¤¸®
1.3 JPA¶õ ¹«¾ùÀϱî?
1.3.1 JPA ¼Ò°³
1.3.2 ¿Ö JPA¸¦ »ç¿ëÇØ¾ß Çϴ°¡?
1.4 Á¤¸®
2Àå. JPA ½ÃÀÛ
2.1 ÀÌŬ¸³½º ¼³Ä¡¿Í ÇÁ·ÎÁ§Æ® ºÒ·¯¿À±â
2.2 H2 µ¥ÀÌÅͺ£À̽º ¼³Ä¡
2.3 ¶óÀ̺귯¸®¿Í ÇÁ·ÎÁ§Æ® ±¸Á¶
2.3.1 ¸ÞÀ̺ì°ú »ç¿ë ¶óÀ̺귯¸® °ü¸®
2.4 °´Ã¼ ¸ÅÇÎ ½ÃÀÛ
2.5 persistence.xml ¼³Á¤
2.5.1 µ¥ÀÌÅͺ£À̽º ¹æ¾ð
2.6 ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß
2.6.1 ¿£Æ¼Æ¼ ¸Å´ÏÀú ¼³Á¤
2.6.2 Æ®·£Àè¼Ç °ü¸®
2.6.3 ºñÁî´Ï½º ·ÎÁ÷
2.6.4 JPQL
2.7 Á¤¸®
3Àå. ¿µ¼Ó¼º °ü¸®
3.1 ¿£Æ¼Æ¼ ¸Å´ÏÀú ÆÑÅ丮¿Í ¿£Æ¼Æ¼ ¸Å´ÏÀú
3.2 ¿µ¼Ó¼º ÄÁÅؽºÆ®¶õ?
3.3 ¿£Æ¼Æ¼ÀÇ »ý¸íÁÖ±â
3.4 ¿µ¼Ó¼º ÄÁÅؽºÆ®ÀÇ Æ¯Â¡
3.4.1 ¿£Æ¼Æ¼ Á¶È¸
3.4.2 ¿£Æ¼Æ¼ µî·Ï
3.4.3 ¿£Æ¼Æ¼ ¼öÁ¤
3.4.4 ¿£Æ¼Æ¼ »èÁ¦
3.5 Ç÷¯½Ã
3.5.1 Ç÷¯½Ã ¸ðµå ¿É¼Ç
3.6 ÁØ¿µ¼Ó
3.6.1 ¿£Æ¼Æ¼¸¦ ÁØ¿µ¼Ó »óÅ·ΠÀüȯ: detach( )
3.6.2 ¿µ¼Ó¼º ÄÁÅؽºÆ® ÃʱâÈ: clear( )
3.6.3 ¿µ¼Ó¼º ÄÁÅؽºÆ® Á¾·á: close( )
3.6.4 ÁØ¿µ¼Ó »óÅÂÀÇ Æ¯Â¡
3.6.5 º´ÇÕ: merge( )
3.7 Á¤¸®
4Àå. ¿£Æ¼Æ¼ ¸ÅÇÎ
4.1 @Entity
4.2 @Table
4.3 ´Ù¾çÇÑ ¸ÅÇÎ »ç¿ë
4.4 µ¥ÀÌÅͺ£À̽º ½ºÅ°¸¶ ÀÚµ¿ »ý¼º
4.5 DDL »ý¼º ±â´É
4.6 ±âº» Å° ¸ÅÇÎ
4.6.1 ±âº» Å° Á÷Á¢ ÇÒ´ç Àü·«
4.6.2 IDENTITY Àü·«
4.6.3 SEQUENCE Àü·«
4.6.4 TABLE Àü·«
4.6.5 AUTO Àü·«
4.6.6 ±âº» Å° ¸ÅÇÎ Á¤¸®
4.7 Çʵå¿Í Ä÷³ ¸ÅÇÎ: ·¹ÆÛ·±½º
4.7.1 @Column
4.7.2 @Enumerated
4.7.3 @Temporal
4.7.4 @Lob
4.7.5 @Transient
4.7.6 @Access
4.8 Á¤¸®
½ÇÀü ¿¹Á¦ 1. ¿ä±¸»çÇ× ºÐ¼®°ú ±âº» ¸ÅÇÎ
__¿ä±¸»çÇ× ºÐ¼®
__µµ¸ÞÀÎ ¸ðµ¨ ºÐ¼®
__Å×ÀÌºí ¼³°è
__¿£Æ¼Æ¼ ¼³°è¿Í ¸ÅÇÎ
__µ¥ÀÌÅÍ Á᫐ ¼³°èÀÇ ¹®Á¦Á¡
5Àå. ¿¬°ü°ü°è ¸ÅÇÎ ±âÃÊ
5.1 ´Ü¹æÇâ ¿¬°ü°ü°è
5.1.1 ¼ø¼öÇÑ °´Ã¼ ¿¬°ü°ü°è
5.1.2 Å×ÀÌºí ¿¬°ü°ü°è
5.1.3 °´Ã¼ °ü°è ¸ÅÇÎ
5.1.4 @JoinColumn
5.1.5 @ManyToOne
5.2 ¿¬°ü°ü°è »ç¿ë
5.2.1 ÀúÀå
5.2.2 Á¶È¸
5.2.3 ¼öÁ¤
5.2.4 ¿¬°ü°ü°è Á¦°Å
5.2.5 ¿¬°üµÈ ¿£Æ¼Æ¼ »èÁ¦
5.3 ¾ç¹æÇâ ¿¬°ü°ü°è
5.3.1 ¾ç¹æÇâ ¿¬°ü°ü°è ¸ÅÇÎ
5.3.2 ÀÏ´ë´Ù Ä÷º¼Ç Á¶È¸
5.4 ¿¬°ü°ü°èÀÇ ÁÖÀÎ
5.4.1 ¾ç¹æÇâ ¸ÅÇÎÀÇ ±ÔÄ¢: ¿¬°ü°ü°èÀÇ ÁÖÀÎ
5.4.2 ¿¬°ü°ü°èÀÇ ÁÖÀÎÀº ¿Ü·¡ Å°°¡ ÀÖ´Â °÷
5.5 ¾ç¹æÇâ ¿¬°ü°ü°è ÀúÀå
5.6 ¾ç¹æÇâ ¿¬°ü°ü°èÀÇ ÁÖÀÇÁ¡
5.6.1 ¼ø¼öÇÑ °´Ã¼±îÁö °í·ÁÇÑ ¾ç¹æÇâ ¿¬°ü°ü°è
5.6.2 ¿¬°ü°ü°è ÆíÀÇ ¸Þ¼Òµå
5.6.3 ¿¬°ü°ü°è ÆíÀÇ ¸Þ¼Òµå ÀÛ¼º ½Ã ÁÖÀÇ»çÇ×
5.7 Á¤¸®
½ÇÀü ¿¹Á¦ 2. ¿¬°ü°ü°è ¸ÅÇÎ ½ÃÀÛ
__ÀÏ´ë´Ù, ´Ù´ëÀÏ ¿¬°ü°ü°è ¸ÅÇÎ
__°´Ã¼ ±×·¡ÇÁ Ž»ö
6Àå. ´Ù¾çÇÑ ¿¬°ü°ü°è ¸ÅÇÎ
6.1 ´Ù´ëÀÏ
6.1.1 ´Ù´ëÀÏ ´Ü¹æÇâ [N:1]
6.1.2 ´Ù´ëÀÏ ¾ç¹æÇâ [N:1, 1:N]
6.2 ÀÏ´ë´Ù
6.2.1 ÀÏ´ë´Ù ´Ü¹æÇâ [1:N]
6.2.2 ÀÏ´ë´Ù ¾ç¹æÇâ [1:N, N:1]
6.3 ÀÏ´ëÀÏ [1:1]
6.3.1 ÁÖ Å×ÀÌºí¿¡ ¿Ü·¡ Å°
6.3.2 ´ë»ó Å×ÀÌºí¿¡ ¿Ü·¡ Å°
6.4 ´Ù´ë´Ù [N:N]
6.4.1 ´Ù´ë´Ù: ´Ü¹æÇâ
6.4.2 ´Ù´ë´Ù: ¾ç¹æÇâ
6.4.3 ´Ù´ë´Ù: ¸ÅÇÎÀÇ ÇÑ°è¿Í ±Øº¹, ¿¬°á ¿£Æ¼Æ¼ »ç¿ë
6.4.4 ´Ù´ë´Ù: »õ·Î¿î ±âº» Å° »ç¿ë
6.4.5 ´Ù´ë´Ù ¿¬°ü°ü°è Á¤¸®
6.5 Á¤¸®
½ÇÀü ¿¹Á¦ 3. ´Ù¾çÇÑ ¿¬°ü°ü°è ¸ÅÇÎ
__ÀÏ´ëÀÏ ¸ÅÇÎ
__´Ù´ë´Ù ¸ÅÇÎ
7Àå. °í±Þ ¸ÅÇÎ
7.1 »ó¼Ó °ü°è ¸ÅÇÎ
7.1.1 Á¶ÀÎ Àü·«
7.1.2 ´ÜÀÏ Å×À̺í Àü·«
7.1.3 ±¸Çö Ŭ·¡½º¸¶´Ù Å×À̺í Àü·«
7.2 @MappedSuperclass
7.3 º¹ÇÕ Å°¿Í ½Äº° °ü°è ¸ÅÇÎ
7.3.1 ½Äº° °ü°è vs ºñ½Äº° °ü°è
7.3.2 º¹ÇÕ Å°: ºñ½Äº° °ü°è ¸ÅÇÎ
7.3.3 º¹ÇÕ Å°: ½Äº° °ü°è ¸ÅÇÎ
7.3.4 ºñ½Äº° °ü°è·Î ±¸Çö
7.3.5 ÀÏ´ëÀÏ ½Äº° °ü°è
7.3.6 ½Äº°, ºñ½Äº° °ü°èÀÇ Àå´ÜÁ¡
7.4 Á¶ÀÎÅ×À̺í
7.4.1 ÀÏ´ëÀÏ Á¶ÀÎÅ×À̺í
7.4.2 ÀÏ´ë´Ù Á¶ÀÎÅ×À̺í
7.4.3 ´Ù´ëÀÏ Á¶ÀÎÅ×À̺í
7.4.4 ´Ù´ë´Ù Á¶ÀÎÅ×À̺í
7.5 ¿£Æ¼Æ¼ Çϳª¿¡ ¿©·¯ Å×ÀÌºí ¸ÅÇÎ
7.6 Á¤¸®
½ÇÀü ¿¹Á¦ 4. »ó¼Ó °ü°è ¸ÅÇÎ
__»ó¼Ó °ü°è ¸ÅÇÎ
__@MappedSuperclass ¸ÅÇÎ
8Àå. ÇÁ·Ï½Ã¿Í ¿¬°ü°ü°è °ü¸®
8.1 ÇÁ·Ï½Ã
8.1.1 ÇÁ·Ï½Ã ±âÃÊ
8.1.2 ÇÁ·Ï½Ã¿Í ½Äº°ÀÚ
8.1.3 ÇÁ·Ï½Ã È®ÀÎ
8.2 Áï½Ã ·Îµù°ú Áö¿¬ ·Îµù
8.2.1 Áï½Ã ·Îµù
8.2.2 Áö¿¬ ·Îµù
8.2.3 Áï½Ã ·Îµù, Áö¿¬ ·Îµù Á¤¸®
8.3 Áö¿¬ ·Îµù È°¿ë
8.3.1 ÇÁ·Ï½Ã¿Í Ä÷º¼Ç ·¡ÆÛ
8.3.2 JPA ±âº» ÆäÄ¡ Àü·«
8.3.3 Ä÷º¼Ç¿¡ FetchType.EAGER »ç¿ë ½Ã ÁÖÀÇÁ¡
8.4 ¿µ¼Ó¼º ÀüÀÌ - CASCADE
8.4.1 ¿µ¼Ó¼º ÀüÀÌ: ÀúÀå
8.4.2 ¿µ¼Ó¼º ÀüÀÌ: »èÁ¦
8.4.3 CASCADEÀÇ Á¾·ù
8.5 °í¾Æ °´Ã¼
8.6 ¿µ¼Ó¼º ÀüÀÌ + °í¾Æ °´Ã¼, »ý¸íÁÖ±â
8.7 Á¤¸®
½ÇÀü ¿¹Á¦ 5. ¿¬°ü°ü°è °ü¸®
__±Û·Î¹ú ÆäÄ¡ Àü·« ¼³Á¤
__¿µ¼Ó¼º ÀüÀÌ ¼³Á¤
9Àå. °ª ŸÀÔ
9.1 ±âº»°ª ŸÀÔ
9.2 ÀÓº£µðµå ŸÀÔ(º¹ÇÕ °ª ŸÀÔ)
9.2.1 ÀÓº£µðµå ŸÀÔ°ú Å×ÀÌºí ¸ÅÇÎ
9.2.2 ÀÓº£µðµå ŸÀÔ°ú ¿¬°ü°ü°è
9.2.3 @AttributeOverride: ¼Ó¼º ÀçÁ¤ÀÇ
9.2.4 ÀÓº£µðµå ŸÀÔ°ú null
9.3. °ª ŸÀÔ°ú ºÒº¯ °´Ã¼
9.3.1 °ª ŸÀÔ °øÀ¯ ÂüÁ¶
9.3.2 °ª ŸÀÔ º¹»ç
9.3.3 ºÒº¯ °´Ã¼
9.4. °ª ŸÀÔÀÇ ºñ±³
9.5. °ª ŸÀÔ Ä÷º¼Ç
9.5.1 °ª ŸÀÔ Ä÷º¼Ç »ç¿ë
9.5.2 °ª ŸÀÔ Ä÷º¼ÇÀÇ Á¦¾à»çÇ×
9.6 Á¤¸®
½ÇÀü ¿¹Á¦ 6. °ª ŸÀÔ ¸ÅÇÎ
__½ÇÀü ¿¹Á¦ Á¤¸®
10Àå. °´Ã¼ÁöÇâ Äõ¸® ¾ð¾î
10.1 °´Ã¼ÁöÇâ Äõ¸® ¼Ò°³
10.1.1 JPQL ¼Ò°³
10.1.2 Criteria Äõ¸® ¼Ò°³
10.1.3 QueryDSL ¼Ò°³
10.1.4 ³×ÀÌƼºê SQL ¼Ò°³
10.1.5 JDBC Á÷Á¢ »ç¿ë, ¸¶À̹ÙƼ½º °°Àº SQL ¸ÅÆÛ ÇÁ·¹ÀÓ¿öÅ© »ç¿ë
10.2 JPQL
10.2.1 ±âº» ¹®¹ý°ú Äõ¸® API
10.2.2 ÆĶó¹ÌÅÍ ¹ÙÀεù
10.2.3 ÇÁ·ÎÁ§¼Ç
10.2.4 ÆäÀÌ¡ API
10.2.5 ÁýÇÕ°ú Á¤·Ä
10.2.6 JPQL Á¶ÀÎ
10.2.7 ÆäÄ¡ Á¶ÀÎ
10.2.8 °æ·Î Ç¥Çö½Ä
10.2.9 ¼ºê Äõ¸®
10.2.10 Á¶°Ç½Ä
10.2.11 ´ÙÇü¼º Äõ¸®
10.2.12 »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö È£Ãâ(JPA 2.1)
10.2.13 ±âŸ Á¤¸®
10.2.14 ¿£Æ¼Æ¼ Á÷Á¢ »ç¿ë
10.2.15 Named Äõ¸®: Á¤Àû Äõ¸®
10.3 Criteria
10.3.1 Criteria ±âÃÊ
10.3.2 Criteria Äõ¸® »ý¼º
10.3.3 Á¶È¸
10.3.4 ÁýÇÕ
10.3.5 Á¤·Ä
10.3.6 Á¶ÀÎ
10.3.7 ¼ºê Äõ¸®
10.3.8 IN ½Ä
10.3.9 CASE ½Ä
10.3.10 ÆĶó¹ÌÅÍ Á¤ÀÇ
10.3.11 ³×ÀÌƼºê ÇÔ¼ö È£Ãâ
10.3.12 µ¿Àû Äõ¸®
10.3.13 ÇÔ¼ö Á¤¸®
10.3.14 Criteria ¸ÞŸ ¸ðµ¨ API
10.4 QueryDSL
10.4.1 QueryDSL ¼³Á¤
10.4.2 ½ÃÀÛ
10.4.3 °Ë»ö Á¶°Ç Äõ¸®
10.4.4 °á°ú Á¶È¸
10.4.5 ÆäÀÌ¡°ú Á¤·Ä
10.4.6 ±×·ì
10.4.7 Á¶ÀÎ
10.4.8 ¼ºê Äõ¸®
10.4.9 ÇÁ·ÎÁ§¼Ç°ú °á°ú ¹Ýȯ
10.4.10 ¼öÁ¤, »èÁ¦ ¹èÄ¡ Äõ¸®
10.4.11 µ¿Àû Äõ¸®
10.4.12 ¸Þ¼Òµå À§ÀÓ
10.4.13 QueryDSL Á¤¸®
10.5 ³×ÀÌƼºê SQL
10.5.1 ³×ÀÌƼºê SQL »ç¿ë
10.5.2 Named ³×ÀÌƼºê SQL
10.5.3 ³×ÀÌƼºê SQL XML ¿¡ Á¤ÀÇ
10.5.4 ³×ÀÌƼºê SQL Á¤¸®
10.5.5 ½ºÅä¾îµå ÇÁ·Î½ÃÀú(JPA 2.1)
10.6 °´Ã¼ÁöÇâ Äõ¸® ½ÉÈ
10.6.1 ¹úÅ© ¿¬»ê
10.6.2 ¿µ¼Ó¼º ÄÁÅؽºÆ®¿Í JPQL
10.6.3 JPQL°ú Ç÷¯½Ã ¸ðµå
10.7 Á¤¸®
11Àå. À¥ ¾ÖÇø®ÄÉÀÌ¼Ç Á¦ÀÛ
11.1 ÇÁ·ÎÁ§Æ® ȯ°æ¼³Á¤
11.1.1 ÇÁ·ÎÁ§Æ® ±¸Á¶
11.1.2 ¸ÞÀ̺ì°ú »ç¿ë ¶óÀ̺귯¸® °ü¸®
11.1.3 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© ¼³Á¤
11.2 µµ¸ÞÀÎ ¸ðµ¨°ú Å×ÀÌºí ¼³°è
11.2.1 ¿ä±¸»çÇ× ºÐ¼®
11.2.2 µµ¸ÞÀÎ ¸ðµ¨ ¼³°è
11.2.3 Å×ÀÌºí ¼³°è
11.2.4 ¿¬°ü°ü°è Á¤¸®
11.2.5 ¿£Æ¼Æ¼ Ŭ·¡½º
11.3 ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Çö
11.3.1 °³¹ß ¹æ¹ý
11.3.2 ȸ¿ø ±â´É
11.3.3 »óÇ° ±â´É
11.3.4 ÁÖ¹® ±â´É
11.3.5 À¥ °èÃþ ±¸Çö
11.4 Á¤¸®
12Àå. ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA
12.1 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¼Ò°³
12.1.1 ½ºÇÁ¸µ µ¥ÀÌÅÍ ÇÁ·ÎÁ§Æ®
12.2 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA ¼³Á¤
12.3 °øÅë ÀÎÅÍÆäÀ̽º ±â´É
12.4 Äõ¸® ¸Þ¼Òµå ±â´É
12.4.1 ¸Þ¼Òµå À̸§À¸·Î Äõ¸® »ý¼º
12.4.2 JPA NamedQuery
12.4.3 @Query, ¸®ÆÄÁöÅ丮 ¸Þ¼Òµå¿¡ Äõ¸® Á¤ÀÇ
12.4.4 ÆĶó¹ÌÅÍ ¹ÙÀεù
12.4.5 ¹úÅ©¼º ¼öÁ¤ Äõ¸®
12.4.6 ¹Ýȯ ŸÀÔ
12.4.7 ÆäÀÌ¡°ú Á¤·Ä
12.4.8 ÈùÆ®
12.4.9 Lock
12.5 Specifications(¸í¼¼)
12.6 »ç¿ëÀÚ Á¤ÀÇ ¸®ÆÄÁöÅ丮 ±¸Çö
12.7 Web È®Àå
12.7.1 ¼³Á¤
12.7.2 µµ¸ÞÀΠŬ·¡½º ÄÁ¹öÅÍ ±â´É
12.7.3 ÆäÀÌ¡°ú Á¤·Ä ±â´É
12.8 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA°¡ »ç¿ëÇÏ´Â ±¸Çöü
12.9 JPA ¼¥¿¡ Àû¿ë
12.9.1 ȯ°æ ¼³Á¤
12.9.2 ¸®ÆÄÁöÅ丮 ¸®ÆÑÅ丵
12.9.3 ¸í¼¼ Àû¿ë
12.10 ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¿Í QueryDSL ÅëÇÕ
12.10.1 QueryDslPredicateExecutor »ç¿ë
12.10.3 QueryDslRepositorySupport »ç¿ë
12.11 Á¤¸®
13Àå. À¥ ¾ÖÇø®ÄÉÀ̼ǰú ¿µ¼Ó¼º °ü¸®
13.1 Æ®·£Àè¼Ç ¹üÀ§ÀÇ ¿µ¼Ó¼º ÄÁÅؽºÆ®
13.1.1 ½ºÇÁ¸µ ÄÁÅ×À̳ÊÀÇ ±âº» Àü·«
13.2 ÁØ¿µ¼Ó »óÅÂ¿Í Áö¿¬ ·Îµù
13.2.1 ±Û·Î¹ú ÆäÄ¡ Àü·« ¼öÁ¤
13.2.2 JPQL ÆäÄ¡ Á¶ÀÎ
13.2.3 °Á¦·Î ÃʱâÈ
13.2.4 FACADE °èÃþ Ãß°¡
13.2.5 ÁØ¿µ¼Ó »óÅÂ¿Í Áö¿¬ ·ÎµùÀÇ ¹®Á¦Á¡
13.3 OSIV
13.3.1 °ú°Å OSIV: ¿äû ´ç Æ®·£Àè¼Ç
13.3.2 ½ºÇÁ¸µ OSIV: ºñÁî´Ï½º °èÃþ Æ®·£Àè¼Ç
13.3.3 OSIV Á¤¸®
13.4 ³Ê¹« ¾ö°ÝÇÑ °èÃþ
13.5 Á¤¸®
14Àå. Ä÷º¼Ç°ú ºÎ°¡ ±â´É
14.1 Ä÷º¼Ç
14.1.1 JPA¿Í Ä÷º¼Ç
14.1.2 Collection, List
14.1.3 Set
14.1.4 List + @OrderColumn
14.1.5 @OrderBy
14.2 @Converter
14.2.1 ±Û·Î¹ú ¼³Á¤
14.3 ¸®½º³Ê
14.3.1 À̺¥Æ® Á¾·ù
14.3.2 À̺¥Æ® Àû¿ë À§Ä¡
14.4 ¿£Æ¼Æ¼ ±×·¡ÇÁ
14.4.1 Named ¿£Æ¼Æ¼ ±×·¡ÇÁ
14.4.2 em.find( )¿¡¼ ¿£Æ¼Æ¼ ±×·¡ÇÁ »ç¿ë
14.4.3 subgraph
14.4.4 JPQL¿¡¼ ¿£Æ¼Æ¼ ±×·¡ÇÁ »ç¿ë
14.4.5 µ¿Àû ¿£Æ¼Æ¼ ±×·¡ÇÁ
14.4.6 ¿£Æ¼Æ¼ ±×·¡ÇÁ Á¤¸®
14.5 Á¤¸®
15Àå. °í±Þ ÁÖÁ¦¿Í ¼º´É ÃÖÀûÈ
15.1 ¿¹¿Ü ó¸®
15.1.1 JPA Ç¥ÁØ ¿¹¿Ü Á¤¸®
15.1.2 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©ÀÇ JPA ¿¹¿Ü º¯È¯
15.1.3 ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿¡ JPA ¿¹¿Ü º¯È¯±â Àû¿ë
15.1.4 Æ®·£Àè¼Ç ·Ñ¹é ½Ã ÁÖÀÇ»çÇ×
15.2 ¿£Æ¼Æ¼ ºñ±³
15.2.1 ¿µ¼Ó¼º ÄÁÅؽºÆ®°¡ °°À» ¶§ ¿£Æ¼Æ¼ ºñ±³
15.2.2 ¿µ¼Ó¼º ÄÁÅؽºÆ®°¡ ´Ù¸¦ ¶§ ¿£Æ¼Æ¼ ºñ±³
15.3 ÇÁ·Ï½Ã ½ÉÈ ÁÖÁ¦
15.3.1 ¿µ¼Ó¼º ÄÁÅؽºÆ®¿Í ÇÁ·Ï½Ã
15.3.2 ÇÁ·Ï½Ã ŸÀÔ ºñ±³
15.3.3 ÇÁ·Ï½Ã µ¿µî¼º ºñ±³
15.3.4 »ó¼Ó°ü°è¿Í ÇÁ·Ï½Ã
15.4 ¼º´É ÃÖÀûÈ
15.4.1 N+1 ¹®Á¦
15.4.2 Àбâ Àü¿ë Äõ¸®ÀÇ ¼º´É ÃÖÀûÈ
15.4.3 ¹èÄ¡ ó¸®
15.4.4 SQL Äõ¸® ÈùÆ® »ç¿ë
15.4.5 Æ®·£Àè¼ÇÀ» Áö¿øÇÏ´Â ¾²±â Áö¿¬°ú ¼º´É ÃÖÀûÈ
15.5 Á¤¸®
16Àå. Æ®·£Àè¼Ç°ú ¶ô, 2Â÷ ij½Ã
16.1 Æ®·£Àè¼Ç°ú ¶ô
16.1.1 Æ®·£Àè¼Ç°ú °Ý¸® ¼öÁØ
16.1.2 ³«°üÀû ¶ô°ú ºñ°üÀû ¶ô ±âÃÊ
16.1.3 @Version
16.1.4 JPA ¶ô »ç¿ë
16.1.5 JPA ³«°üÀû ¶ô
16.1.6 JPA ºñ°üÀû ¶ô
16.1.7 ºñ°üÀû ¶ô°ú ŸÀӾƿô
16.2 2Â÷ ij½Ã
16.2.1 1Â÷ ij½Ã¿Í 2Â÷ ij½Ã
16.2.2 JPA 2Â÷ ij½Ã ±â´É
16.2.3 ÇÏÀ̹ö³×ÀÌÆ®¿Í EHCACHE Àû¿ë
16.3 Á¤¸®
ÁÖ°£·©Å·
´õº¸±â¾ð·Ð»ç Ãßõ ¹× ¼ö»ó³»¿ª
»óÇ°Á¤º¸Á¦°ø°í½Ã
À̺¥Æ® ±âȹÀü
Àü°øµµ¼/´ëÇб³Àç ºÐ¾ß¿¡¼ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥
ÆǸÅÀÚÁ¤º¸
»óÈ£ |
(ÁÖ)±³º¸¹®°í |
---|---|
´ëÇ¥ÀÚ¸í |
¾Èº´Çö |
»ç¾÷ÀÚµî·Ï¹øÈ£ |
102-81-11670 |
¿¬¶ôó |
1544-1900 |
ÀüÀÚ¿ìÆíÁÖ¼Ò |
callcenter@kyobobook.co.kr |
Åë½ÅÆǸž÷½Å°í¹øÈ£ |
01-0653 |
¿µ¾÷¼ÒÀçÁö |
¼¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù) |
±³È¯/ȯºÒ
¹ÝÇ°/±³È¯ ¹æ¹ý |
¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼ ½Åû °¡´É |
---|---|
¹ÝÇ°/±³È¯°¡´É ±â°£ |
º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É |
¹ÝÇ°/±³È¯ ºñ¿ë |
º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã |
¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯ |
·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì |
»óÇ° Ç°Àý |
°ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½ |
¼ÒºñÀÚ ÇÇÇغ¸»ó |
·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© ó¸®µÊ ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀǼҺñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ |
¹è¼Û¾È³»
±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.
¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.