2021. 5. 26. 19:08ㆍWEB Dev./Spring Boot 입문
- H2 데이터베이스 설치
- 순수 JDBC
- Spring 통합 테스트
- Spring JdbcTemplate
- JPA
- Spring Data JPA (JPA를 더 편리하게)
6. Spring Data JPA
Spring Boot와 JPA만 사용해도 개발 생산성이 많이 증가하고 개발해야할 코드 또한 확연히 줄어듭니다. 여기에 스프링 데이터 JPA를 사용하면 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 기본 CRUD 기능도 스프링 데이터 JPA가 제공합니다.
스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 기술로 JPA를 먼저 학습한 후 스프링 데이터 JPA를 학습해야 합니다.
스프링 데이터 JPA 생성 및 활용 방법
1. repository 패키지에 interface 생성
2. interface가 interface를 받을 땐 extends -> SpringDataJpaMemberRepository extends JpaRepository<Member> {}
SpringDataJpaMemberRepository가 JpaRepository를 갖고 있으면 구현체를 자동으로 만들어 줍니다. 즉, 스프링 빈에 자동으로 등록해주게 됩니다.
기존에는 MemberRepository의 인터페이스를 통해 의존 주입을 받았다면, 스프링 데이터 JPA에서 제공하는 기능을 이용하기 위해선 memberRepository에 사용할 기능을 추가해야 합니다.
하지만 스프링 데이터 JPA가 제공하는 모든 기능에 의존하는 설계가 되면 향후 리포지토리 변경이 어렵습니다.
고로 유연성과 실용성 간의 트레이드 오프인 셈입니다.
복잡한 동적 쿼리는 Querydsl이라는 라이브러리를 사용하면 됩니다. Querydsl을 사용하면 쿼리도 자바 코드로 안전하게 작성할 수 있고, 동적 쿼리도 편리하게 작성할 수 있습니다. 이 조합으로 해결하기 어려운 쿼리는 JPA가 제공하는 네이티브 쿼리를 사용하거나, 앞서 학습한 스프링 JdbcTemplate을 사용하면 됩니다.
'WEB Dev. > Spring Boot 입문' 카테고리의 다른 글
7. SpringBoot 입문 - AOP가 필요한 상황 (0) | 2021.06.07 |
---|---|
6. SpringBoot 입문 - Spring DB 접근 기술 - JPA (0) | 2021.05.26 |
6. SpringBoot 입문 - Spring DB 접근 기술 - Spring JdbcTemplate (0) | 2021.05.26 |
6. SpringBoot 입문 - Spring DB 접근 기술 - 통합 테스트 (0) | 2021.05.26 |
6. SpringBoot 입문 - Spring DB 접근 기술 - 순수 JDBC (0) | 2021.05.26 |