logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

하이버네이트 완벽 가이드

하이버네이트 완벽 가이드

(자바 개발자를 위한 자바 퍼시스턴스 프로그래밍)

크리스찬 바우어, 개빈 킹 (지은이), 이대엽, 백기선, 박찬욱 (옮긴이)
위키북스
45,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

하이버네이트 완벽 가이드
eBook 미리보기

책 정보

· 제목 : 하이버네이트 완벽 가이드 (자바 개발자를 위한 자바 퍼시스턴스 프로그래밍)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
· ISBN : 9788992939508
· 쪽수 : 960쪽
· 출판일 : 2010-06-15

책 소개

하이버네이트 프로젝트를 만든 장본인이 쓴 책. 하이버네이트는 물론이고 영속화, 객체/관계형 매핑, 자바 퍼시스턴스와 관련된 모든 주제를 빠짐없이 상세하게 다루고 있다. 특히 다양한 환경에서 가장 알맞은 영속화 전략을 택해야 할 때 이 책이 실용적인 해법을 제시할 것이다.

목차

1부 하이버네이트와 EJB 3.0 시작하기

1장 객체/관계형 영속화 이해하기

1.1 영속화란 무엇인가?
1.1.1 관계형 데이터베이스
1.1.2 SQL 이해하기
1.1.3 자바에서 SQL 사용하기
1.1.4 객체지향 애플리케이션에서의 영속화
1.2 패러다임 불일치
1.2.1 세밀함의 불일치 문제
1.2.2 하위 타입 문제
1.2.3 동일성 문제
1.2.4 연관 관계와 관련된 문제
1.2.5 데이터 탐색 문제
1.2.6 패러다임 불일치에 따르는 비용
1.3 영속화 계층과 대안
1.3.1 계층형 아키텍처
1.3.2 SQL과 JDBC를 이용해서 직접 작성한 영속화 계층
1.3.3 객체 직렬화 사용하기
1.3.4 객체지향 데이터베이스 시스템
1.3.5 그 밖의 대안
1.4 객체/관계형 매핑
1.4.1 ORM이란 무엇인가?
1.4.2 일반적인 ORM 문제
1.4.3 왜 ORM인가
1.4.4 하이버네이트, EJB3, JPA 소개
1.5. 정리

2장 프로젝트 시작하기

2.1. 하이버네이트 프로젝트 시작하기
2.1.2 프로젝트 구성하기
2.1.3 하이버네이트 설정과 시작
2.1.4 애플리케이션 실행과 확인
2.2 자바 퍼시스턴스 프로젝트 시작하기
2.2.1 하이버네이트 애노테이션 사용하기
2.2.2 하이버네이트 EntityManager 사용하기
2.2.3 EJB 컴포넌트 도입하기
2.2.4 하이버네이트 인터페이스로 교체하기
2.3 레거시 데이터베이스 역공학하기
2.3.1 데이터베이스 설정 만들기
2.3.2 역공학 과정 재정의하기
2.3.3 자바 소스 코드 생성하기
2.4 자바 EE 서비스와의 통합
2.4.1 JTA와의 통합
2.4.2 JNDI와 연동된 SessionFactory
2.4.3 JMX 서비스 배포
2.5 정리

3장 도메인 모델과 메타데이터

3.1 CaveatEmptor 애플리케이션
3.1.1 비즈니스 도메인 분석하기
3.1.2 CaveatEmptor 도메인 모델
3.2 도메인 모델 구현하기
3.2.1 관심사 누수 다루기
3.2.2 투명하고 자동화된 영속화
3.2.3 POJO와 영속 엔티티 클래스 작성하기
3.2.4 POJO 연관 관계 구현하기
3.2.5 접근 메서드에 로직 추가하기
3.3 객체/관계형 매핑 메타데이터
3.3.1 XML 메타데이터
3.3.2 애노테이션 기반 메타데이터
3.3.3 XDoclet 사용하기
3.3.4 전역 메타데이터 다루기
3.3.5 실행 시점에 메타데이터 조작하기
3.4 그 밖의 엔티티 표현 방법
3.4.1 동적인 애플리케이션 만들기
3.4.2 XML로 데이터 표현하기
3.5 정리

