스프링/DB

데이터 접근 기술_JPA_기본 개념

maeng0830 2023. 3. 7. 14:10

JPA

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

 

그러면 ORM은 무엇일까?

ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스를 매핑한다는 것을 의미한다.

ORM 기술은 매핑을 통해 어플리케이션의 객체 중심 설계와 데이터베이스의 데이터 중심 설계 간의 패러다임 불일치를 해결해준다.

 

JPA는 구현체가 아닌 인터페이스이다.

다양한 JPA 구현체가 존재하며, 가장 대중적으로 사용되는 구현체는 Hibernate이다.

 

JPA는 어플리케이션 로직과 JDBC(DB 드라이버) 사이에서 동작한다.

 

JPA의 장점

생산성과 유지보수

어플리케이션 로직은 자바 컬렉션에서 객체를 조작하듯이 JPA와 상호작용 할 수 있다.

어플리케이션 로직과 JPA의 상호작용을 토대로 SQL 쿼리가 자동 생성되고 DB와 통신할 수 있다.

이것을 통해 반복적인 SQL 작업을 배제할 수 있다.

 

또한 어플리케이션의 요구사항이 변경될 때 SQL과 Mapper, 그리고 객체에 대해서 모두 수정해야하는 경우가 대부분이다.

JPA는 SQL 생성과 Mapper의 역할을 대신 해주므로, 개발자는 객체에 집중하여 유지보수 할 수 있다.

 

성능

JPA를 사용한다는 것은 어플리케이션과 데이터베이스 사이에 JPA라는 계층이 추가되는 것이다.

이러한 계층 추가로 인해 캐시 등을 활용한 성능 개선을 고려해볼 수 있다.

 

데이터 접근 추상화와 벤더 독립성

JPA는 어플리케이션과 데이터베이스(벤더) 사이에 추상화된 데이터 접근 계층을 제공한다.

데이터베이스(벤더) 종류를 JPA에게 알려주기만 하면, JPA는 그에 따라 데이터베이스별 Dialect를 준수한 SQL을 생성한다.

데이터 접근 추상화를 통해 벤더 독립성을 갖게 되는 것이다.

 


출처: 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 (inflearn.com)