spring boot 프레임워크를 활용하여 개발을 하다 보면, 자주 듣게 되는 ORM, JPA, Hibernate라는 용어들을 혼용하여 사용하고는 했는데, 이들의 차이점에 대하여 간략하게 이해해 보고자 한다.
ORM이란?
ORM은 객체지향 언어에서 객체와 관계형 데이터 베이스의 테이블을 매핑시키는 것입니다.
즉, ORM으로 Query문 없이 코드로 데이터를 처리할 수 있습니다.
JPA란?
JPA는 JAVA에서 ORM을 구현하기 위한 공식 표준입니다. 즉, JAVA를 사용할 때, ORM을 사용하기 위한 여러 API와 규칙으로 이해하면 될 듯 합니다. 하지만 JPA 자체는 구현체가 아니라 명세입니다
Hibernate란?
Hibernate는 JPA 명세의 구현체 중 하나입니다. 즉, JPA가 정의한 방식으로 데이터베이스 작업을 처리하는 라이브러리입니다.
즉, JAVA를 위한 ORM의 명세가 JPA이고, 이를 모듈화한 것이 Hibernate라고 이해하면 될 것 같습니다.
참고 reference
https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/
https://victorydntmd.tistory.com/195