자바 퍼시스턴스 프로그래밍 완벽 가이드 - 위키북스 오픈소스 & 웹 시리즈 114

자바 퍼시스턴스 프로그래밍 완벽 가이드 - 위키북스 오픈소스 & 웹 시리즈 114

$49.25
Description
애플리케이션 데이터를 효과적으로 관리하는 것은 모든 애플리케이션에 필수적입니다. 스프링 데이터와 하이버네이트는 객체지향 코드와 관계형 데이터 저장소 간의 격차를 줄여 자바 영속성 프로그래밍을 획기적으로 간소화합니다.

《자바 퍼시스턴스 프로그래밍 완벽 가이드》는 스프링 데이터, JPA, 하이버네이트를 이용한 실습 예제를 통해 자바 영속성을 자세히 다룹니다. 이 책은 주요 자바 영속성 도구의 기능을 면밀히 분석하고 가장 일반적인 사용 사례를 안내합니다. 각 도구를 비교, 대조함으로써 애플리케이션에 어떤 도구가 적합한지 선택할 수 있습니다. 매핑 전략을 만들고 활용하는 방법, 하이버네이트와 스프링 데이터의 트랜잭션 접근 방식, 자바 영속성 애플리케이션을 효율적으로 테스트하는 방법까지 배울 수 있습니다. 관계형 데이터베이스와 비관계형 데이터베이스를 모두 활용하는 예제도 제시합니다.

★ 이 책에서 다루는 내용 ★

◎ 영속 클래스, 값 타입, 상속 매핑
◎ 컬렉션과 엔티티 연관관계 매핑
◎ 스프링 데이터와 하이버네이트를 이용한 트랜잭션 처리
◎ 페치 계획, 전략, 프로파일
◎ 데이터 필터링
◎ 스프링 데이터 REST 프로젝트 구축
◎ 비관계형 데이터베이스에서 자바 영속성 활용
◎ QueryDSL을 이용한 JPA 쿼리
◎ 자바 영속성 애플리케이션 테스트
저자

커틀린투도세

저자:커틀린투도세

루마니아아르제슈주피테슈티에서태어나1997년부쿠레슈티에서컴퓨터공학학위를취득했다.또한이분야에서박사학위도취득했다.자바분야에서20년이상의경력을보유하고있으며,현재룩소프트루마니아지부에서자바및웹기술전문가로활동하고있다.부쿠레슈티의자동화및컴퓨터학부에서조교및교수로2,000시간이상의과정과애플리케이션을가르쳤다.또한폴란드에서약50명의신입자바프로그래머를양성한기업주니어프로그램을비롯해회사내에서3,000시간이상자바를가르쳤다.그는UMUC(UniversityofMarylandUniversityCollege)에서자바관련온라인강좌를개설하기도했으며JUnit5,스프링,하이버네이트와관련된주제에대해“JUnit5를이용한TDD”,“자바BDD기초”,“자바에서의테스트피라미드전략구현”,“스프링프레임워크:스프링AOP를이용한관점지향프로그래밍”,“JUnit4에서JUnit5테스트플랫폼으로의마이그레이션”,“하이버네이트5를이용한자바영속성기초”와같은6개의강좌를플루럴사이트(Pluralsight)와함께개발했다.IT분야와수학외에도세계문화와축구에도관심이많다.



역자:트랜스메이트

다양한IT기술과주제에관심있는사람들이함께하는번역가모임이다.시시각각변화하는IT분야에발맞춰정확하게이해하고편안하게읽을수있는기술서로거듭날수있게노력하고있다.

목차

[01부]ORM시작하기

01장:객체/관계형영속성이해
1.1영속성이란?
__1.1.1관계형데이터베이스
__1.1.2SQL이해
__1.1.3자바에서의SQL사용
1.2패러다임의불일치
__1.2.1세분성문제
__1.2.2상속문제
__1.2.3동일성문제
__1.2.4연관관계문제
__1.2.5데이터탐색문제
1.3ORM,JPA,하이버네이트,스프링데이터
정리

02장:프로젝트시작
2.1하이버네이트소개
2.2스프링데이터소개
2.3JPA를이용한“HelloWorld”예제
__2.3.1영속성단위구성
__2.3.2영속성클래스작성
__2.3.3메시지저장과로딩
2.4네이티브하이버네이트구성
2.5JPA와하이버네이트간전환
2.6스프링데이터JPA를이용한“HelloWorld”예제
2.7엔티티영속화에대한접근방식비교
정리

03장:도메인모델과메타데이터
3.1CaveatEmptor예제애플리케이션
__3.1.1계층형아키텍처
__3.1.2비즈니스도메인분석
__3.1.3CaveatEmptor도메인모델
3.2도메인모델구현
__3.2.1관심사누출처리
__3.2.2투명하고자동화된영속성
__3.2.3영속성지원클래스작성
__3.2.4POJO연관관계구현
3.3도메인모델메타데이터
__3.3.1애너테이션기반메타데이터
__3.3.2자바객체에제약조건적용
__3.3.3XML파일을이용한메타데이터외부화
__3.3.4런타임에메타데이터에접근
정리

