사용하는 기술에 대한 정확한 개념을 가지고 있는 것이 좋은 코드의 시작점이라고 생각한다. 그래서 나는 내가 사용하는 기술들 중에 여태까지 헷갈렸던? 기술들 세가지(JPA / Hibernate / Spring Data JPA)의 차이점을 정리해보았다. 1. JPA JPA는 기술명세이다. JPA는 Java Persistence API의 약자로, 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 여기서 중요한 것은 말 그대로 인터페이스라는 점이고, 특정 기능을 하는 라이브러리가 아니라는 점이다. 2. Hibernate Hibernate는 JPA라는 명세의 구현체이다. 즉, 위에서 언급한 JPA의 인터페이스를 직접 구현한 라이브러리이다. "Hibernate는 JPA의 구현체이다"..