<TIL> 54. Hibernate(하이버네이트)

YUJIN LEE·2023년 3월 10일
0

개발log

목록 보기
49/149

Hibernate?

Hibernate는 자바 언어를 위한 ORM 프레임워크.
JPA의 구현체로, JPA 인터페이스를 구현, 내부적으로 JDBC API 사용.

JPA는 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다는 점과, 영속성 컨텍스트(엔티티를 영구 저장하는 환경) 제공이 큰 특징.

JPA

자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스.
라이브러리가 아닌 인터페이스로 특정 기능을 하진 않는다.

JDBC

자바 프로그래밍 언어와 다양한 데이터베이스 or SQL or 테이블 형태의 데이터 사이의 독립적인 연결을 지원하는 표준.
-> DB 작업을 위한 표준.

DBMS 회사들은 JDBC 인터페이스를 구현해 제공.
-> JDBC 드라이버

JDBC 드라이버?
DBMS 회사들이 자신들의 데이터베이스 시스템에 접근할 수 있도록 표준 JDBC 인터페이스에 명시된 메소드들을 구현한 것.
-> JDBC API를 사용할 시 하나의 자바 응용 프로그램만으로 JDBC 드라이버를 제공하는 어떤 종류의 관계형 DBMS에도 접근 가능, 사용자들은 특정 회사의 DB의 정확한 사용방법을 몰라도 JDBC API만 알면 DB 조작 가능

Hibernate 장점

생산성

  • Hibernate는 SQL을 직접 사용하지 않고, 메서드 호출만으로 쿼리 수행.
    즉, SQL 반복 작업 X, 생산성 증가.

유지보수

  • 테이블 컬럼이 변경되었을 때, 테이블과 관련된 DAO의 파라미터, 결과, SQL 등 대신 수행. -> 유지보수 좋음

  • 특정 벤더(판매회사)에 종속적이지 않음
    -> JPA는 추상화된 데이터 접근 계층을 제공하기 때문에 특정 벤더에 종속적이지 않아요.
    -> 설정 파일에서 JPA에게 어떤 DB를 사용하고 있는지를 알려주기만 하면 얼마든지 DB 변경 가능.

  • 패러다임 불일치 해결
    -> 상속, 연관 관계, 객체 그래프 탐색, 비교 등 객체와 관계형 데이터베이스와의 패러다임 불일치를 해결할 수 있다.

Hibernate 단점

성능

  • 메서드 호출만으로 쿼리를 수행하는 것은 직접 SQL을 작성하는 것보다 성능상 좋지 않음.

세밀함

  • 메서드 호출만으로 DB 데이터를 조작하기에는 한계가 있다.
    이를 보안하기 위해 JPQL 지원.
  • NativeQuery를 지원해 SQL 자체 쿼리도 작성 가능.

JPA는 Hibernate를 추상화한 인터페이스.

Hibernate properties를 검색해서 더 공부해야함

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글