ORM/JPA란 무엇인가?
요즘 많은 회사에서 Hibernate를 사용한다고 한다. 왜 사용하는걸까?
일단 ORM, JPA에 대한 이해를 알아야 한다.
ORM에 대해서 알아보자
여러 문서들을 찾아보았는데, 간단하게 말할 수 있을 것 같다.
일반적으로 사용하는 JAVA는 OOP이고 보통은 RDB를 사용하여 데이터를 뽑아내지 않던가?
- OOP(객체지향형 프로그래밍)
- RDB(관계형 데이터베이스)
OOP와 RDB는 서로의 관계에 대해서 생각하고 만들어진게 아니다.
그렇기에 불일치한 부분이 생기는데, 이러한 부분을 자동화하기 위해 나온 것이 ORM이라는 개념이다.
장단점도 명확한데 ..
장점 : 클래스의 메서드를 통해 데이터베이스를 조작할 수 있어 프로그래밍에 집중 가능, 재사용, 유지보수, 리팩토리가 유용
단점 : 모든 것을 ORM을 통해서 할 수 없기에 쿼리를 작성하과 튜닝이 필요할 수도 있다.
개발 소장님 왈 : 결국 써보니 쿼리를 사용안할수가 없는데 그럴바엔 그냥 다 쿼리 쓰는게 낫지 않나..?
JPA에 대해서 알아보자
JPA란 java에서 사용하기 위한 ORM 표준 기술이다. JPA를 사용하면 SQL 작성을 안해도 되고 객체를 자동으로 매핑해준다. 결국 JPA라는건 자바에서 관계형 디비를 사용하는 방법이라는 것이다. 이러한 방법을 손쉽게 사용할 수 있도록 하는게 바로 Hibernate
결론
그럼 결국 ORM이라는건 JPA를 사용하게 된 배경인거고 JPA라는 건 Hibernate의 Interface라는거고 Hibernate를 사용하여 우리는 손쉽게 JAVA와 데이터베이스를 사용해볼 수 있다는 것이다.