04장:스프링데이터JPA다루기
4.1스프링데이터JPA소개
4.2스프링데이터JPA프로젝트생성
4.3스프링데이터JPA프로젝트구성을위한첫단계
4.4스프링데이터JPA를이용한쿼리메서드정의
4.5쿼리결과제한,정렬,페이징
4.6결과스트리밍
4.7@Query애너테이션
4.8프로젝션
4.9수정쿼리
4.10예제기반쿼리
정리

[02부]매핑전략

05장:영속성클래스매핑
5.1엔티티와값타입이해
__5.1.1잘게세분화된도메인모델
__5.1.2애플리케이션개념정의
__5.1.3엔티티와값타입구분
5.2식별자가있는엔티티매핑
__5.2.1자바동일성과동등성이해
__5.2.2첫번째엔티티클래스와매핑
__5.2.3기본키선정
__5.2.4키생성기구성
__5.2.5식별자생성기전략
5.3엔티티매핑옵션
__5.3.1이름제어
__5.3.2동적SQL생성
__5.3.3엔티티를불변으로만들기
__5.3.4엔티티를서브쿼리에매핑
정리

06장:값타입매핑
6.1기본프로퍼티매핑
__6.1.1기본프로퍼티기본값재정의
__6.1.2프로퍼티접근방식변경
__6.1.3파생프로퍼티활용
__6.1.4칼럼값변환
__6.1.5생성되는프로퍼티값과기본프로퍼티값
__6.1.6@Temporal애너테이션
__6.1.7열거형매핑
6.2임베드가능한컴포넌트매핑
__6.2.1데이터베이스스키마
__6.2.2클래스를임베드가능하게만들기
__6.2.3임베드된속성재정의
__6.2.4중첩임베드된컴포넌트매핑
6.3변환기를이용한자바타입과SQL타입의매핑
__6.3.1내장타입
__6.3.2사용자정의JPA변환기생성
__6.3.3UserType을이용한하이버네이트확장
정리

07장:상속매핑
7.1암시적다형성을활용한구체클래스별테이블
7.2유니온을활용한구체클래스별테이블
7.3클래스계층구조별테이블
7.4조인을활용한하위클래스별테이블
7.5상속전략혼합
7.6임베드가능한클래스의상속
7.7전략선택
7.8다형적연관관계
__7.8.1다형적다대일연관관계
__7.8.2다형적컬렉션
정리

08장:컬렉션과엔티티연관관계매핑
8.1세트,백,리스트,값타입의맵
__8.1.1데이터베이스스키마
__8.1.2컬렉션프로퍼티생성과매핑
__8.1.3컬렉션인터페이스선택
__8.1.4세트매핑
__8.1.5식별자백매핑
__8.1.6리스트매핑
__8.1.7맵매핑
__8.1.8정렬컬렉션과순차컬렉션
8.2컴포넌트컬렉션
__8.2.1컴포넌트인스턴스의동등성
__8.2.2컴포넌트의세트
__8.2.3컴포넌트의백
__8.2.4컴포넌트값의맵
__8.2.5맵키로서의컴포넌트
__8.2.6임베드가능한컴포넌트의컬렉션
8.3엔티티연관관계매핑
__8.3.1가능한가장간단한연관관계
__8.3.2양방향으로만들기
__8.3.3상태연쇄적용
정리

09장:고급엔티티연관관계매핑
9.1일대일연관관계
__9.1.1기본키공유
__9.1.2외래기본키생성기
__9.1.3외래키조인칼럼활용
__9.1.4조인테이블활용
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맵을활용한엔티티연관관계
__9.4.1프로퍼티키를활용한일대다
__9.4.2키/값삼항관계
정리

[03부]트랜잭션방식의데이터처리

10장:데이터관리
10.1영속성수명주기
__10.1.1엔티티인스턴스상태
__10.1.2영속성컨텍스트
10.2EntityManager인터페이스
__10.2.1일반적인작업단위
__10.2.2데이터영속화
__10.2.3영속성데이터조회와수정
__10.2.4참조얻기
__10.2.5데이터비영속화
__10.2.6데이터새로고침
__10.2.7데이터복제
__10.2.8영속성컨텍스트에서의캐싱
__10.2.9영속성컨텍스트플러시
__10.3준영속상태다루기
__10.3.1준영속인스턴스의식별자
__10.3.2동등성메서드구현
__10.3.3엔티티인스턴스의준영속화
__10.3.4엔티티인스턴스병합
정리

