JPA란?
- 자바 객체와 데이터베이스를 연결해주는 기술
- DB를 객체처럼 다룰 수 있게 해주는 기술
JPA의 핵심 개념 1 : ORM(Object Relational Mapping)
- 객체와 관계형 DB를 매핑하는 기술
- 자바는 객체 지향이고 DB는 테이블 구조이므로 이 두 구조를 연결해주는 기술이 필요함
- DB 테이블과 연결되는 객체를 Entity라고 부름
JPA의 핵심 개념 2 : 영속성 컨텍스트 (Persistence Context)
- 현재 DB와 Entity의 상태를 같게 유지하는 기술
- 변경 감지(Dirty Checking)를 통해 Entity의 값이 변하면 자동으로 DB 값을 변경
JPA의 장점
- 생산성 증가
- 객체 중심 개발 가능
- 유지보수 편리
- Spring 백엔드 실무에서 표준으로 쓰임
JPA의 단점
- ORM, 영속성 컨텍스트 등 기술에 대한 이해
- Lazy Loading
- N+1 문제
- 성능 최적화
- 복잡한 쿼리
사용 방법
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
위와 같이 build.gradle의 dependencies에 jpa 선언 후
public interface ProductRepository
extends JpaRepository<Product, Long> {
}
위와 같이 repository에 extends JpaRepository만 선언해줘도 저장, 조회, 수정, 삭제가 자동으로 구현된다.
'Spring > 관련 지식' 카테고리의 다른 글
| JPA에서 Enum 활용 방법 (ORDINAL vs STRING 등) (0) | 2026.07.21 |
|---|---|
| N+1 문제의 개념과 해결 방법 (0) | 2026.07.09 |
| IoC/DI, 스프링 컨테이너와 Bean의 개념 (0) | 2026.07.07 |
| 생성자를 구현했는데도 @NoArgsConstructor를 쓰는 이유 (0) | 2026.07.04 |
| Spring에서의 예외 처리 (+ 커스텀 에러 구현) (0) | 2026.07.02 |