|
엔터프라이즈 환경에 있어서 객체 지향 소프트웨어와 RDB를 조합하는 것은 귀찮고 시간이 드는 작업입니다. 게다가, 오브젝트와 RDB에서는 데이터의 표현 방법에 대해서 패러다임(paradigm)이 다르기 때문에, 개발비는 큰폭으로 증대합니다. 많은 소프트웨어 개발자나 설계자는 이러한 인프라스트럭쳐상의 차이에 대처할 필요가 있는 코드가 최대 30%에 이른다고 평가하고 있습니다.
Hibernate는 Java 어플리케이션의 오브젝트/관계 매핑(ORM) 솔루션입니다. 이 솔루션은 오브젝트 모델의 데이터 표현을 관계 데이터 모형 및 데이타베이스 schema에 매핑 하는 기능을 제공하는 것에 의해서 이러한 문제를 해결합니다.
Hibernate의 설계 목표는 SQL와 JDBC를 사용한 데이터 처리를 수작업으로 작성할 필요를 없애는 것으로 개발자를 데이터파시스턴스 관련의 일반적인 프로그래밍 작업의 95%로부터 해방하는 것입니다.
Hibernate는 강력한 고 성능의 객체/관계 영속성 서비스와 쿼리 서비스를 제공하며 연관, 상속, 다형성, 복합, 컬렉션 같은 객체 지향 기법을 사용하여 영속적인 클래스들을 개발할 수 있도록 해 줍니다.
Hibernate는 네이티브 SQL을 지원하며 자체적으로 내장되어 있는 HQL이나 또는 객체 지향적인 ‘Criteria and Example API’를 사용할 수도 있습니다. 다른 많은 영속성 솔루션들과는 달리 Hibernate 는 SQL의 강력함을 부정하지 않습니다. Hibernate는 여러분이 관계형 DB 기술에 투자한 노력과 지식들을 계속해서 유효하도록 만들어줍니다.
JBoss Hibernate는 다른 모든 JBoss Enterprise 프레임웍들과 마찬가지로 모듈화되어 있으며, JBoss Enterprise Middleware 상에서 동작할 수도 있고 다른 Java EE 미들웨어 플랫폼에서도 동작할 수도 있습니다.
■ 특징 및 기대효과
오픈소스 제품 라이선스 |
Hibernate는 오픈 소스의 GNU Lesser General Public License(LGPL)로서 자유롭게 다운로드할 수 있고, 또 개발과 운용의 어느 경우에서도 자유롭게 사용할 수 있습니다. 또 이 라이선스에서는 ISV가 자유롭게 Hibernate를 짜넣어 배포할 수 있습니다. |
| 개발자의 생산성 향상 |
Hibernate는 반복이 많은 지루한 코딩 작업을 해소하여 개발자가 비즈니스로직에 보다 많이 집중할 수 있도록 합니다. 톱 다운으로 새로운 비즈니스로직 및 모델로부터의 개발이나 보텀 업으로 기존의 데이타베이스 schema로부터의 개발이나 어느 어플리케이션 개발 전략을 선택해도 Hibernate는 개발 기간을 큰폭으로 단축할 수 있습니다. |
| 유지보수 코스트의 삭감 |
Hibernate는 ORM를 자동화하는 것에 의해서 코드수를 큰폭으로 줄입니다. Hibernate는 2개의 데이터 표현간의 버퍼를 제공해, Java측에서 객체 지향을 보다 간결하게 사용할 수 있도록 합니다. 게다가 관계형 schema의 정규화는 유지되어 데이터의 완전성도 보증됩니다. |
| 퍼포먼스를 항상 최적화 |
Hibernate로 파시스턴스를 집중적으로 처리할 수 있도록 하면, 수작업으로 코딩한 파시스턴스와 달리, 최적화를 항상 적용할 수 있습니다. 예를 들어, Hibernate를 사용하여 파시스턴스를 처리하는 것으로, 폭넓은 캐쉬 기능을 활용할 수 있는, 모듈형의 2계층 캐싱 시스템을 구성할 수 있습니다. |
| 표준 규격 베이스 |
Hibernate는 통상, Enterprise Java Bean(EJB)의 Session Beans를 이용한 Java Swing 어플리케이션, Java 서블릿 베이스의 어플리케이션, 또는 J2EE 어플리케이션으로 사용됩니다. Hibernate 3.0은 극적으로 간소화된 파시스턴스모델을 EJB 규격에 제공하는 EJB 3.0 Java Persistence API에 있어서 매우 중요한 역할을 완수합니다. 또, Hibernate 3을 Hibernate Annotations와 조합하는 것으로 개발자는 EJB 3.0 컨테이너 밖에서 스탠드얼론의 Java 어플리케이션내에서 EJB 3.0 스타일의 프로그래밍을 실현할 수 있습니다. |
| 엔터프라이즈 클래스의 신뢰성과 확장성 |
Hibernate는 뛰어난 안정성과 품질로 잘 알려져 있습니다.
그것은 수만명의 Java 개발자가 Hibernate를 사용하고 있는 것부터도 알 수 있습니다. Hibernate는 어플리케이션서버 클러스터내에서 동작해, 확장성이 높은 아키텍쳐를 제공하기 위해서, 처음부터 설계되었습니다. Hibernate는 수백명의 유저에게 서비스를 제공하는 사내 인트라넷을 운용하기 위한 사용에, 몇만명의 유저에게 서비스를 제공하는 미션 크리티컬 어플리케이션에 사용에 관계없이, 모든 규모의 환경에 대응할 수 있습니다. |
|