[JPA] JPA란 무엇인가?

proman·2021년 12월 23일
0

JPA

목록 보기
1/1

🙈 JPA란 무엇인가?

Java Persistence API 약자
자바진영에서 만든 ORM 기술 표준이며, 객체지향과 관계형에 따른 패러다임 불일치가 발생하는데 이를 해결해주는 기술이다.

🧐 JPA를 왜 사용해야되는가?

객체지향과 관계형데이터 패러다임 불일치가 발생하는데 이를

  1. 비교
  2. 상속
  3. 연관관계
  4. 객체 그래프 탐색

🤤 JPA를 어떻게 사용할것인가?

Spring Data JPA

Audit 기능, 프로젝션, 쿼리생성 지원 등

Hibernate

ORM 프레임워크이며,

Querydsl

타입안전성 방식이며, HQL 쿼리 유지 관리 필요성으로 인하여 생긴 기술
빌드시 어노테이션 프로세서를 통해 엔티티에 따른 클래스 생성

  • IDE 코드 자동완성 가능
  • 문자열이 아닌 코드형태로 안전한 쿼리 생성
  • JPQL, Criteria 대안으로 동적쿼리 생성가능

DDD

도메인 중심의 개발방법론이며,

🐧 JPA 장점

  • 간단한 DML 생성을 코드로 관리 및 DDL 자동생성에 따른 생산성 향상
  • 데이터중심으로 쿼리 의존 -> 코드 의존(상속 등)되게 하여 객체지향적 개발가능
  • 추상화된 인터페이스형태로 개발을 진행하므로 데이터베이스에 대한 의존성 낮음

🦥 JPA 단점

  • JPA에 사용하는 JPQL로는 복잡한쿼리를 사용하기 힘든 상황 발생 우려
  • 객체와 관계형 DB에 대한 이해와 해결해나가는 기술이 둘다 요구되어 높은 러닝커브
  • N+1문제(사용자 조회 후 부가 서브쿼리 조회)등으로 인한 성능 저하 발생 우려

🦾 JPA 참고자료

책 추천

웹서칭 해본결과 JPA를 포커스로 다루는 책이 시중에 3개정도 있는걸로 알고있고,
추천순으로 순서를 나열해보았다.
책으로 JPA를 전부 배우기에는 무리가 있는데, 기본적이고 개념적인 부분을 다루고 있으며 세부적인건 레퍼런스를 참고하는걸 추천드립니다. (하이버네이트 내용은 적게 다루는걸로 기억)

이름자바 ORM 표준 JPA 프로그래밍JPA 퀵스타트JPA 프로그래밍 입문
학습난이도중상중하
내용 깊이중상
비고우아한형제들 개발팀장이신분이 저자이며 인프런에 JPA 강좌를 하고있는데 강의수강필요시 참고하면될듯 싶다초판시일이 가장최신인 책인데 다루는 내용은 비슷하다고 느낀책

레퍼런스 링크

  1. 스프링 데이터 JPA : JPQL 쿼리 생성 지원
  2. 하이버네이트 : 엔티티객체를 ORM적으로 지원
  3. Querydsl : 동적쿼리 지원

0개의 댓글