2부 매핑 개념과 전략

4장 영속 클래스 매핑하기

4.1 엔티티와 값 타입 이해하기
4.1.1 구성 단위가 세밀한 도메인 모델
4.1.2 개념 정의
4.1.3 엔티티와 값 타입 식별하기
4.2 식별자가 있는 엔티티 매핑하기
4.2.1 자바의 동일성과 동등성 이해하기
4.2.2 데이터베이스 동일성 다루기
4.2.3 데이터베이스 주키
4.3 클래스 매핑 옵션
4.3.1 동적 SQL 생성
4.3.2 엔티티가 불변성을 띠게 만들기
4.3.3 쿼리에 사용할 엔티티의 이름 부여하기
4.3.4 패키지 이름 선언하기
4.3.5 SQL 식별자의 인용부호 처리하기
4.3.6 작명 규약 구현하기
4.4 구성 단위가 세밀한 모델과 매핑
4.4.1 기본 프로퍼티 매핑하기
4.4.2 컴포넌트 매핑하기
4.5 정리

5장 상속과 사용자 정의 타입

5.1 클래스 상속 매핑하기
5.1.1 암시적 다형성을 이용한 구상 클래스마다 하나의 테이블
5.1.2 유니온을 이용한 구상 클래스마다 하나의 테이블
5.1.3 클래스 계층 구조마다 하나의 테이블
5.1.4 하위 클래스마다 하나의 테이블
5.1.5 상속 전략 섞어 쓰기
5.1.6 매핑 전략 선택
5.2 하이버네이트 타입 시스템
5.2.1 엔티티와 값 객체 요약정리
5.2.2 내장 매핑 타입
5.2.3 매핑 타입 사용하기
5.3 사용자 정의 매핑 타입 만들기
5.3.1 사용자 정의 매핑 타입 고려하기
5.3.2 확장점
5.3.3 사용자 정의 매핑 타입이 필요한 경우
5.3.4 UserType 만들기
5.3.5 CompositeUserType 만들기
5.3.6 사용자 정의 타입 매개변수화하기
5.3.7 열거형 매핑하기
5.4 정리

6장 컬렉션과 엔티티 연관 관계 매핑하기

6.1 값 타입의 컬렉션
6.1.1 컬렉션 인터페이스 선택하기
6.1.2 Set 매핑하기
6.1.3 식별자 Bag 매핑하기
6.1.4 List 매핑하기
6.1.5 Map 매핑하기
6.1.6 정렬 컬렉션과 순차 컬렉션
6.2 컴포넌트의 컬렉션
6.2.1 컴포넌트 클래스 작성하기
6.2.2 컬렉션 매핑하기
6.2.3 양방향 탐색 활성화하기
6.2.4 not-null 열 만들지 않기
6.3 애노테이션을 이용해서 컬렉션 매핑하기
6.3.1 기본적인 컬렉션 매핑
6.3.2 정렬 컬렉션과 순차 컬렉션
6.3.3 내장 객체의 컬렉션 매핑하기
6.4 부모/자식 관계 매핑하기
6.4.1 다중성
6.4.2 가능한 가장 단순한 연관 관계
6.4.3 연관 관계를 양방향으로 만들기
6.4.4 연쇄적으로 객체 상태 적용하기
6.5 정리

7장 고급 엔티티 연관 관계 매핑

7.1 단일값 엔티티 연관 관계
7.1.1 공유 주키 연관 관계
7.1.2 일대일 외래키 연관 관계
7.1.3 조인 테이블을 이용한 매핑
7.2 다중 값 엔티티 연관 관계
7.2.1 일대다 연관 관계
7.2.2 다대다 연관 관계
7.2.3 조인 테이블에 열 추가하기
7.2.4 Map 매핑하기
7.3 다형적인 연관 관계
7.3.1 다형적 다대일 연관 관계
7.3.2 다형적 컬렉션
7.3.3 유니온에 대한 다형적 연관 관계
7.3.4 다형적인 구상 클래스마다 하나의 테이블
7.4 정리

