JPA
JPA
JPA
- Java Persistence API의 약자
- 자바 ORM
인터페이스
의 모음으로, 실제 구현체와 매핑해주기 위해 사용되는 프레임워크- 대표적인 구현체로
Hibernate
존재
- 대표적인 구현체로
- 자바 객체 중심으로 개발할 수 있도록 도와 줌
- JPA에 객체를 넘기면, JDBC API를 사용해 SQL을 매핑하고, DB와 통신
- 반복적인 작업을 JPA가 대신 해 줌
- SQL 중심적인 개발에서 벗어남으로 인해, 생산성 증대
- 스프링에서는
Spring Data JPA
라는 모듈을 통해 JPA를 더욱 쉽게 사용하게 해 줌
JPA의 최적화 기능
- 캐싱 기능을 이용해 한 트랜잭션 안에서는 같은 대상을 조회 시 같은 엔티티를 반환
- 쓰기 연산의 경우 커밋하는 순간 한꺼번에 SQL을 전송
- 객체의 값이 실제로 필요한 시점에 쿼리를 날리는 지연 로딩 사용 가능
- 한 번에 연관된 객체를 모두 가져오는 즉시 로딩과 대비
- 상황에 따라 지연 로딩과 즉시 로딩을 선택 가능
References
- https://dbjh.tistory.com/77
- https://gmlwjd9405.github.io/2019/08/04/what-is-jpa.html
- https://code-lab1.tistory.com/288