JPA란??

  • Java Persistence API: 자바 진영의 ORM 기술 표준
  • Object-relational mapping(객체 관계 매핑)
    - 객체는 객체대로 설계
    - 관계형 데이터베이스는 관계형 데이터베이스대로 설계
    - ORM 프레임워크가 중간에서 매핑
    - 대중적인 언어에는 대부분 ORM 기술이 존재

JPA를 사용하는 이유

  • SQL 중심적인 개발에서 객체 중심으로 개발이 가능하여 생산성, 유지보수, 패러다임의 불일치 해결, 성능 등등 많은 이점을 얻을 수 있습니다.
  • 영속성: 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미합니다.
DB에 저장되는 entity가 영속성 컨텍스트에 포함된다면 아래와 같은 이점을 얻을 수 있다. 
1. 1차 캐시 -> 영속성 컨텍스트에 1차캐시를 두어 데이터베이스에 동일한 쿼리가 여러번 날라가는 상황을 방지
2. 동일성 보장트랜잭션을 지원하는 쓰기 지연 가능 -> transaction.commit()을 통하여 한 번에 sql 을 보낼 수 있다.
3. Dirty Checking ( 변경 감지 ) -> 영속되어 있는 객체가 변한다면 데이터베이스에 쿼리가 날라감
4. Lazy Loading ( 지연 로딩 ) -> N+1 쿼리 문제를 해결 가능, 알 수 없는 쿼리가 날라가는 것을 방지한다.

▶ 그렇다면 우리가 아는 sprig-data-jpa는 무엇일까?

간단하게 이야기한다면 JPA은 ORM을 위한 자바 EE 표준이며, Spring-Data-JPA는 JPA를 쉽게 사용할 수 있게 도와주는 프레임워크입니다. 


 

다음 포스팅은 JPA를 실제로 코드로 작성하며 필요한 부분은 개념을 정리하겠습니다. 감사합니다. 

 

 

참조

https://book.naver.com/bookdb/book_detail.nhn?bid=9252528 

 

자바 ORM 표준 JPA 프로그래밍

자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고

book.naver.com

 

 

'SpringBoot > JPA' 카테고리의 다른 글

Spring-Data-JPA [5] Fetch Join  (0) 2022.03.24
Spring-data-JPA [4] Update와 @Query  (0) 2022.03.23
Spring-data-JPA [3] 명명법  (0) 2022.03.22
Spring-data-JPA(2) 개념  (0) 2022.01.06
Spring-data-JPA(1) [엔티티] Entity  (0) 2022.01.06