[JPA] 1. JPA가 뭘까?

garam0410·2022년 1월 11일
0

JPA

목록 보기
1/5

1. JPA가 뭘까?


ORM(Object-Relational Mapping)이란?


  • Object-Relational Mapping : 객체와 RDB 매핑, 객체와 DB의 테이블이 매핑을 이루는 것

  • 객체가 데이터베이스의 테이블과 매핑 시키는 프레임워크

  • 프로그램 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있음

  • 트랜잭션 처리나 기타 데이터 베이스 관련 작업을 편리하게 처리

  • SQL Query가 아닌 직관적인 코드로 데이터 조작 가능


JPA(Java Persistenct API)란?


  • Java Persistence API

  • Java에서 ORM을 사용하기 위한 인터페이스를 모두 모아둔 것

  • JPA는 기술의 명세

  • 대표적으로 JPA를 구현한 구현체는 Hibernate

  • JPA는 특정 라이브러리가 아닌 인터페이스(Interface) 이기 때문에 구현체가 필요

  • Java Application에서 관계형 데이터베이스를 어떻게 사용해야 하는지를 정의하는 한 방법


JPA의 장단점


장점


  • 생산성이 뛰어나고 유지보수가 용이

  • 객체지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와줌

  • SQL을 직접 작성하지 않고 객체를 사용하여 동작하기 때문에 유지보수가 간결하고 재사용성 증가

  • 컬럼의 추가에 있어서 테이블이나 SQL 수정하는 과정이 많이 줄어듦

  • 객체에 대한 코드를 별도로 작성하여 코드의 가독성도 증가


단점


  • 어려움

  • JPA의 장점을 잘 살리는데 학습비용이 큼

  • 복잡한 쿼리를 사용할때는 불리함

  • 기존 데이터베이스 중심으로 되어 있는 환경에서는 JPA를 사용하기 어려움

  • 잘못사용할 경우 실제 SQL 문을 작성하는 것보다 성능이 떨어질 수 있음

  • 대용량 데이터 기반의 환경에서도 튜닝이 어려워 상대적으로 기존방식보다 성능이 떨어질 수 있음


JPA를 사용해야하는 이유


  • 초기에는 JDBC API를 직접 사용하여 개발

  • JDBC API를 직접 사용하여 개발하다가 MyBatis를 이용해서 SQL Mapper를 통해 JDBC 코드를 많이 줄일 수 있었음

  • 하지만, 여전히 CRUD에 대해서 SQL을 반복적으로 작성해야함.

  • 이 문제를 해결해주는 것이 ORM 이고, Java 진영의 ORM 표준인 JPA가 해답.


0개의 댓글