의견.png

"하이버네이트"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(참고 자료)
32번째 줄: 32번째 줄:
 
=== 통합 ===
 
=== 통합 ===
 
하이버네이트는 독립형 Java [[애플리케이션]]과 서블릿, EJB 세션 Bean 및 JBI 서비스 컴포넌트를 사용하는 Java EE 애플리케이션 모두에서 사용할 수 있다. 다른 프로그래밍 언어의 기능으로 포함시킬 수도 있다. 예를 들어, [[Adobe]]는 CFML에 추가된 새로운 기능과 구문의 추상화 계층과 함께 하이버네이트를 ColdFusion(J2EE 앱에서 실행되는) 버전 9에 통합했다.<ref name="하이버네이트 위키"></ref>
 
하이버네이트는 독립형 Java [[애플리케이션]]과 서블릿, EJB 세션 Bean 및 JBI 서비스 컴포넌트를 사용하는 Java EE 애플리케이션 모두에서 사용할 수 있다. 다른 프로그래밍 언어의 기능으로 포함시킬 수도 있다. 예를 들어, [[Adobe]]는 CFML에 추가된 새로운 기능과 구문의 추상화 계층과 함께 하이버네이트를 ColdFusion(J2EE 앱에서 실행되는) 버전 9에 통합했다.<ref name="하이버네이트 위키"></ref>
 +
 +
== 소프트웨어 구성 요소 ==
 +
* 하이버네이트 ORM : Java 환경을 위한 객체 관계 매핑 솔루션의 기본 소프트웨어
 +
* 하이버네이트 주석 : JSR 317 Java Persistence API(JPA2)에 따라 객체 지향 모델과 관계형 데이터베이스 모델 간의 데이터 변환을 제어하는 메타데이터
 +
* 하이버네이트 EntityManager : JSR 317 Java Persistence API(JPA 2) 지속성 솔루션을 구현하는 래퍼인 하이버네이트 주석
 +
* 하이버네이트 Envers : 영구 클래스의 감사 및 버전
 +
* 하이버네이트 OGM : NoSQL 스토어에 데이터를 저장하기 위한 확장
 +
* 하이버네이트 Shards : 여러 관계형 데이터베이스를 위한 수평 분할
 +
* 하이버네이트 검색 : Apache Lucence의 전체 텍스트 라이브러리 기능을 하이버네이트 및 JPA 모델에 통합
 +
* 하이버네이트 도구 : JBoss Developer Studio에 포함 된 [[이클립스]] [[플러그인]] 및 [[Ant]] 태스크 스위트로 구현된 도구 세트
 +
* 하이버네이트 Vaildator : JSR 303 Bean Validation의 참조 구현
 +
* 하이버네이트 Metamodel Generator : JSR 269 Pluggable Annotation Processing API를 사용하여 JSR 317 JPA 2(Java Persistence API) 정적 메타 모델 클래스를 작성하는 주석 프로세서
 +
* N하이버네이트 : [[NET Framework]]를 위한 객체 관계형 매핑 솔루션
  
 
{{각주}}
 
{{각주}}

2019년 9월 27일 (금) 15:07 판

하이버네이트(Hibernate) 로고
하이버네이트(Hibernate) 로고와 글자

하이버네이트(Hibernate)는 객체 지향 언어인 자바(Java)의 클래스 파일을 관계형 데이터베이스의 테이블매핑해 주는 오픈소스 기반의 프레임워크이다. 2001년 개빈 킹(Gavin King)이 개발했다. 아이바티스(iBatis)의 경우 사용자가 DB에서 에스큐엘(SQL) 문장을 생성하면 그에 적합한 객체모델을 생성해 주는데 반해, 하이버네이트는 사용자가 객체모델을 생성하면 DB와 연결시켜 주는 방식으로 작동한다. GNU LGPL 라이선스를 따른다.

