Presentation is loading. Please wait.

Presentation is loading. Please wait.

하이버네이트 (Hibernate) 2018. 05. 09. 박지혜.

Similar presentations


Presentation on theme: "하이버네이트 (Hibernate) 2018. 05. 09. 박지혜."— Presentation transcript:

1 하이버네이트 (Hibernate) 박지혜

2 1. 하이버네이트 사용현황 2. 하이버네이트의 특징 3. 하이버네이트 vs myBatis 비교 4. 하이버네이트 성능
목차 1. 하이버네이트 사용현황 2. 하이버네이트의 특징 3. 하이버네이트 vs myBatis 비교 4. 하이버네이트 성능 5. 생각해볼 점

3 1. 하이버네이트 사용현황

4 hibernate, myBatis 대신 hibernate example, myBatis example 검색
1. 하이버네이트 사용현황 hibernat는 ‘동면하다’라는 뜻을 가진 영어 단어임. hibernate, myBatis 대신 hibernate example, myBatis example 검색 출처:

5 1. 하이버네이트 사용현황 한국 전세계 일본 미국 인도 중국

6 2. 하이버네이트의 특징

7 2. 하이버네이트의 특징 1) Object-oriented programming 개념 UPDATE 쿼리 실행 (X) dto를 수정한 후 save() 호출 (O) 2) 특정 DBMS에 종속되지 않음 - DBMS 교체 용이 (특정 DB 종속 쿼리를 HQL로 선언한 것이 아닌 이상 DB 변경이 비교적 간단함) - multiple database 설정에 용이 3) 프로그램에 알맞게 DB를 설계할 수 있음 <property name="hibernate.hbm2ddl.auto">validate</property> Validate - 테이블을 전혀 손대지 않고, 프로그램에 필요한 테이블 구조와 일치하는지 확인한후, 일치하지 않으면 에러를 출력한다. Update - 기존 테이블이 현재 실행에 필요한 테이블 구조와 다를 경우 수정한다. (데이타는 지우지 않는다.) Create - 기존 테이블을 지운 후, 실행할때 마다 매번 생성한다. Create Drop - 테이블을 생성해서 프로그램을 실행한 후에, 테이블을 다시 지워버림

8 2. 하이버네이트의 특징 (단점) 1) 오버헤드 select 후 delete
2) 복잡한 쿼리 사용하기에 부적합 HQL을 작성할 때에 alias를 꼭 쓰고 오브젝트 클래스명과 정확히 일치해야 하고 쿼리를 xml이 아닌 프로그램 소스 코드 안에 작성해야 함

9 3. 하이버네이트 vs myBatis

10 3. 하이버네이트 vs myBatis 출처:

11 4. 하이버네이트 성능

12 4. 하이버네이트 성능 출처:

13 4. 하이버네이트 성능 출처:

14 5. 생각해볼 점

15 5. 생각해볼 점 Q. 왜 우리나라에서는 hibernate보다 myBatis를 압도적으로 많이 쓰는가?
1) 기존에 존재하는 코드나 시스템들과의 연계  처음부터 객체지향적으로 잘 설계되지 않은 DB와 연계해야 하는 경우가 많음. DB설계를 처음부터 다시 하는 경우는 매우 드물고, 대부분 as-is와 최대한 비슷하게 하는 경우가 많은 것으로 판단됨.  DB 초기 설계 단계에서부터 hibernate를 도입했어야 이후 효율적인 프로그래밍 가능함 2) 유지보수  hibernate는 문제 발생 시 쿼리를 수정하는 것이 아니라 소스를 수정해야 함.  myBatis는 쿼리를 바로 수정할 수 있음.  우리나라에서는 쿼리를 수정하여 유지보수하는 경우가 많음. 따라서 쿼리를 바로 수정할 수 있는 myBatis가 더 유용함. 3) 성능  hibernate는 쿼리 오버헤드가 있고, select 시 모든 컬럼 데이터를 다 가져오는 것이 디폴트임.  myBatis는 쿼리를 직접 튜닝하여 쿼리 성능을 높일 수 있음. 쉽게 컨트롤할 수 있음.  우리나라에서는 성능 튜닝 시 쿼리 튜닝을 제일 우선적으로 생각하는 경우가 많음. 따라서 쿼리를 바로 수정할 수 있는 myBatis가 더 유용함. Q. hibernate는 언제 사용하는 것이 적합한가? * DB를 직접 다룰 수 있는 경우  hibernate를 이용한다면 DB에 맞춰 프로그래밍하는 것이 아니라, “객체지향 프로그래밍에 알맞은 DB를 설계”하여 프로그램이 할 수 있음 * 전체적인 시스템의 분석, 설계 단계에서부터 객체지향적인 데이터베이스 설계, 객체지향적인 시스템 설계 모두를 해나갈 수 있을 때, 효율적인 프로그래밍 가능

16 - 끝 -


Download ppt "하이버네이트 (Hibernate) 2018. 05. 09. 박지혜."

Similar presentations


Ads by Google