JPA

in·2023년 9월 12일
0

Spring

목록 보기
5/7

📌 ORM

Object-Relational Mapping
일반적으로 알고있는 애플리케이션 Class와 RDB(Relational Database)의 테이블을 매핑(연결)한다는 뜻
기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것

  • Spring Boot에서는 spring-boot-starter-data-jpa로 패키지를 가져와 사용하며 이는 Hibernate 프레임워크 활용

장점

📌 JPA

Java Persistance API
Java 진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음
자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
➡️ Hibernate, OpenJPA 등이 구현

특징

✔️ 객체 중심 개발 가능
SQL 중심 개발이 이루어진다면 CRUD 작업이 반복해서 이루어져야 함
➡️ 테이블 생성시 이에 해당하는 CRUD를 전부 만들어야 하며 추후 컬럼이 생성되면 관련 SQL을 모두 수정해야 함

✔️ 생산성 증가
SQL 쿼리를 직접 생성하지 않고 만들어진 객체에 JPA 메소드를 활용해 데이터베이스를 다루기 때문에 편리

✔️ 유지보수 용이
쿼리 수정 시 DTO 필드도 모두 변경해야하지만 JPA에서는 엔티티 클래스 정보만 변경하면 됨

✔️ 성능 증가
JPA는 동일한 쿼리에 대한 캐시 기능을 지원하기 때문에 높은 성능 효율

제약사항

JPA는 복잡한 쿼리보다는 실시간 쿼리에 최적화 되어있음
➡️ 통계 처리와 같은 복잡한 작업이 필요한 경우 기존의 Mybatis와 같은 Mapper 방식이 더 효율적일 수 있음

[참고 자료]

🔗링크
🔗링크

0개의 댓글

Powered by GraphCDN, the GraphQL CDN