SpringBoot/데이터베이스 연동
Spring Data JPA 기본 개념
DEVLIB
2025. 4. 14. 10:43
728x90
Spring Data JPA란?
정의
Spring Data JPA는 **JPA(Java Persistence API)**의 표준 기능을 바탕으로,
반복적인 CRUD 코드 없이 인터페이스만으로 데이터베이스와 상호작용할 수 있게 해주는 스프링 생태계의 모듈입니다.
한 줄 요약:
“SQL 없이 자바 인터페이스로 DB 조작하기”
구조 관계
Spring Boot
↓
Spring Data JPA
↓
JPA (Hibernate)
↓
DB (MySQL, H2, PostgreSQL 등)
핵심 개념 정리
용어 |
설명 |
Entity | DB 테이블과 매핑되는 자바 클래스 |
Repository | 데이터를 조회/저장하는 인터페이스 |
@Entity | 이 클래스가 DB 테이블과 매핑된다는 의미 |
@Id | 기본 키 지정 |
@GeneratedValue | 자동 생성 전략 지정 (AUTO, IDENTITY 등) |
JpaRepository<T, ID> | CRUD, 페이징, 정렬 기능 포함 인터페이스 |
기본 사용 예시
1. 엔티티 클래스 생성
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
// 기본 생성자, Getter/Setter 등 생략
}
2. Repository 인터페이스 생성
public interface MemberRepository extends JpaRepository<Member, Long> {
// 자동으로 findByName(), findByAge() 등의 메서드 생성 가능
List<Member> findByName(String name);
}
3. 서비스나 컨트롤러에서 사용
@Service
public class MemberService {
private final MemberRepository memberRepository;
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
public void saveMember() {
Member m = new Member();
m.setName("홍길동");
m.setAge(25);
memberRepository.save(m);
}
}
데이터베이스 설정 (application.yml)
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
ddl-auto: update는 애플리케이션 실행 시 테이블을 자동으로 생성해 줍니다.
show-sql: true는 실행되는 SQL을 콘솔에 보여줍니다.
JpaRepository 제공 메서드
메서드 | 설명 |
save(entity) | 저장 또는 수정 |
findById(id) | PK로 조회 |
findAll() | 전체 조회 |
delete(entity) | 삭제 |
count() | 개수 조회 |
Spring Data JPA의 장점
- SQL 없이 CRUD 구현 가능 (코드량 ↓)
- 유지보수 용이 (인터페이스 중심)
- 다양한 DB 지원 (MySQL, PostgreSQL, Oracle, H2 등)
- 페이징, 정렬 등도 기본 제공
주의사항
- @Transactional이 필요한 경우를 반드시 인식해야 함 (쓰기 작업 등)
- 복잡한 쿼리는 QueryDSL이나 @Query로 보완 필요
- 성능 이슈: N+1 문제, Lazy Loading 주의 필요
마무리 요약
항목 | 설명 |
목적 | 자바 코드만으로 DB 조작 가능하게 함 |
핵심 구성 | @Entity, JpaRepository, @Id |
장점 | SQL 없이도 강력한 DB 처리 가능 |
추천 이유 | 유지보수 쉽고 생산성이 높음 |
LIST