연혁

  • 2001년 : EJB2 스타일 엔터티 빈을 사용하는 것에 대한으로 Cirrus Technologies의 동료들과 Gavin King에 의해 시작
  • 2003년 초 : Hibernate 개발 팀은 Hibernate2 릴리스 시작, 첫 번째 출시에 비해 많은 개선 제공
  • 2004년 02월 05일 : Hibernate 2.1.2 출시, 유지 보수[1]
  • 2004년 12월 20일 : Hibernate 버전 3.0 베타 출시[2]
  • 2005년 02월 28일 : Hibernate 버전 3.0 출시, 기능에선 새로운 인터셉터/콜백 아키텍처, 사용자 정의 필터 및 JDK 5.0 주석이 포함됨[3]
  • 2009년 08월 21일 : Hibernate 버전 3.5 베타 -1 출시, JPA2 지원하기 위한 첫 번째 출시[4]
  • 2009년 11월 12일 : Hibernate 버전 3.5 베타 -2 출시, JPA2 지원하기 위한 두 번째 출시[5]
  • 2010년 04월 01일 : Hibernate 버전 3.5 최종 출시, JSR 317(JPA2)지원[6]
  • 2010년 10월 14일 : Hibernate 버전 3.6 최종 출시, JDK 1.4에 대한 지원 중단[7]
  • 2011년 06월 09일 : Hibernate 버전 3.6.5 최종 출시, 유지 보수[8]
  • 2011년 12월 15일 : Hibernate 버전 4.0 출시, i18n 지원 및 메시지 코드로 개선 된 로깅[9]
  • 2015년 08월 20일 : Hibernate ORM 5.0 최종 출시, 공간 / GIS 지원 및 자바 8 지원[10]
  • 2018년 01월 10일 : Hibernate ORM 5.3 베타1 출시[11]
  • 2018년 05월 14일 : Hibernate ORM 5.3 최종 출시, PA 2.2에 대한 지원 구현[12]
  • 2018년 12월 12일 : Hibernate ORM 5.4 최종 출시, 버그 수정 및 설명서 개선[13]
  • 2019년 07월 30일 : Hibernate ORM 5.4.4 최종 출시, 유지 보수[14]

매핑

Java 클래스를 데이터베이스 테이블에 맵핑하는 것은 XML 파일 구성 또는 Java 어노테이션을 사용하여 구현된다. XML 파일을 사용할 때 하이버네이트는 퍼시스턴스 클래스를 위한 스켈레톤 소스 코드를 생성할 수 있다. 주석이 사용될 때 보조이다. 하이버네이트는 XML 파일이나 자바 주석을 사용하여 데이터베이스 스키마를 유지할 수 있다.가기.png 매핑에 대해 자세히 보기

특징

지속성

하이버네이트는 POJO(Plain Old Java Objects)에 대한 투명한 지속성을 제공해준다. 영속 클래스에 대한 엄격한 요구 사항은 인수가 없는 생성자이지만 반드시 그런 것은 아니다. 일부 응용 프로그램에서 올바른 동작을 수행하려면 객체 클래스의 equals() 및 hashCode() 메소드에 특별한 주의가 필요하다. 하이버네이트는 식별자 속성을 제공할 것을 권장하며, 이는 향후 출시에서 필수 요구 사항이 될 계획이다.[15]

데이터 객체의 컬렉션은 일반적으로 Set 및 List 인터페이스의 구현과 같은 Java 컬렉션 클래스에 저장된다. Java 5에 도입된 Java generics도 지원되며, 최대 하이버네이트는 관련 컬렉션을 지연로드 하도록 구성 할 수 있다.[15]

통합

하이버네이트는 독립형 Java 애플리케이션과 서블릿, EJB 세션 Bean 및 JBI 서비스 컴포넌트를 사용하는 Java EE 애플리케이션 모두에서 사용할 수 있다. 다른 프로그래밍 언어의 기능으로 포함시킬 수도 있다. 예를 들어, Adobe는 CFML에 추가된 새로운 기능과 구문의 추상화 계층과 함께 하이버네이트를 ColdFusion(J2EE 앱에서 실행되는) 버전 9에 통합했다.[15]

