Spring-data-JPA(0) JPA란??
▶ 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
'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 |
댓글
이 글 공유하기
다른 글
-
Spring-data-JPA [4] Update와 @Query
Spring-data-JPA [4] Update와 @Query
2022.03.23 -
Spring-data-JPA [3] 명명법
Spring-data-JPA [3] 명명법
2022.03.22 -
Spring-data-JPA(2) 개념
Spring-data-JPA(2) 개념
2022.01.06 -
Spring-data-JPA(1) [엔티티] Entity
Spring-data-JPA(1) [엔티티] Entity
2022.01.06