8장 레거시 데이터베이스와 사용자 정의 SQL

8.1 레거시 데이터베이스 통합하기
8.1.1 주키 다루기
8.1.2 수식을 이용한 임의 조인 조건
8.1.3 임의 테이블 조인하기
8.1.4 트리거 이용하기
8.2 SQL 직접 재정의하기
8.2.1 사용자 정의 CRUD 문 작성하기
8.2.2 저장 프로시저와 저장 함수 통합하기
8.3 스키마 DDL 개선하기
8.3.1 사용자 정의 SQL 이름과 데이터 타입
8.3.2 데이터의 일관성 보장하기
8.3.3 도메인 및 열 제약 조건 추가하기
8.3.4 테이블 수준의 제약 조건
8.3.5 데이터베이스 제약 조건
8.3.6 인덱스 생성하기
8.3.7 보조 DDL 추가하기
8.4 정리

3부 대화형 객체 처리

9장 객체를 활용한 개발

9.1 영속성 생명주기
9.1.1 객체 상태
9.1.2 영속성 컨텍스트
9.2 객체 동일성과 동등성
9.2.1 컨버세이션 소개
9.2.2 객체 동일성 범위
9.2.3 준영속 객체의 동일성
9.2.4 영속성 컨텍스트 확장하기
9.3 하이버네이트 인터페이스
9.3.1 객체 저장하고 불러오기
9.3.2 준영속 객체 이용하기
9.3.3 영속성 컨텍스트 관리하기
9.4 자바 퍼시스턴스 API
9.4.1 객체 저장하고 불러오기
9.4.2 준영속 엔티티 인스턴스 이용하기
9.5 EJB 컴포넌트에서 자바 퍼시스턴스 사용하기
9.5.1 EntityManager 주입하기
9.5.2 EntityManager 검색하기
9.5.3 EntityManagerFactory에 접근하기
9.6 정리

10장 트랜잭션과 동시성

10.1 트랜잭션 필수 지식
10.1.1 데이터베이스와 시스템 트랜잭션
10.1.2 하이버네이트 애플리케이션에서의 트랜잭션
10.1.3 자바 퍼시스턴스에서의 트랜잭션
10.2. 동시 접근 제어하기
10.2.1 데이터베이스 수준의 동시성 이해하기
10.2.2 낙관적 동시성 제어
10.2.3. 그 외 격리성 획득 보장하기
10.3 트랜잭션 미적용 데이터 접근
10.3.1 자동 커밋 신화 밝혀내기
10.3.2 하이버네이트에서 트랜잭션 적용하지 않고 개발하기
10.3.3 그 밖의 JTA를 사용하는 트랜잭션
10.4 정리

11장 컨버세이션 구현하기

11.1 하이버네이트 세션 전파하기
11.1.1 세션 전파의 쓰임새
11.1.2 스레드 로컬로 전파하기
11.1.3 JTA를 이용한 전파
11.1.4 EJB를 사용한 전파
11.2 하이버네이트를 이용한 컨버세이션
11.2.1 컨버세이션 처리 보장하기
11.2.2 준영속 객체를 이용하는 컨버세이션
11.2.3 컨버세이션까지 Session 확장하기
11.3 JPA를 이용하는 컨버세이션
11.3.1 자바 SE에서 영속성 컨텍스트 전파하기
11.3.2 컨버세이션에서 준영속 객체 병합하기
11.3.3 자바 SE에서 영속성 컨텍스트 확장하기
11.4 EJB 3.0을 이용하는 컨버세이션
11.4.1 EJB를 사용한 컨텍스트 전파
11.4.2 EJB를 사용한 영속성 컨텍스트 확장
11.5 정리

12장 효율적인 객체 수정

12.1 영속성 전이
12.1.1 접근성을 통한 영속화
12.1.2 연관 관계에 연쇄 작용 적용하기
12.1.3. 상태 전이 이용하기
12.2 벌크와 배치 연산
12.2.1 HQL과 JPA QL을 이용하는 벌크 문
12.2.2 배치를 이용해 처리하기
12.2.3 무상태 Session 사용하기
12.3 데이터 필터링과 가로채기
12.3.1 동적 데이터 필터
12.3.2 하이버네이트 이벤트 가로채기
12.3.3 핵심 이벤트 시스템
12.3.4 엔티티 리스너와 콜백
12.4 정리

