SPRING

Spring JPA

도원좀비 2025. 3. 26. 20:21

🌱 JPA (Java Persistence API)의 등장과 해결 방안

1️⃣ JPA의 특징

  • Java의 ORM(Object-Relational Mapping) 표준 인터페이스로, 대표적 구현체는 Hibernate
  • 객체 중심 설계를 유지하면서도 데이터베이스 작업을 자동으로 처리합니다.

2️⃣ JPA를 사용하는 이유

생산성

  • 마치 Java의 Collection처럼 객체를 저장, 수정, 삭제, 조회할 수 있음

유지보수성

  • 객체 필드가 변경되어도 관련 SQL을 자동으로 처리

패러다임 불일치 문제 해결

  • 상속, 연관관계, 객체 그래프 탐색 등 객체 지향적 특징을 JPA가 자동으로 처리

성능 향상

  • 1차 캐시 (같은 데이터를 반복 조회 시 캐시에서 제공하여 DB 접근 감소)
  • 쓰기 지연 (트랜잭션에서 변경 사항을 한 번에 배치 처리하여 네트워크 비용 감소)
  • 지연 로딩 및 즉시 로딩 (필요에 따라 데이터를 로딩하여 성능 최적화)

🍃  JPA의 핵심 개념

JPA(Java Persistence API)는 Java 객체와 관계형 데이터베이스(RDB) 간의 불일치 문제를 해결해주는 ORM(Object Relational Mapping) 표준입니다. 대표적인 구현체는 Hibernate가 있다.

3️⃣ 객체와 관계형 데이터베이스의 패러다임 불일치 문제

  • 객체지향은 데이터와 행위를 캡슐화하고 참조로 연관관계를 표현하지만, RDB는 정규화된 테이블과 외래 키를 사용하여 JOIN 연산으로 관계를 표현
  • 이 차이로 인해 객체를 DB에 저장할 때 CRUD 코드가 반복적으로 생성되는 문제, 객체 수정 시 많은 SQL 수정 필요 등의 문제 발생

4️⃣ JPA의 등장 이유

  • JPA는 객체 지향 설계를 유지하면서 생산성, 유지보수성, 성능을 동시에 높이는 역할
  • JDBC를 직접 다루지 않고도 간편하게 객체를 관리

'SPRING' 카테고리의 다른 글

[Spring Boot + JPA] 트러블 슈팅  (2) 2025.03.28
Spring JPA 영속성 컨텍스트  (0) 2025.03.26
Bean Validation  (1) 2025.03.25
Spring Validation  (0) 2025.03.25
Spring Bean 등록과 의존성 주입  (0) 2025.03.25