hibernate 2

[Spring] JPA, Hibernate 설명

JPA, Hibernate, Spring Data JPA 이 3가지에 대해서 다소 헷갈리는 점들이 있어서 포스트하고자 했다. 먼저 JPA는 Java Persistence API의 약자로 자바 어플리케이션에서 관계형 DB를 사용하는 방식을 정의한 인터페이스이다. 즉, 라이브러리가 아닌 인터페이스이다. 간혹 JPA와 관련한 오류를 발생하게 되면 EntityManager와 관련한 오류가 발생하는 경우가 종종 있는 데 이때, EntityManager의 역할이 문뜩 궁금해져서 찾아보니 엔티티들을 관리한다. 내부에는 영속성 컨테이너가 있어, 이를 통해 엔티티 관리 여러 엔티티 메니저가 하나의 영속성 컨테이너 공유 가능 Thread-safe 보장 그리고 CRUD (Create, Read, Update, Delete)..

Spring 2022.02.04

[Spring] Hibernate 설명

Hibernate란? Hibernate는 자바 언어를 위한 ORM 프레임워크예요. JPA의 구현체로, JPA 인터페이스를 구현하며, 내부적으로 JDBC API를 사용해요. JPA는 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다는 점과 영속성 컨텍스트 (엔티티를 영구 저장하는 환경) 제공이 큰 특징입니다. Hibernate 장점 생산성이 높아진다. Hibernate는 SQL을 직접 사용하지 않고, 메서드 호출만으로 쿼리가 수행됨. 즉, SQL 반복 작업을 하지 않음으로 생산성이 높아짐 SQL을 몰라도 되는 건 아님 (내부 동작에 대해 알아야 하기 때문) 유지보수 측면에서 좋다. 테이블 컬럼이 변경되었을 때, 테이블과 관련된 DAO의 파라미터, 결과, SQL 등을 대신 수행함. 이로 인..

Spring 2022.02.03