13장 페치와 캐시 최적화

13.1 전역 페치 계획 정의하기
13.1.1 객체 조회 방법
13.1.2 기본적인 지연 페치 계획
13.1.3 프록시 이해하기
13.1.4 프록시 생성 비활성화하기
13.1.5 연관과 컬렉션의 즉시 로딩
13.1.6 가로채기를 이용한 지연 로딩
13.2 페치 전략 선택하기
13.2.1 배치로 데이터 선행 페치하기
13.2.2 하위 쿼리를 이용한 컬렉션 선행 페치
13.2.3 조인을 이용한 즉시 페치
13.2.4 보조 테이블에 대한 페치 최적화하기
13.2.5 최적화 지침
13.3 캐싱 기초
13.3.1 캐싱 전략과 유효 범위
13.3.2 하이버네이트 캐시 아키텍처
13. 4 캐싱 실전
13.4.1 동시성 제어 전략 선택하기
13.4.2 캐시 영역 이해하기
13.4.3 로컬 캐시 공급자 설정
13.4.4 복제 캐시 설정하기
13.4.5 2차 캐시 제어
13.5 정리

14장 HQL과 JPA QL을 이용한 쿼리

14.1 쿼리 생성과 실행
14.1.1 쿼리 준비
14.1.2 쿼리 실행
14.1.3 명명 쿼리 사용하기
14.2 기본 HQL과 JPA QL 쿼리
14.2.1 조회
14.2.2 한정
14.2.3. 프로젝션
14.3 조인, 리포팅 쿼리, 하위 쿼리
14.3.1 조인 관계와 연관 관계
14.3.2 리포팅 쿼리
14.3.3 하위 쿼리 사용하기
14.4 정리

15장 고급 쿼리 옵션

15.1 Criteria와 Example을 이용한 쿼리 수행
15.1.1 기본 Criteria 쿼리
15.1.2 조인과 동적 페치 수행
15.1.3 프로젝션과 리포팅 쿼리
15.1.4 Example을 이용한 쿼리
15.2.3 자바 퍼시스턴스에서의 네이티브 SQL 사용
15.3 컬렉션 필터링
15.4 쿼리 결과 캐시
15.4.1 쿼리 결과 캐시 활성화하기
15.4.2 쿼리 캐시 이해하기
15.4.3 쿼리 캐시는 언제 사용할까?
15.4.4 고유 식별자를 이용한 캐시 룩업
15.5 정리

16장 계층형 애플리케이션 작성과 테스트

16.1 웹 애플리케이션에서의 하이버네이트
16.1.1 기능 소개
16.1.2 컨트롤러 작성하기
16.1.3 Open Session in View 패턴
16.1.4 지능적인 도메인 모델 설계하기
16.2 영속화 계층 만들기
16.2.1 일반화된 데이터 접근 객체 패턴
16.2.2 제네릭 CRUD 인터페이스 구현하기
16.2.3 엔티티 DAO 구현하기
16.2.4 데이터 접근 객체 사용하기
16.3 커맨드 패턴 도입하기
16.3.1 기본 인터페이스
16.3.2 커맨드 객체 실행하기
16.3.3 커맨드 패턴의 변종
16.4 EJB 3.0으로 애플리케이션 설계하기
16.3.1 상태 유지 빈을 사용해 컨버세이션 구현하기
16.4.2 EJB로 DAO 작성하기
16.4.3 의존성 주입 활용하기
16.5 테스트
16.5.1 여러 종류의 테스트 이해하기
16.5.2 TestNG 도입하기
16.5.3 영속화 계층 테스트
16.5.4 성능 벤치마크 고려하기
16.6 정리

17장 제이보스 심 소개

