[Spring] JPA(Java Persistence API)란?

WOOK JONG KIM·2022년 10월 26일
0
post-thumbnail

ORM이란 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계를 한 다음 중간의 차이를 ORM 프레임워크가 해결(매핑)해주겠다는 것

JPA란 자바 진영의 ORM 기술 표준으로 채택된 인터페이스 모음

ORM이 큰 개념이라면 JPA는 더 구체화된 스펙을 포함
-> 실제로 동작하는 것이 아니고 어떻게 동작해야 하는지 메커니즘을 정리한 표준 명세

애플리케이션과 JDBC 사이에서 동작을 하면서 개발자는 직접 JDBC API를 사용하는게 아닌 JPA에게 명령을 하면 JPA는 JDBC API를 사용해서 SQL을 보내고 결과를 받아서 전달하는 식으로 동작

개발자가 직접 JDBC를 구현하면 SQL에 의존하게 되는 문제가 있어 효율성이 떨어지는 데, 이를 JPA가 이러한 문제를 해결 하기 위해 적절한 SQL문을 생성하고 데이터베이스를 조작해서 객체를 자동으로 매핑해주는 역할 수행

JDBC : 자바에서 DB프로그래밍을 하기 위해 사용되는 API

JPA 기반 구현체에는 대표적으로 Hibernate, EclipseLink, DataNucleus

이중 Hibernate 가장 자주 사용

Spring data JPA

JPA를 편리하게 사용할 수 있도록 지원하는 스프링 하위 프로젝트 중 하나

CRUD 인터페이스 제공, 하이버네이트의 엔티티 매니저를 직접 다루지 않고 리포지토리를 정의해 사용함으로써 스프링이 적합한 쿼리를 동적으로 생성하는 방식으로 데이터 조작

즉 하이버네이트에서 자주 사용되는 기능을 좀더 쉽게 사용할 수 있게 구현한 라이브러리

profile
Journey for Backend Developer

0개의 댓글