JPA

최혜환·2023년 11월 12일
0

JPA

목록 보기
1/5
post-thumbnail

이번 글은 JPA에 대한 글이다. 최근 회사 업무를 하면서 모든 프로젝트가 JPA를 이용하여 진행하고 있다. 기존에는 JPA에 대한 이해도가 없어 mybatis 와 JDBC template 사용이 전부이다. 지금 회사에서 팀이 합쳐지고 새로운 신입사원분들이 들어오면서 모든 프로젝트에 JPA 를 이용해 진행하고 있다.
그래서 급하게 JPA 학습을 진행하고 사용하면서 느낀 장단점에 대해 작성하려고 한다.

1. JPA 란?

Java Persistent API 로 Java ORM 에 대한 인터페이스이다.
JPA 동작 과정은 아래와 같다.

JPA는 Java Application 과 JDBC 사이에서 동작하며 코드를 쿼리로 변환해주어 결과값을 전달한다.

2. JPA 장단점

김영한님의 책 "JAVA ORM 표준 JPA 프로그래밍"을 참고했습니다.

장점

  1. 생산성이 좋다.

    • 쿼리를 직접 작성할 일이 줄어든다.
    • JPA에게 저장할 객체를 전달하면 된다.
  2. 유지보수해야 하는 코드가 줄어든다.

    • 엔티티에 변경이 생겨도 JPA가 대신 처리해주기 때문에 수정해야 할 코드가 줄어든다.
  3. 성능

    • 객체를 재사용할 수 있다.
  4. 벤더 독립성

    • 데이터베이스 기술에 종속되지 않아도 된다.
    • 예를 들어, 페이징 기술은 데이터베이스 마다 다른데 JPA를 사용하면 이를 극복

단점

  1. 러닝 커브가 높다.
    • JPA를 사용하기 위한 학습해야 할 것들이 많다.
  2. 성능을 최적화하기 위해 JPQL 또는 Querydsl 작성을 해야 함.
    • 나는 최적화를 위해 QueryDSL 의 QueryProjection 을 이용했는데 사용하기 위한 것이 번거로움
    • DTO, QClass 생성 모두 필요

아직 JPA에 대해 완벽히 학습한 것이 아니고 익숙하지 않아 조금 불편하지만 재미있게 사용 중이다.

0개의 댓글

관련 채용 정보