간단히 말해 이 책은 스프링 부트 애플리케이션의 자바 영속성(Persistence) 성능에 대한 모범 사례 모음집이다. 모범 사례는 120개 이상의 항목을 통해 제공되며, 다음과 같이 3가지 범주로 분류된다.
첫째, 엔터티 정의, 관계 매핑, 쿼리 작성, 데이터 가져오기, 식별자(identifier) 생성기(generator) 선택 등에 대한 모범 사례를 다룬다. 주로 스프링 부트 기본 제공 아티팩트(artifact)로 도움을 받을 수 없는 영역과 수정이 어렵고 도메인 모델에 상당한 변경을 필요로 하는 심각한 성능 저하 방지를 다룬다.
둘째, 스프링 부트 지원 기능(더 정확하게는 스프링 데이터) 사용을 위한 모범 사례를 다룬다. 기본 지원 기능의 묘책을 활용하다 보면 성능이 저하될 수 있다. 예를 들어 OSIV(Open Session in View), 오프셋 페이지네이션(offset pagination), 커밋 후 후크(post-commits hook), @Transactional에 대한 오해는 다루는 주제 중 일부에 불과하다. 여러분은 이 범위 항목들에 뛰어들 준비가 돼 있고 흥미를 느낄 것이라 확신한다.
셋째, 애플리케이션의 성능을 유지할 수 있는 몇 가지 하이버네이트 기능을 자세히 알아본다. 기본적으로 스프링 데이터는 영속성 공급자로, 하이버네이트를 사용하기에 스프링 데이터를 통해 하이버네이트를 활용할 수 있을 뿐만 아니라 하이버네이트 자체로도 활용할 수 있다. 하이버네이트 프록시(proxy)를 통한 자식 측 부모 연관관계 채우기(populating), 더티 트래킹(Dirty Tracking), 커넥션(connection) 획득 지연, 지연 로딩(lazy loading) 속성, 자연키(natural key) 사용과 같은 좋은 기능은 다루는 항목 중 일부에 불과하다.
이 책의 전제 조건은 매우 명확하다. IDE(예: NetBeans, Eclipse, IntelliJ IDEA, Visual Studio 등), MySQL 및 PostgreSQL이 필요하다. 선택적으로 다른 데이터베이스 벤더(예: 오라클, SQL 서버 등)를 설치하거나 사용할 수 있다.