Spring

[Spring] Hibernate 설명

오잎 클로버 2022. 2. 3. 10:05
728x90

Hibernate란?

Hibernate는 자바 언어를 위한 ORM 프레임워크예요. JPA의 구현체로, JPA 인터페이스를 구현하며,

내부적으로 JDBC API를 사용해요.

JPA는 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다는 점과 영속성 컨텍스트

(엔티티를 영구 저장하는 환경) 제공이 큰 특징입니다.

Hibernate 장점

생산성이 높아진다.

  • Hibernate는 SQL을 직접 사용하지 않고, 메서드 호출만으로 쿼리가 수행됨. 즉, SQL 반복 작업을 하지 않음으로 생산성이 높아짐
  • SQL을 몰라도 되는 건 아님 (내부 동작에 대해 알아야 하기 때문)

유지보수 측면에서 좋다.

  • 테이블 컬럼이 변경되었을 때, 테이블과 관련된 DAO의 파라미터, 결과, SQL 등을 대신 수행함.
    이로 인해 유지보수 측면에서 높아짐

패러다임 불일치 해결

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

비즈니스 책임 위임

  • SQL에 의존적이지 않은 개발 가능
  • SQL중심이 아닌 객체 중심 개발 가능

Hibernate 단점

성능

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

세밀함

  • 메서드 호출만으로 DB 데이터를 조작하기에는 한계가 있어요. 이를 보완하기 위해 JPQL을 지원해요
  • NativeQuery를 지원하여 SQL 자체 쿼리도 작성할 수 있어요

'Spring' 카테고리의 다른 글

[Spring] Bean 추가 설명  (0) 2022.02.06
[Spring] JPA, Hibernate 설명  (0) 2022.02.04
[Spring] Spring MVC 설명  (0) 2022.02.01
[Spring] 빈 (Bean) 설명  (0) 2022.01.31
[Spring] Spring Core 설명  (0) 2022.01.30