Skip to content

Ch08 sec01 jpa pros and cons

JPA 단점

러닝 커브
  • JPA 는 어렵다. JPA 는 애플리케이션과 데이터베이스 사이의 중계자 역할을 하며 그 사이에서 개발자가 느끼는 패러다임의 불일치를 해결한다는 중대한 역할을 가진다. 그렇기 때문에 동적 쿼리 생성을 비롯한 많은 고급 기술들이 추상화되어 있고 영속성 컨텍스트라는 복잡한 개념 아래서 동작한다.
  • 그렇기 때문에 JPA 는 SQL 매퍼에 비해서 학습하기 어렵다. 그런데 잘 학습하지 않으면 당연히 잘 사용할 수도 없다!
JPA 는 OLTP에 적합
  • 보통 API 처럼 실시간 트랜잭션 처리를 OLTP (OnLine Transaction Processing) 라고 하며, 통계를 위한 쿼리 처리를 OLAP (OnLine Analytical Processing) 라고 한다. 통계 쿼리에서는 원하는 데이터를 추출하기 위해 쿼리를 세밀하게 튜닝하거나 복잡한 쿼리가 필요하다. 이때는 직접 SQL 쿼리를 코딩할 수 있는 SQL Mapper 가 더 적합하다.

JPA 장점

생산성
  • SQL 을 직접 작성하지 않는다.
  • 코드를 재활용 할 수 있다.
  • 단순한 CRUD 구문은 모두 구현되어 있다.
  • {익숙해 지기만 한다면} 높은 생산성이 보장된다.
데이터베이스에 독립적인 개발
  • 쿼리를 직접 작성한다면 데이터베이스에 의존적인 쿼리가 애플리케이션 코드에 등장하는 것에 신경쓰면서 코딩을 해야한다. JPA 에서는 리포지토리 아래 데이터베이스에 의존적인 쿼리가 모두 숨어 있기 때문에 개발자는 이를 의식하지 않아도 된다.
객체지향적인 프로그래밍
  • JPA 의 등장 배경이다.
  • ORM 은 객체지향과 관계형데이터베이스라는 두 패러다임을 연결하는 다리로서 동작하며 개발자는 데이터베이스를 마치 자바 컬렉션 처럼 활용할 수 있다. 그 중심에는 JPA 의 {영속성 컨텍스트}가 있다.

Last update: February 26, 2023
Created: December 15, 2022