JPA
JPA°¡ ź»ýÇϱâ Àü¿¡´Â iBatis¿Í °°Àº SQL ¸ÅÆÛ¸¦ ÀÌ¿ëÇؼ DBÄõ¸®¸¦ ÀÛ¼ºÇß´Ù. ±×·¡¼ ½Ç¹«¿¡¼´Â ½ÇÁ¦·Î °³¹ßÇÏ´Â ½Ã°£º¸´Ù SQLÀ» ´Ù·ç´Â ½Ã°£ÀÌ ´õ ¸¹¾Ò´Ù°í ÇÑ´Ù.
'°´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ·Á°í ¿Ô´Âµ¥ ¿Ö Å×ÀÌºí ¸ðµ¨¸µ¿¡¸¸ ÁýÁßÇÏ°í ÀÖÁö?'
°´Ã¼¸¦ ´Ü¼øÈ÷ Å×ÀÌºí¿¡ ¸ÂÃß¾î µ¥ÀÌÅÍ Àü´Þ ¿ªÇÒ¸¸ ÇÏ´Â °³¹ßÀº ºÐ¸í °´Ã¼ÁöÇâ´äÁö ¾Ê¾Ò´Ù. ±×·¡¼ ź»ýÇÑ °ÍÀÌ JPA¶ó´Â Àڹ٠ǥÁØORM ±â¼úÀÌ´Ù.
Spring Data JPA
JPA´Â ÀÎÅÍÆäÆäÀ̽º·Î¼ Àڹ٠ǥÁØ ¸í¼¼¼ÀÌ´Ù. ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϱâ À§Çؼ´Â ±¸Çöü°¡ ÇÊ¿äÇÑ µ¥ ´ëÇ¥ÀûÀ¸·Î Hibernate, Eclipse, LinkµîÀÌ ÀÖ´Ù.
ÇÏÁö¸¸ Spring¿¡¼ JPA¸¦ »ç¿ëÇÒ ¶§´Â ÀÌ ±¸ÇöüµéÀ» Á÷Á¢ ´Ù·çÁø ¾Ê´Â´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀÇ µ¥ÀÌÅÍ ¾×¼¼½º °èÃþÀ» ±¸ÇöÇÏ´Â °ÍÀº ²Ï ¿À·§µ¿¾È ¼º°¡½Å ÀÏÀ̾ú´Ù. °£´ÜÇÑ Äõ¸®¸¦ ½ÇÇàÇÏ°í pagination ¹× auditingÀ» ¼öÇàÇÏ·Á¸é ³Ê¹« ¸¹Àº boilerplate Äڵ带 ÀÛ¼ºÇØ¾ß ÇÑ´Ù. Spring Data JPA´Â ½ÇÁ¦·Î ÇÊ¿äÇÑ ¾çÀ¸·Î ³ë·ÂÀ» ÁÙ¿© µ¥ÀÌÅÍ ¾×¼¼½º °èÃþÀÇ ±¸ÇöÀ» Å©°Ô °³¼±ÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ¸¸µé¾îÁ³´Ù.
±×·¡¼ Spring¿¡¼´Â ±¸ÇöüµéÀ» Á» ´õ ½±°Ô »ç¿ëÇÏ°íÀÚ Ãß»óȽÃŲ Spring Data JPA¶ó´Â ¸ðµâÀ» ÀÌ¿ëÇÏ¿© JPA ±â¼úÀ» ´Ù·é´Ù.
- Spring Data JPA ¡æ Hibernate ¡æ JPA
Ư¡
- Spring ¹× JPA±â¹ÝÀÇ Repo ±¸ÃàÀ» À§ÇÑ Á¤±³ÇÑ Áö¿ø
- Querydsl Äõ¸® Áö¿ø ¹× ÀÌ¿¡ µû¸¥ ¾ÈÀüÇÑ JPA Äõ¸® ó¸®
- µµ¸ÞÀΠŬ·¡½ºÀÇ Åõ¸íÇÑ °¨»ç
- pagination Áö¿ø, µ¿Àû Äõ¸® ½ÇÇà, ¸ÂÃãÇü µ¥ÀÌÅÍ ¾×¼¼½º ÄÚµå ÅëÇÕ ±â´É
- @Query°¡ ¸í½ÃµÈ Äõ¸®´Â ºÎÆ®½ºÆ®·¦ ½Ã°£¿¡ À¯È¿¼º °Ë»ç
- XML ±â¹Ý ¿£Æ¼Æ¼ ¸ÅÇÎ Áö¿ø
- @EnableJpaRepositoriesÀ» Áö¿øÇÏ¿© JavaConfig±â¹Ý ÀúÀå¼Ò ±¸¼º
Hiberante vs Spring Data JPA
Hibernate¿Í Spring Data JPA´Â Å« Â÷ÀÌ°¡ ¾ø´Âµ¥ ¿Ö ±»ÀÌ Spring Data JPA¸¦ »ç¿ëÇØ¾ß ÇÒ±î?
1.±¸Çöü ±³Ã¼ ¿ëÀ̼º
Hibernate¿Ü¿¡ ´Ù¸¥ ±¸Çöü·Î ½±°Ô ±³Ã¼Çϱâ À§ÇÔÀÌ´Ù. Hibernate¿¡ ´ëÇÑ ÀÇÁ¸¼ºÀ» ³·Ãß°í ¸¸¾à »õ·Ó°Ô ÁÁÀº ±¸Çöü°¡ ³ª¿Â´Ù¸é Spring Data JPA´Â ÇØ´ç ±¸Çöü·Î ½±°Ô ±³Ã¼ÇÒ ¼ö ÀÖ´Ù.
- ½ÇÁ¦ ¿¹½Ã·Î´Â ÀÚ¹Ù Redis Ŭ¶óÀ̾ðÆ®°¡ Jedis¿¡¼ Lettuce·Î ´ë¼¼°¡ ³Ñ¾î°¥ ¶§ Spring Data Redis¸¦ »ç¿ëÇÏ´ø »ç¶÷µéÀº ½±°Ô ±³Ã¼¸¦ Çß´Ù.
2. ÀúÀå¼Ò ±³Ã¼ ¿ëÀ̼º
À§¿Í ¸¶Âù°¡Áö·Î ÀÇÁ¸¼ºÀ» ³·Ãß°í °ü°èÇü DB ¿Ü¿¡ ´Ù¸¥ ÀúÀå¼Ò·Î ½±°Ô ±³Ã¼Çϱâ À§ÇÔÀÌ´Ù. ¼ºñ½º Ãʱ⿡´Â °ü°èÇü DB·Î ¸ðµç ±â´ÉÀ» ó¸®ÇßÁö¸¸, Á¡Á¡ Æ®·¡ÇÈÀÌ ¸¹¾ÆÁ® °ü°èÇü DB·Î´Â µµÀúÈ÷ °¨´çÀÌ ¾ÈµÉ ¶§°¡ ¿Ã ¼öµµ ÀÖ´Ù. À̶§ MongoDB·Î ±³Ã¼°¡ ÇÊ¿äÇÏ´Ù¸é °³¹ßÀÚ´Â Spring Data JPA¿¡¼ Spring Data MongoDB·Î ÀÇÁ¸¼º¸¸ ±³Ã¼ÇÏ¸é µÈ´Ù.
¡æ Spring DataÀÇ ÇÏÀ§ ÇÁ·ÎÁ§Æ®µé(Spring Data JPA, Spring Data Redis, Spring Data MongoDB µîµî)Àº ±âº»ÀûÀÎ CRUDÀÇ ÀÎÅÍÆäÀ̽º(save(), findAll, findOne() µî)°¡ °°´Ù. ±×·¯´Ù º¸´Ï ÀúÀå¼Ò°¡ ±³Ã¼µÇ¾îµµ ±âº»ÀûÀÎ ±â´ÉÀº º¯°æÇÒ °ÍÀÌ ¾ø±â ¶§¹®¿¡ SpringÆÀ¿¡¼´Â Hibernate¸¦ Á÷Á¢ ¾²´Â °Íº¸´Ù Spring Data ÇÁ·ÎÁ§Æ®¸¦ ±ÇÀåÇÑ´Ù.
¡ØÂü°í