소프트웨어 구성 요소

  • 하이버네이트 ORM : Java 환경을 위한 객체 관계 매핑 솔루션의 기본 소프트웨어
  • 하이버네이트 주석 : JSR 317 Java Persistence API(JPA2)에 따라 객체 지향 모델과 관계형 데이터베이스 모델 간의 데이터 변환을 제어하는 메타데이터
  • 하이버네이트 EntityManager : JSR 317 Java Persistence API(JPA 2) 지속성 솔루션을 구현하는 래퍼인 하이버네이트 주석
  • 하이버네이트 Envers : 영구 클래스의 감사 및 버전
  • 하이버네이트 OGM : NoSQL 스토어에 데이터를 저장하기 위한 확장
  • 하이버네이트 Shards : 여러 관계형 데이터베이스를 위한 수평 분할
  • 하이버네이트 검색 : Apache Lucence의 전체 텍스트 라이브러리 기능을 하이버네이트 및 JPA 모델에 통합
  • 하이버네이트 도구 : JBoss Developer Studio에 포함 된 이클립스 플러그인Ant 태스크 스위트로 구현된 도구 세트
  • 하이버네이트 Vaildator : JSR 303 Bean Validation의 참조 구현
  • 하이버네이트 Metamodel Generator : JSR 269 Pluggable Annotation Processing API를 사용하여 JSR 317 JPA 2(Java Persistence API) 정적 메타 모델 클래스를 작성하는 주석 프로세서
  • N하이버네이트 : NET Framework를 위한 객체 관계형 매핑 솔루션

각주

  1. Hibernate 2.1.2〉, 《하이버네이트 공식 사이트》, 2004-02-05
  2. Gavin King, 〈Hibernate 3.0 goes beta〉, 《하이버네이트 공식 사이트》, 2004-12-20
  3. Gavin King, 〈Hibernate 3.0 released!〉, 《하이버네이트 공식 사이트》, 2005-02-28
  4. Steve Ebersole, 〈Hibernate 3.5.0 Beta-1 released〉, 《하이버네이트 공식 사이트》, 2009-08-21
  5. Steve Ebersole, 〈Hibernate 3.5.0-Beta-2 release〉, 《하이버네이트 공식 사이트》, 2009-11-12
  6. Steve Ebersole, 〈Hibernate 3.5.0-Final release〉, 《하이버네이트 공식 사이트》, 2010-04-01
  7. Steve Ebersole, 〈Hibernate Core 3.6.0.Final Release〉, 《하이버네이트 공식 사이트》, 2010-10-14
  8. Steve Ebersole, 〈Hibernate Core 3.6.5.Final〉, 《하이버네이트 공식 사이트》, 2011-06-09
  9. Steve Ebersole, 〈Hibernate Core 4.0 is Final〉, 《하이버네이트 공식 사이트》, 2011-12-15
  10. Steve Ebersole, 〈Hibernate ORM 5.0 has gone Final!〉, 《하이버네이트 공식 사이트》, 2015-08-20
  11. Steve Ebersole, 〈Hibernate ORM 5.3.0Beta1 release〉, 《하이버네이트 공식 사이트》, 2018-01-10
  12. Steve Ebersole, 〈Hibernate ORM 5.3.0.Final release〉, 《하이버네이트 공식 사이트》, 2018-05-14
  13. Guillaume Smet, 〈Hibernate ORM 5.4.0.Final released〉, 《하이버네이트 공식 사이트》, 2018-12-12
  14. Andrea Boriero, 〈Hibernate ORM 5.4.4.Final released〉, 《하이버네이트 공식 사이트》, 2019-07-30
  15. 15.0 15.1 15.2 Hibernate (framework)〉, 《위키백과》

참고 자료

같이 보기


  의견.png 이 하이버네이트 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.