JPA

최강일·2022년 3월 18일
0

Spring boot

목록 보기
3/7
post-thumbnail

JPA(java persistence api)란

java orm에 대한 API 표준 명세이고, 인터페이스 모음. 구현체가 없고, 사용하려면 ORM 프레임워크를 선택-> 가장 대중적인 Hibernate

ORM : Object-relational mapping로 객체와 RDB row를 중간에서 매핑

JPA 장점

  • 간단한 sql을 interface선언으로 구현 가능 -> 높은 생산성
  • 컬럼 추가/삭제 시 jpa관리 모델을 수정하면 JPA가 대신 처리
  • 특정DBMS에 종속되지 않는 개발 가능(DBMS의 종류, 데이터타입 등등)

JPA 단점

  • 복잡한 쿼리 작성이 어려움 -> NativeQuery도 지원하지만 이를 사용하는건 ORM 사용 의미가 없다고 생각
  • 높은 러닝 커브

Spring Data JPA

Spring에서 제공하는 모듈로 JPA를 한단계 더 추상화 시킨 Repository 인터페이스 제공

Querydsl

Spring data jpa 기술들의 조합으로 해결하지 못하는 한계점을 해결하기 위해 나온 프레임워크

자바코드로 쿼리를 작성->가독성,오류를 컴파일 시점에서 잡음,쉽게 동적쿼리 생성
복잡한 쿼리를위해 사용

느낀점

반복을 줄이고 객체지향적 설계를 위해서는 JPA를 사용하는 것이 JAVA에 조금 더 걸맞은 사용 같다. 하지만 복잡한 쿼리가 많은 경우 sql을 그대로 쓰는 Mybatis가 편한 것 같다.

toy 프로젝트에 간단히 사용해 보며 비교적 간단한 쿼리를 다뤄봤다. JPA를 사용해 보자는 취지로 사용해 봤는데, 나중에 기회가 된다면 자세히 공부해서 보완하도록!

profile
Search & Backend Engineer

0개의 댓글