본문 바로가기

백엔드 개발/JPA

[하이버네이트 유저 가이드 파헤치기] 들어가며 - 0

반응형

들어가며

처음 개발자로 일을 시작한 시점(2017년)에는 mybatis라는 SQL Mapper를 사용해서 개발을 했었습니다.
아무래도, 당시에는 한국 IT 개발이 SI 중심으로 이루어져서 그런 것 같습니다. 

그런데 최근 몇년간 IT 서비스를 개발하는 스타트업들이 많아지고 투자도 많아져서 그런지 JPA를 많이들 사용하기 시작한 것 같습니다.

많은 개발자들이 입사하고 싶어하는 네카라쿠배당토 같은 회사들에서 JPA를 적극적으로 사용하고 있기 때문에 그런지도 모르겠습니다.

 

아래 구글 트렌드를 보니, 확실히  JPA의 관심도가 꾸준히 올라갔고 최근에는 마이바티스와 거의 비등해지고 있는 것을 알 수 있습니다.

마이바티스와 JPA 관심도 변화

 

저는 개인 프로젝트에 JPA를 적용하기 시작해 실무에서 JPA를 사용한지 2년이 넘었습니다.

처음에는 김영한님의 책을 읽으면서 시작했고, 실무에서 사용하면서 JPA 성능 최적화에 대해서 관심을 가지면서 성능 최적화를 위한 자료들을 중간 중간 찾아보기도 했었습니다.

그런데도 아직까지 잘 모르고 헷갈리는 부분들도 많은 것 같습니다.

JPA가 SQL Mapper 대비 중복되는 코드 작성을 막아주지만 아무래도 러닝 커브가 높은 것은 사실인 것 같습니다.

이번 연재 글에서는 JPA의 가장 많이 사용되는 구현체인 Hibernate ORMUser Guide를 통해 JPA 관련 지식을 정리하는 기회를 가져볼려고합니다.

 

왜 하이버네이트(Hibernate) 인가?

사실 JPA라는 것은 ORM의 스펙을 명세한 것입니다.

JPA의 구현은 누구든지 할 수 있고, 심지어 저나 여러분도 할 수 있죠.

하지만, 현실적으로 어려운 점이 많습니다.

그래서 이미 구현된 JPA의 구현체를 사용합니다.

구현체의 종류는 다양합니다. 하이버네이트(정확히는 Hibernate Orm)도 그 중 하나일 뿐입니다.

 

하지만 아래 내용들을 근거로 Hibernate가 구글 검색량도 많고, 개발자들의 관심도도 압도적인 것을 알 수 있습니다.

구글 트렌드에서 다른 구현체들과의 비교

관심도의 압도적인 차이

 

GitHub Star (2020.7.31일 기준)

구현체 개수
https://github.com/hibernate/hibernate-orm 4700
https://github.com/eclipse-ee4j/eclipselink 113
https://github.com/datanucleus/datanucleus-core 95
https://github.com/apache/openjpa 91

 

위 내용을 근거로 개발자들이 하이버네이트를 많이 사용하고 있다는 것을 유추할 수 있습니다.

현실적으로 현재 한국에서 JPA를 사용한 다는 것은 Hibernate를 사용한다.

더 편하게 사용하기 위해서는 Spring Data JPA를 사용한다는 것이 현실적인 것 같습니다.

 

위 자료들로 왜 JPA의 하이버네이트를 공부해야하는 지는 설명이 된 것 같습니다.

 

반응형