17.1 자바 EE 5.0 프로그래밍 모델
17.1.1 JSF 살펴보기
17.1.2 EJB 3.0 살펴보기
17.1.3 JSF와 EJB 3.0을 이용하여 웹 애플리케이션 작성하기
17.1.4 애플리케이션 분석하기
17.2 심을 이용한 애플리케이션 개선
17.2.1 심 설정하기
17.2.2 페이지와 상태유지 컴포넌트를 연동하기
17.2.3 심 애플리케이션 분석하기
17.3 컨텍스트 기반 컴포넌트 이해하기
17.3.1 로그인 화면 작성하기
17.3.2 컴포넌트 생성하기
17.3.3 컨텍스트 기반 변수의 별칭 만들기
17.3.4 로그인/로그아웃 기능 완성하기
17.4 입력 유효성 검증하기
17.4.1 하이버네이트 검증기 도입하기
17.4.2 등록 페이지 만들기
17.4.3 심을 이용한 국제화
17.5 심을 이용해서 영속성 처리 단순화하기
17.5.1 컨버세이션 구현하기
17.5.2 심에 영속성 컨텍스트 관리 위임하기
17.6 정리

부록A SQL 기초

부록B 매핑 레퍼런스

저자소개

크리스찬 바우어 (지은이)    정보 더보기
크리스찬 바우어는 하이버네이트 개발 팀의 일원이며, 제이보스의 하이버네이트, EJB 3.0, 제이보스 심에 대한 교육, 컨설팅, 제품 관리를 담당하고 있다.
펼치기
개빈 킹 (지은이)    정보 더보기
개빈 킹은 제이보스에서 선도 개발자로 근무하며, 하이버네이트 프로젝트를 만들었으며, EJB 3.0(JSR 220) 전문가 그룹의 일원이기도 하다. 또한 하이버네이트 개념과 JSF, EJB 3.0과 관련한 표준 제정을 위해 웹 빈 JSR 299를 이끌고 있다.
펼치기
이대엽 (옮긴이)    정보 더보기
책 만드는 일을 하고 있으며, 이따금 IT 관련 서적을 번역하기도 한다. 옮긴 책으로 『헬로! 파이썬 프로그래밍』 『자바 API 디자인』 『풀스택 자바스크립트 개발』 『테스트 주도 개발로 배우는 객체 지향 설계와 실천』 『자바스크립트 개론』 『모듈라 자바』 『시작하세요! 맥 OS X 라이언』 『도메인 주도 설계』 『하이버네이트 완벽 가이드』 『개념을 잡아주는 프로그래밍 정석』 등이 있다.
펼치기
백기선 (지은이)    정보 더보기
Whiteship이라는 아이디로 블로그에 학습한 기술을 정리하고 공유하며, 봄싹 커뮤니티에 몸담고 있다. 전자정부 표준 프레임워크 커미터로도 활동하며, 틈틈이 『프로 스프링 2.5』와 『하이버네이트 완벽 가이드』 등을 번역하기도 했다. 2007년 12월부터 개발자로 일하고 있으며, 요즘은 NHN Business Platform에서 Vert.x와 Socket.IO를 사용하여 실시간 애플리케이션 클라우드 플랫폼을 개발하고 있다. 첫째 서연이가 태어나기 전에는 스노보드, 피아노, 큐브 등 취미가 정말 많았다. 하나 요즘 유일한 취미는 아이에게 장난치는 것이다. 조금 있으면 둘째도 볼 수 있다고 하니 더욱 신난다.
펼치기
박찬욱 (옮긴이)    정보 더보기
오픈소스 프레임워크에 관심이 많아 대학부터 현재까지 오픈소스 기반 프레임워크를 개발하고 보급하는 일을 해오고 있다. 현재는 한화 S&C에서 전사 표준 프레임워크를 개발·운영하고, 조직에 전파하는 일을 하며, 블로그(http://chanwook.tistory.com)나 강의, 세미나 등을 통해 같은 고민을 하고 있는 사람들과 모여 기술에 대한 토론을 즐긴다. 항상 본인의 신념과 행동을 일치시키기 원하며, 도전과 균형이라는 두 가지의 어려운 삶의 주제로 항상 고민하고 있다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책