11장:트랜잭션과동시성
11.1트랜잭션핵심기초
__11.1.1ACID속성
__11.1.2데이터베이스트랜잭션과시스템트랜잭션
11.2동시접근제어
__11.2.1데이터베이스수준동시성이해하기
__11.2.2낙관적동시성제어
__11.2.3명시적인비관적잠금
__11.2.4교착상태방지
11.3비트랜잭션방식의데이터접근
__11.3.1자동커밋모드에서데이터읽기
__11.3.2수정사항을대기열에넣기
11.4스프링및스프링데이터를이용한트랜잭션관리
__11.4.1트랜잭션전파
__11.4.2트랜잭션롤백
__11.4.3트랜잭션프로퍼티
__11.4.4프로그래밍방식의트랜잭션정의
__11.4.5스프링및스프링데이터를활용한트랜잭션방식의개발
정리

12장:페치계획과페치전략,페치프로파일
12.1지연로딩과즉시로딩
__12.1.1엔티티프락시이해
__12.1.2지연된영속성컬렉션
__12.1.3연관관계와컬렉션의즉시로딩
12.2페치전략선택
__12.2.1n+1문제
__12.2.2데카르트곱문제
__12.2.3일괄데이터프리페치
__12.2.4서브쿼리를이용한컬렉션프리페치
__12.2.5여러개의SELECT를이용한즉시페치
__12.2.6동적즉시페치
12.3페치프로파일활용
__12.3.1하이버네이트페치프로파일선언
__12.3.2엔티티그래프활용
정리

13장:데이터필터링
13.1상태전이연쇄적용
__13.1.1사용가능한연쇄적용옵션
__13.1.2전이적준영속화와병합
__13.1.3새로고침연쇄적용
__13.1.4복제연쇄적용
13.2이벤트수신과인터셉트
__13.2.1JPA이벤트리스너와콜백
__13.2.2하이버네이트인터셉터구현
__13.2.3핵심이벤트시스템
13.3하이버네이트엔버스를활용한감사및버전관리
__13.3.1감사로깅활성화
__13.3.2감사추적생성
__13.3.3수정본찾기
__13.3.4이력데이터접근
13.4동적데이터필터
__13.4.1동적필터정의
__13.4.2동적필터적용
__13.4.3동적필터활성화
__13.4.4컬렉션접근필터링
정리

[04부]스프링을이용한자바영속성애플리케이션구축

14장:JPA와하이버네이트를스프링과통합
14.1스프링프레임워크와의존성주입
14.2스프링과DAO패턴을이용한JPA애플리케이션구축
14.3스프링과DAO를이용한JPA애플리케이션의제네릭화
14.4스프링과DAO패턴을이용한하이버네이트애플리케이션구축
14.5스프링과DAO를이용한하이버네이트애플리케이션제네릭화
정리

15장:스프링데이터JDBC활용
15.1스프링데이터JDBC프로젝트생성
15.2스프링데이터JDBC에서쿼리다루기
__15.2.1스프링데이터JDBC를이용한쿼리메서드정의
__15.2.2쿼리결과제한,정렬,페이징
__15.2.3결과스트리밍
__15.2.4@Query애너테이션
__15.2.5수정쿼리
15.3스프링데이터JDBC를이용한관계모델링
__15.3.1스프링데이터JDBC를이용한일대일관계모델링
__15.3.2스프링데이터JDBC를이용한임베드된엔티티모델링
__15.3.3스프링데이터JDBC를이용한일대다관계모델링
__15.3.4스프링데이터JDBC를이용한다대다관계모델링
정리

16장:스프링데이터REST활용
16.1REST애플리케이션소개
16.2스프링데이터REST애플리케이션생성
16.3조건부요청을위한ETag활용
16.4리포지터리,메서드,필드에대한접근제한
16.5REST이벤트다루기
__16.5.1AnnotatedHandler작성
__16.5.2ApplicationListener작성
16.6프로젝션과컬렉션뷰활용
정리

출판사 서평

애플리케이션데이터를효과적으로관리하는것은모든애플리케이션에필수적입니다.스프링데이터와하이버네이트는객체지향코드와관계형데이터저장소간의격차를줄여자바영속성프로그래밍을획기적으로간소화합니다.

《자바퍼시스턴스프로그래밍완벽가이드》는스프링데이터,JPA,하이버네이트를이용한실습예제를통해자바영속성을자세히다룹니다.이책은주요자바영속성도구의기능을면밀히분석하고가장일반적인사용사례를안내합니다.각도구를비교,대조함으로써애플리케이션에어떤도구가적합한지선택할수있습니다.매핑전략을만들고활용하는방법,하이버네이트와스프링데이터의트랜잭션접근방식,자바영속성애플리케이션을효율적으로테스트하는방법까지배울수있습니다.관계형데이터베이스와비관계형데이터베이스를모두활용하는예제도제시합니다.

★이책에서다루는내용★
영속클래스,값타입,상속매핑
컬렉션과엔티티연관관계매핑
스프링데이터와하이버네이트를이용한트랜잭션처리
페치계획,전략,프로파일
데이터필터링
스프링데이터REST프로젝트구축
비관계형데이터베이스에서자바영속성활용
QueryDSL을이용한JPA쿼리
자바영속성애플리케이션테스트