JPA는 무엇인가?

정체는 김태현·2022년 10월 3일
0

항해99

목록 보기
2/38

JPA는 Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음.

어플리케이션의 클래스와 RDB의 테이블을 매핑해주는 것. 인터페이스이고 일종의 기술 명세임.
따라서 해당 인터페이스를 구현한 구현체가 필요하고 JPA에서는 Hibernate를 가장 많이 사용.

JPA와 Spring Data JPA의 차이는 무엇인가요?

JPA는 EntityManager를 통해 DB에 접근하는 반면, Spring Data JPA는 Repository를 정의하여 접근.

Spring Data JPA는 스프링에서 제공하는 모듈 중 하나인데, 개발자가 JPA를 더 편하게 사용할 수 있도록 Repository를 이용하여 한 단계 더 추상화된 모듈. JPARepository 인터페이스의 기본 구현체인 SimpleJpaRepository 코드를 보면 EntityManager를 사용하고 있다.

JPA

JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준

JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다.
JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다.
JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다.
이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다.

ORM

ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻

ORM 프레임워크를 사용하면 객체를 마치 자바 컬렉션에 저장하듯 저장할 수 있고, 이에 대해 ORM 프레임워크가 적절한 SQL을 생성해서 DB에 객체를 저장해준다.
Hibernate
자바 진영의 다양한 ORM 프레임워크 중 가장 많이 사용되는 성숙한 프레임워크

이러한 Hibernate 기반으로 만들어진 ORM 기술 표준이 바로 JPA다.
즉, JPA라는 ORM 기술 표준을 구현한 것이 Hibernate이므로, JPA를 사용하려면 Hibernate를 사용하면 된다.
👍🏼 이를 통해, 개발자는 관계형 DB를 사용해도 객체지향 어플리케이션 개발에 집중할 수 있게 된다.

profile
하나부터 열가지 다

0개의 댓글

관련 채용 정보