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

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
오라클 백업과 복구.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Database Laboratory, Hong Ik University
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Kim heesang JDBC PROGRAMMING Kim heesang
JSP Programming with a Workbook
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
뇌를 자극하는 SQL Server 장. SQL Server 2005 통합 서비스.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
C++ Programming: Sample Programs
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
3. 데이타베이스 관리시스템.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
14 SQLite DB 활용 B A S I C 1 4_ 고객 등록과 조회 L A B 1 4_ 수정과 삭제를 포함하는 고객관리시스템 Advanced LAB 14_ 탭 메뉴의 고객관리시스템.
KHS JDBC Programming 4 KHS
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
5장 Mysql 데이터베이스 한빛미디어(주).
You YoungSEok Oracle 설치 You YoungSEok
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
CHAP 13. 방명록 만들기 실습.
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
3장. SQL Server 2008 전체 운영 실습 및 DB와 프로그램의 연동
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Lesson 2. 기본 데이터형.
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
USN(Ubiquitous Sensor Network)
ADO.NET (SqlConnection, SqlCommand)
C# O/R 디자이너- LINQ 이용.
FileMaker를 이용한 데이터 관리 옥현진(KICE).
컴퓨터응용과학부 Java Enterprize(DB) 제 14 주
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
LabVIEW WiznTec 주임 박명대 1.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
데이터 베이스 DB2 관계형 데이터 모델 권준영.
2D게임 프로그래밍 프로젝트 총은 사기입니다(가제) 박상윤.
CHAP 21. 전화, SMS, 주소록.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
오라클 11g 보안.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
2D 게임프로그래밍 프로젝트 발 록 런 김대호.
제 23 장 오라클에서 보안 기능.
농구 로봇 따라해 보기.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2D Game Programming 1차 발표 배강산.
 6장. SQL 쿼리.
7 생성자 함수.
Presentation transcript:

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

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

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

hibernate, myBatis 대신 hibernate example, myBatis example 검색 1. 하이버네이트 사용현황 hibernat는 ‘동면하다’라는 뜻을 가진 영어 단어임. hibernate, myBatis 대신 hibernate example, myBatis example 검색 출처: https://trends.google.com/trends/explore?geo=US&q=hibernate,mybatis

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

2. 하이버네이트의 특징

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 - 테이블을 생성해서 프로그램을 실행한 후에, 테이블을 다시 지워버림

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

3. 하이버네이트 vs myBatis

3. 하이버네이트 vs myBatis 출처: https://www.slideshare.net/williverson/seajug-may-2012-mybatis

4. 하이버네이트 성능

4. 하이버네이트 성능 출처: https://coderanch.com/t/503370/databases/Persistence-Hibernate-iBATIS-JDBC-Performance

4. 하이버네이트 성능 출처: http://www.devx.com/Java/Article/33768/0/page/4

5. 생각해볼 점

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를 설계”하여 프로그램이 할 수 있음 * 전체적인 시스템의 분석, 설계 단계에서부터 객체지향적인 데이터베이스 설계, 객체지향적인 시스템 설계 모두를 해나갈 수 있을 때, 효율적인 프로그래밍 가능

- 끝 -