[Spring] JPA란

bbolddagu·2023년 4월 17일
0

Spring

목록 보기
2/2

JPA (Java Persistence API)

JPA는 자바 ORM(Object Relational Mapping) 기술 표준으로, 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 역할

ORM (Object-Relational Mapping) 이란?

: 객체와 관계형 데이터베이스 간의 데이터를 변환하고 연결해주는 기술

  • 관계형 데이터베이스는 테이블로 이루어져 있으며, 객체 지향 프로그래밍에서는 객체를 사용하여 데이터를 처리합니다. 이러한 차이로 인해 객체와 관계형 데이터베이스 간의 데이터 변환이 필요해졌고, 이를 위해 ORM 기술이 개발되었습니다.
  • JPA는 인터페이스의 모음이고, 이 인터페이스를 구현한 Hibernate, EclipseLink, OpenJPA 등의 라이브러리를 사용하여 데이터베이스와 상호작용할 수 있습니다.
    * 인터페이스는 단순한 명세(specification)일 뿐이므로, 구현체(implementation)가 있어야만 실제로 동작

장점

1. 생산성 향상

: JPA를 사용하면 SQL을 직접 작성하지 않고 객체 지향적인 방식으로 데이터베이스를 다룰 수 있습니다. 이로 인해 개발자가 SQL을 작성하는 시간을 줄일 수 있으며, 더 나은 생산성을 얻을 수 있습니다.

2. 유지보수성 향상

:PA는 객체 지향적인 방식으로 데이터베이스를 다루기 때문에, 데이터베이스 스키마 변경 시 코드를 변경하지 않고도 대처할 수 있습니다.

3. 높은 추상화

: JPA는 인터페이스로 구현되어 있기 때문에 구현체를 교체하여 다른 데이터베이스를 사용할 수 있습니다. 또한, JPA는 엔티티를 추상화하여 데이터베이스와의 상호작용을 더욱 쉽게 만듭니다.

4. 편리한 쿼리 작성

: JPA는 JPQL(Java Persistence Query Language)이라는 객체 지향적인 쿼리 언어를 제공합니다. 이를 사용하면 SQL보다 더 객체 지향적인 방식으로 쿼리를 작성할 수 있습니다.

JPA 단점

1. 성능 문제

: JPA는 높은 추상화와 유연성으로 인해 성능 문제가 발생할 수 있습니다. JPA를 사용하면 객체를 데이터베이스에 저장하거나 불러오는 데 많은 오버헤드가 발생하기 때문입니다. 또한, 복잡한 쿼리를 작성할 때 SQL보다 느리게 동작할 수 있습니다.

2. 학습 곡선

: JPA를 사용하려면 ORM의 개념과 JPA의 API 등을 숙지해야 하기 때문에 학습 곡선이 높을 수 있습니다. 또한, JPA를 사용하다보면 SQL과의 차이점 등의 문제점을 다루기 위해 추가적인 공부가 필요할 수 있습니다.

📝참고

0개의 댓글