72 lines
2.7 KiB
Markdown
72 lines
2.7 KiB
Markdown
스프링부트의 JPA에 관한 책을 위한 목차를 제안해 드리겠습니다. 이 목차는 초보자부터 중급 개발자까지 이해할 수 있도록 기본 개념부터 실무 활용까지 다루며, 체계적인 학습 흐름을 고려했습니다.
|
|
|
|
---
|
|
|
|
### 목차: 스프링부트 JPA 완벽 가이드
|
|
|
|
#### 1장. JPA와 스프링부트 소개
|
|
- 1.1 ORM과 JPA란 무엇인가?
|
|
- 1.2 스프링부트와 JPA의 만남
|
|
- 1.3 이 책의 목표와 구성
|
|
|
|
#### 2장. 개발 환경 설정
|
|
- 2.1 스프링부트 프로젝트 생성
|
|
- 2.2 JPA 의존성 추가
|
|
- 2.3 데이터베이스 설정 (H2, MySQL 등)
|
|
- 2.4 기본 애플리케이션 설정과 테스트
|
|
|
|
#### 3장. JPA 기초
|
|
- 3.1 엔티티와 테이블 매핑
|
|
- 3.2 기본 키 매핑 전략
|
|
- 3.3 관계 매핑의 이해 (1:1, 1:N, N:M)
|
|
- 3.4 JPA의 생명주기와 영속성 컨텍스트
|
|
|
|
#### 4장. 스프링 데이터 JPA
|
|
- 4.1 스프링 데이터 JPA란?
|
|
- 4.2 Repository 인터페이스 활용
|
|
- 4.3 쿼리 메서드 작성법
|
|
- 4.4 @Query 어노테이션과 커스텀 쿼리
|
|
|
|
#### 5장. 엔티티 설계와 매핑
|
|
- 5.1 엔티티 설계 시 고려사항
|
|
- 5.2 연관관계 매핑 심화
|
|
- 5.3 상속 관계 매핑 (SINGLE_TABLE, JOINED 등)
|
|
- 5.4 값 타입과 임베디드 타입 활용
|
|
|
|
#### 6장. JPA 성능 최적화
|
|
- 6.1 N+1 문제와 해결 방법
|
|
- 6.2 페치 조인(Fetch Join)과 지연 로딩(Lazy Loading)
|
|
- 6.3 배치 처리와 대량 데이터 관리
|
|
- 6.4 캐시 활용 (1차 캐시, 2차 캐시)
|
|
|
|
#### 7장. 트랜잭션 관리
|
|
- 7.1 트랜잭션의 기본 개념
|
|
- 7.2 스프링부트에서 트랜잭션 설정
|
|
- 7.3 @Transactional 어노테이션 활용
|
|
- 7.4 트랜잭션 롤백과 예외 처리
|
|
|
|
#### 8장. 실무에서의 JPA
|
|
- 8.1 스프링부트와 JPA로 REST API 구축
|
|
- 8.2 DTO와 엔티티 분리 전략
|
|
- 8.3 데이터베이스 마이그레이션 (Flyway, Liquibase)
|
|
- 8.4 테스트 코드 작성 (단위 테스트, 통합 테스트)
|
|
|
|
#### 9장. 고급 주제
|
|
- 9.1 JPA와 QueryDSL 통합
|
|
- 9.2 멀티 데이터소스 설정
|
|
- 9.3 스프링부트와 JPA의 이벤트 처리
|
|
- 9.4 JPA Auditing으로 엔티티 관리
|
|
|
|
#### 10장. 문제 해결과 모범 사례
|
|
- 10.1 흔한 JPA 실수와 디버깅
|
|
- 10.2 실무에서 유용한 설계 패턴
|
|
- 10.3 성능 모니터링과 튜닝 팁
|
|
|
|
#### 부록
|
|
- 부록 A. JPA 관련 주요 어노테이션 정리
|
|
- 부록 B. 샘플 프로젝트 코드
|
|
- 부록 C. 추가 학습 자료 및 참고 문헌
|
|
|
|
---
|
|
|
|
이 목차는 JPA의 기초부터 실무 적용까지 자연스럽게 이어지도록 설계되었습니다. 필요에 따라 특정 장을 더 세분화하거나, 독자 타겟(초급/중급)에 맞춰 내용을 조정할 수 있습니다. 추가로 강조하고 싶은 주제나 방향성이 있다면 말씀해 주세요! |